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