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;
[DataField("mobsCanEnter")]
public bool MobsCanEnter = true;
+ /// <summary>
+ /// Removes the pressure requirement for flushing.
+ /// </summary>
+ [DataField("disablePressure"), ViewVariables(VVAccess.ReadWrite)]
+ public bool DisablePressure = false;
+
[Serializable, NetSerializable]
public enum Visuals : byte
{
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;
base.Initialize();
SubscribeLocalEvent<SharedDisposalUnitComponent, PreventCollideEvent>(OnPreventCollide);
SubscribeLocalEvent<SharedDisposalUnitComponent, CanDropTargetEvent>(OnCanDragDropOn);
+ SubscribeLocalEvent<SharedDisposalUnitComponent, GotEmaggedEvent>(OnEmagged);
}
private void OnPreventCollide(EntityUid uid, SharedDisposalUnitComponent component, ref PreventCollideEvent args)
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<TransformComponent>(component.Owner).Anchored)