emag disposal units to disable pressure requirement (#14630)

This commit is contained in:
deltanedas
2023-03-23 14:55:49 +00:00
committed by GitHub
parent 21e5aea8ca
commit 52af530d61
3 changed files with 19 additions and 2 deletions

View File

@@ -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;

View File

@@ -21,6 +21,12 @@ namespace Content.Shared.Disposal.Components
[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
{

View File

@@ -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<SharedDisposalUnitComponent, PreventCollideEvent>(OnPreventCollide);
SubscribeLocalEvent<SharedDisposalUnitComponent, CanDropTargetEvent>(OnCanDragDropOn);
SubscribeLocalEvent<SharedDisposalUnitComponent, GotEmaggedEvent>(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<TransformComponent>(component.Owner).Anchored)