Class CartridgeLoaderSystem
Namespace: Content.Server.CartridgeLoader
Assembly: Content.Server.dll
Syntax
public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem
Methods
| Improve this Doc View SourceActivateProgram(EntityUid, EntityUid, CartridgeLoaderComponent)
Activates a program or cartridge and displays its ui fragment. Deactivates any previously active program.
Declaration
public void ActivateProgram(EntityUid loaderUid, EntityUid programUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | |
EntityUid | programUid | |
CartridgeLoaderComponent | loader |
DeactivateProgram(EntityUid, EntityUid, CartridgeLoaderComponent)
Deactivates the currently active program or cartridge.
Declaration
public void DeactivateProgram(EntityUid loaderUid, EntityUid programUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | |
EntityUid | programUid | |
CartridgeLoaderComponent | loader |
GetAvailablePrograms(EntityUid, CartridgeLoaderComponent)
Returns a list of all installed programs and the inserted cartridge if it isn't already installed
Declaration
public List<NetEntity> GetAvailablePrograms(EntityUid uid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | The cartridge loaders uid |
CartridgeLoaderComponent | loader | The cartridge loader component |
Returns
Type | Description |
---|---|
List<NetEntity> | A list of all the available program entity ids |
GetInstalled(EntityUid, ContainerManagerComponent)
Declaration
public IReadOnlyList<EntityUid> GetInstalled(EntityUid uid, ContainerManagerComponent comp = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
Robust.Shared.Containers.ContainerManagerComponent | comp |
Returns
Type | Description |
---|---|
IReadOnlyList<EntityUid> |
HasProgram<T>(EntityUid, Boolean, CartridgeLoaderComponent, ContainerManagerComponent)
Declaration
public bool HasProgram<T>(EntityUid uid, bool installedOnly = false, CartridgeLoaderComponent loader = null, ContainerManagerComponent containerManager = null)
where T : IComponent
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
System.Boolean | installedOnly | |
CartridgeLoaderComponent | loader | |
Robust.Shared.Containers.ContainerManagerComponent | containerManager |
Returns
Type | Description |
---|---|
System.Boolean |
Type Parameters
Name | Description |
---|---|
T |
Initialize()
Declaration
public override void Initialize()
Overrides
| Improve this Doc View SourceInstallCartridge(EntityUid, EntityUid, CartridgeLoaderComponent)
Installs a cartridge by spawning an invisible version of the cartridges prototype into the cartridge loaders program container program container
Declaration
public bool InstallCartridge(EntityUid loaderUid, EntityUid cartridgeUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | The cartridge loader uid |
EntityUid | cartridgeUid | The uid of the cartridge to be installed |
CartridgeLoaderComponent | loader | The cartridge loader component |
Returns
Type | Description |
---|---|
System.Boolean | Whether installing the cartridge was successful |
InstallProgram(EntityUid, String, Boolean, CartridgeLoaderComponent)
Installs a program by its prototype
Declaration
public bool InstallProgram(EntityUid loaderUid, string prototype, bool deinstallable = true, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | The cartridge loader uid |
System.String | prototype | The prototype name |
System.Boolean | deinstallable | Whether the program can be deinstalled or not |
CartridgeLoaderComponent | loader | The cartridge loader component |
Returns
Type | Description |
---|---|
System.Boolean | Whether installing the cartridge was successful |
OnItemInserted(EntityUid, CartridgeLoaderComponent, EntInsertedIntoContainerMessage)
Declaration
protected override void OnItemInserted(EntityUid uid, CartridgeLoaderComponent loader, EntInsertedIntoContainerMessage args)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
CartridgeLoaderComponent | loader | |
Robust.Shared.Containers.EntInsertedIntoContainerMessage | args |
OnItemRemoved(EntityUid, CartridgeLoaderComponent, EntRemovedFromContainerMessage)
Declaration
protected override void OnItemRemoved(EntityUid uid, CartridgeLoaderComponent loader, EntRemovedFromContainerMessage args)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
CartridgeLoaderComponent | loader | |
Robust.Shared.Containers.EntRemovedFromContainerMessage | args |
RegisterBackgroundProgram(EntityUid, EntityUid, CartridgeLoaderComponent)
Registers the given program as a running in the background. Programs running in the background will receive certain events like device net packets but not ui messages
Declaration
public void RegisterBackgroundProgram(EntityUid loaderUid, EntityUid cartridgeUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | |
EntityUid | cartridgeUid | |
CartridgeLoaderComponent | loader |
Remarks
Programs wanting to use this functionality will have to provide a way to register and unregister themselves as background programs through their ui fragment.
TryGetProgram<T>(EntityUid, out Nullable<EntityUid>, out T, Boolean, CartridgeLoaderComponent, ContainerManagerComponent)
Declaration
public bool TryGetProgram<T>(EntityUid uid, out EntityUid? programUid, out T program, bool installedOnly = false, CartridgeLoaderComponent loader = null, ContainerManagerComponent containerManager = null)
where T : IComponent
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
System.Nullable<EntityUid> | programUid | |
T | program | |
System.Boolean | installedOnly | |
CartridgeLoaderComponent | loader | |
Robust.Shared.Containers.ContainerManagerComponent | containerManager |
Returns
Type | Description |
---|---|
System.Boolean |
Type Parameters
Name | Description |
---|---|
T |
TryGetProgram<T>(EntityUid, out Nullable<EntityUid>, Boolean, CartridgeLoaderComponent, ContainerManagerComponent)
Declaration
public bool TryGetProgram<T>(EntityUid uid, out EntityUid? programUid, bool installedOnly = false, CartridgeLoaderComponent loader = null, ContainerManagerComponent containerManager = null)
where T : IComponent
Parameters
Type | Name | Description |
---|---|---|
EntityUid | uid | |
System.Nullable<EntityUid> | programUid | |
System.Boolean | installedOnly | |
CartridgeLoaderComponent | loader | |
Robust.Shared.Containers.ContainerManagerComponent | containerManager |
Returns
Type | Description |
---|---|
System.Boolean |
Type Parameters
Name | Description |
---|---|
T |
UninstallProgram(EntityUid, EntityUid, CartridgeLoaderComponent)
Uninstalls a program using its uid
Declaration
public bool UninstallProgram(EntityUid loaderUid, EntityUid programUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | The cartridge loader uid |
EntityUid | programUid | The uid of the program to be uninstalled |
CartridgeLoaderComponent | loader | The cartridge loader component |
Returns
Type | Description |
---|---|
System.Boolean | Whether uninstalling the program was successful |
UnregisterBackgroundProgram(EntityUid, EntityUid, CartridgeLoaderComponent)
Unregisters the given program as running in the background
Declaration
public void UnregisterBackgroundProgram(EntityUid loaderUid, EntityUid cartridgeUid, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | |
EntityUid | cartridgeUid | |
CartridgeLoaderComponent | loader |
UpdateCartridgeUiState(EntityUid, BoundUserInterfaceState, IPlayerSession, CartridgeLoaderComponent)
Updates the programs ui state
Declaration
public void UpdateCartridgeUiState(EntityUid loaderUid, BoundUserInterfaceState state, IPlayerSession session = null, CartridgeLoaderComponent loader = null)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | The cartridge loaders entity uid |
BoundUserInterfaceState | state | The programs ui state. Programs should use their own ui state class inheriting from |
Robust.Server.Player.IPlayerSession | session | The players session |
CartridgeLoaderComponent | loader | The cartridge loader component |
Remarks
This method is called "UpdateCartridgeUiState" but cartridges and a programs are the same. A cartridge is just a program as a visible item.
See Also
UpdateUiState(EntityUid, IPlayerSession, CartridgeLoaderComponent)
Updates the cartridge loaders ui state.
Declaration
public void UpdateUiState(EntityUid loaderUid, IPlayerSession session, CartridgeLoaderComponent loader)
Parameters
Type | Name | Description |
---|---|---|
EntityUid | loaderUid | |
Robust.Server.Player.IPlayerSession | session | |
CartridgeLoaderComponent | loader |
Remarks
Because the cartridge loader integrates with the ui of the entity using it, the entities ui state needs to inherit from CartridgeLoaderUiState and use this method to update its state so the cartridge loaders state can be added to it.