From 7117b925a5591fa6f929e2a77400f5bbac41d7fe Mon Sep 17 00:00:00 2001
From: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Date: Tue, 6 Aug 2024 13:00:15 +0200
Subject: [PATCH] Add whitelist to cryostorage (#30574)
---
.../Bed/Cryostorage/CanEnterCryostorageComponent.cs | 10 ++++++++++
.../Bed/Cryostorage/SharedCryostorageSystem.cs | 2 +-
Resources/Prototypes/Entities/Mobs/Species/base.yml | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)
create mode 100644 Content.Shared/Bed/Cryostorage/CanEnterCryostorageComponent.cs
diff --git a/Content.Shared/Bed/Cryostorage/CanEnterCryostorageComponent.cs b/Content.Shared/Bed/Cryostorage/CanEnterCryostorageComponent.cs
new file mode 100644
index 0000000000..2e5b200055
--- /dev/null
+++ b/Content.Shared/Bed/Cryostorage/CanEnterCryostorageComponent.cs
@@ -0,0 +1,10 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Bed.Cryostorage;
+
+///
+/// Serves as a whitelist that allows an entity with this component to enter cryostorage.
+/// It will also require MindContainerComponent.
+///
+[RegisterComponent, NetworkedComponent]
+public sealed partial class CanEnterCryostorageComponent : Component { }
diff --git a/Content.Shared/Bed/Cryostorage/SharedCryostorageSystem.cs b/Content.Shared/Bed/Cryostorage/SharedCryostorageSystem.cs
index c3fa21e293..f6b7a34785 100644
--- a/Content.Shared/Bed/Cryostorage/SharedCryostorageSystem.cs
+++ b/Content.Shared/Bed/Cryostorage/SharedCryostorageSystem.cs
@@ -89,7 +89,7 @@ public abstract class SharedCryostorageSystem : EntitySystem
return;
}
- if (!TryComp(args.EntityUid, out var mindContainer))
+ if (!HasComp(args.EntityUid) || !TryComp(args.EntityUid, out var mindContainer))
{
args.Cancel();
return;
diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml
index af309e93ad..4a14b5332e 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/base.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml
@@ -167,6 +167,7 @@
- type: Dna
- type: MindContainer
showExamineInfo: true
+ - type: CanEnterCryostorage
- type: InteractionPopup
successChance: 1
interactSuccessString: hugging-success-generic
--
2.52.0