using Content.Shared.Containers.ItemSlots; using Robust.Shared.GameStates; namespace Content.Shared.CartridgeLoader; [RegisterComponent, NetworkedComponent] public sealed partial class CartridgeLoaderComponent : Component { public const string CartridgeSlotId = "Cartridge-Slot"; [DataField] public ItemSlot CartridgeSlot = new(); /// /// List of programs that come preinstalled with this cartridge loader /// [DataField("preinstalled")] // TODO remove this and use container fill. public List PreinstalledPrograms = new(); /// /// The currently running program that has its ui showing /// [ViewVariables(VVAccess.ReadWrite)] public EntityUid? ActiveProgram = default; /// /// The list of programs running in the background, listening to certain events /// [ViewVariables] public readonly List BackgroundPrograms = new(); /// /// The maximum amount of programs that can be installed on the cartridge loader entity /// [DataField] public int DiskSpace = 8; /// /// Controls whether the cartridge loader will play notifications if it supports it at all /// TODO: Add an option for this to the PDA /// [DataField] public bool NotificationsEnabled = true; [DataField(required: true)] public Enum UiKey = default!; }