using Robust.Shared.GameObjects; using Robust.Shared.Serialization; using System; using System.Collections.Generic; namespace Content.Shared.GameObjects.Components.Storage { public abstract class SharedStorageComponent : Component { public override string Name => "Storage"; public override uint? NetID => ContentNetIDs.INVENTORY; } /// /// Updates the client component about what entities this storage is holding /// [Serializable, NetSerializable] public class StorageHeldItemsMessage : ComponentMessage { public readonly int StorageSizeMax; public readonly int StorageSizeUsed; public Dictionary StoredEntities; public StorageHeldItemsMessage(Dictionary storedentities, int storageused, int storagemaxsize) { Directed = true; StorageSizeMax = storagemaxsize; StorageSizeUsed = storageused; StoredEntities = storedentities; } } /// /// Component message for removing a contained entity from the storage entity /// [Serializable, NetSerializable] public class RemoveEntityMessage : ComponentMessage { public EntityUid EntityUid; public RemoveEntityMessage(EntityUid entityuid) { Directed = true; EntityUid = entityuid; } } /// /// Component message for opening the storage UI /// [Serializable, NetSerializable] public class OpenStorageUIMessage : ComponentMessage { public OpenStorageUIMessage() { Directed = true; } } /// /// Component message for closing the storage UI. /// E.g when the player moves too far away from the container. /// [Serializable, NetSerializable] public class CloseStorageUIMessage : ComponentMessage { public CloseStorageUIMessage() { Directed = true; } } [NetSerializable] [Serializable] public enum StorageVisuals { Open } }