diff --git a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs index f5eed0b4e9..a524aaa8a2 100644 --- a/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs +++ b/Content.Server/CartridgeLoader/CartridgeLoaderSystem.cs @@ -109,7 +109,7 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem //This will eventually be replaced by serializing and deserializing the cartridge to copy it when something needs //the data on the cartridge to carry over when installing var prototypeId = Prototype(cartridgeUid)?.ID; - return prototypeId != null && InstallProgram(loaderUid, prototypeId, loader); + return prototypeId != null && InstallProgram(loaderUid, prototypeId, loader: loader); } /// @@ -117,9 +117,10 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem /// /// The cartridge loader uid /// The prototype name + /// Whether the program can be deinstalled or not /// The cartridge loader component /// Whether installing the cartridge was successful - public bool InstallProgram(EntityUid loaderUid, string prototype, CartridgeLoaderComponent? loader = default!) + public bool InstallProgram(EntityUid loaderUid, string prototype, bool deinstallable = true, CartridgeLoaderComponent? loader = default!) { if (!Resolve(loaderUid, ref loader) || loader.InstalledPrograms.Count >= loader.DiskSpace) return false; @@ -134,7 +135,7 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem var installedProgram = Spawn(prototype, new EntityCoordinates(loaderUid, 0, 0)); container?.Insert(installedProgram); - UpdateCartridgeInstallationStatus(installedProgram, InstallationStatus.Installed); + UpdateCartridgeInstallationStatus(installedProgram, deinstallable ? InstallationStatus.Installed : InstallationStatus.Readonly); loader.InstalledPrograms.Add(installedProgram); RaiseLocalEvent(installedProgram, new CartridgeAddedEvent(loaderUid)); @@ -270,7 +271,7 @@ public sealed class CartridgeLoaderSystem : SharedCartridgeLoaderSystem { foreach (var prototype in component.PreinstalledPrograms) { - InstallProgram(uid, prototype); + InstallProgram(uid, prototype, deinstallable: false); } } diff --git a/Resources/Locale/en-US/cartridge-loader/cartridges.ftl b/Resources/Locale/en-US/cartridge-loader/cartridges.ftl index 0a7441b871..533c5c25a1 100644 --- a/Resources/Locale/en-US/cartridge-loader/cartridges.ftl +++ b/Resources/Locale/en-US/cartridge-loader/cartridges.ftl @@ -1,6 +1,2 @@ default-program-name = Program - -ent-notekeeper-cartridge = notekeeper cartridge - .desc = A program for keeping notes - notekeeper-program-name = Notekeeper diff --git a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml index f83d6fece6..57a8378e18 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/cartridges.yml @@ -1,6 +1,8 @@ - type: entity parent: BaseItem id: NotekeeperCartridge + name: notekeeper cartridge + description: A program for keeping notes components: - type: Sprite sprite: Objects/Devices/cartridge.rsi