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)