using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared.CartridgeLoader;
///
/// This is used for defining values used for displaying in the program ui in yaml
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class CartridgeComponent : Component
{
[DataField]
public EntityUid? LoaderUid;
[DataField(required: true)]
public LocId ProgramName = "default-program-name";
[DataField]
public SpriteSpecifier? Icon;
[AutoNetworkedField]
public InstallationStatus InstallationStatus = InstallationStatus.Cartridge;
///
/// Frontier: This is used for onetime use programs
///
[DataField]
public bool Disposable = false;
///
/// Frontier: This is used to auto install on insert
///
[DataField]
public bool AutoInstall = false;
///
/// Frontier: Block uninstall
///
[DataField]
public bool Readonly = false;
}
[Serializable, NetSerializable]
public enum InstallationStatus
{
Cartridge,
Installed,
Readonly
}