using Content.Shared.Containers.ItemSlots; namespace Content.Shared.CartridgeLoader; [Access(typeof(SharedCartridgeLoaderSystem))] public abstract class SharedCartridgeLoaderComponent : Component { public const string CartridgeSlotId = "Cartridge-Slot"; [DataField("cartridgeSlot")] public ItemSlot CartridgeSlot = new(); /// /// List of programs that come preinstalled with this cartridge loader /// [DataField("preinstalled")] 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 list of program entities that are spawned into the cartridge loaders program container /// [DataField("installedCartridges")] public List InstalledPrograms = new(); }