From 52af530d61e7f838058a31ccd82ddfe52ec95f06 Mon Sep 17 00:00:00 2001
From: deltanedas <39013340+deltanedas@users.noreply.github.com>
Date: Thu, 23 Mar 2023 14:55:49 +0000
Subject: [PATCH] emag disposal units to disable pressure requirement (#14630)
---
.../Disposal/Unit/EntitySystems/DisposalUnitSystem.cs | 7 +++++--
.../Disposal/Components/SharedDisposalUnitComponent.cs | 6 ++++++
Content.Shared/Disposal/SharedDisposalUnitSystem.cs | 8 ++++++++
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
index a26b4c877a..5a3c2ed642 100644
--- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
+++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
@@ -552,8 +552,11 @@ namespace Content.Server.Disposal.Unit.EntitySystems
component.AutomaticEngageToken?.Cancel();
component.AutomaticEngageToken = null;
- component.Pressure = 0;
- component.State = SharedDisposalUnitComponent.PressureState.Pressurizing;
+ if (!component.DisablePressure)
+ {
+ component.Pressure = 0;
+ component.State = SharedDisposalUnitComponent.PressureState.Pressurizing;
+ }
component.Engaged = false;
diff --git a/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs b/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs
index 581332b47f..0da7f75609 100644
--- a/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs
+++ b/Content.Shared/Disposal/Components/SharedDisposalUnitComponent.cs
@@ -21,6 +21,12 @@ namespace Content.Shared.Disposal.Components
[DataField("mobsCanEnter")]
public bool MobsCanEnter = true;
+ ///
+ /// Removes the pressure requirement for flushing.
+ ///
+ [DataField("disablePressure"), ViewVariables(VVAccess.ReadWrite)]
+ public bool DisablePressure = false;
+
[Serializable, NetSerializable]
public enum Visuals : byte
{
diff --git a/Content.Shared/Disposal/SharedDisposalUnitSystem.cs b/Content.Shared/Disposal/SharedDisposalUnitSystem.cs
index e0f0faf1a2..3171bd227b 100644
--- a/Content.Shared/Disposal/SharedDisposalUnitSystem.cs
+++ b/Content.Shared/Disposal/SharedDisposalUnitSystem.cs
@@ -1,6 +1,7 @@
using Content.Shared.Body.Components;
using Content.Shared.Disposal.Components;
using Content.Shared.DragDrop;
+using Content.Shared.Emag.Systems;
using Content.Shared.Item;
using Content.Shared.Mobs.Components;
using Content.Shared.Mobs.Systems;
@@ -28,6 +29,7 @@ namespace Content.Shared.Disposal
base.Initialize();
SubscribeLocalEvent(OnPreventCollide);
SubscribeLocalEvent(OnCanDragDropOn);
+ SubscribeLocalEvent(OnEmagged);
}
private void OnPreventCollide(EntityUid uid, SharedDisposalUnitComponent component, ref PreventCollideEvent args)
@@ -57,6 +59,12 @@ namespace Content.Shared.Disposal
args.Handled = true;
}
+ private void OnEmagged(EntityUid uid, SharedDisposalUnitComponent component, ref GotEmaggedEvent args)
+ {
+ component.DisablePressure = true;
+ args.Handled = true;
+ }
+
public virtual bool CanInsert(SharedDisposalUnitComponent component, EntityUid entity)
{
if (!EntityManager.GetComponent(component.Owner).Anchored)
--
2.51.2