From a11e8b676ca7ed0300047f81394ce26e11922567 Mon Sep 17 00:00:00 2001 From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Date: Thu, 31 Mar 2022 15:28:36 +1300 Subject: [PATCH] Content changes for InContainer flag (#7003) --- Content.Server/Actions/ActionsSystem.cs | 2 +- .../EntitySystems/AtmosphereSystem.HighPressureDelta.cs | 8 +++----- .../Atmos/EntitySystems/AtmosphereSystem.Processing.cs | 3 ++- Content.Server/Flash/FlashSystem.cs | 2 +- Content.Shared/Alert/AlertsSystem.cs | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Content.Server/Actions/ActionsSystem.cs b/Content.Server/Actions/ActionsSystem.cs index 3bb4b24658..3f47f5f028 100644 --- a/Content.Server/Actions/ActionsSystem.cs +++ b/Content.Server/Actions/ActionsSystem.cs @@ -25,7 +25,7 @@ namespace Content.Server.Actions private void OnMetaFlagRemoval(EntityUid uid, ActionsComponent component, ref MetaFlagRemoveAttemptEvent args) { if (component.LifeStage == ComponentLifeStage.Running) - args.Cancelled = true; + args.ToRemove &= ~MetaDataFlags.EntitySpecific; } private void OnStartup(EntityUid uid, ActionsComponent component, ComponentStartup args) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs index 4a05623129..a3730b5b52 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs @@ -89,7 +89,7 @@ namespace Content.Server.Atmos.EntitySystems _activePressures.Add(component); } - private void HighPressureMovements(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, EntityQuery bodies, EntityQuery xforms, EntityQuery pressureQuery) + private void HighPressureMovements(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, EntityQuery bodies, EntityQuery xforms, EntityQuery pressureQuery, EntityQuery metas) { // TODO ATMOS finish this @@ -113,9 +113,7 @@ namespace Content.Server.Atmos.EntitySystems !pressure.Enabled) continue; - var xform = xforms.GetComponent(entity); - - if (_containers.IsEntityInContainer(entity, xform)) continue; + if (_containers.IsEntityInContainer(entity, metas.GetComponent(entity))) continue; var pressureMovements = EnsureComp(entity); if (pressure.LastHighPressureMovementAirCycle < gridAtmosphere.UpdateCounter) @@ -127,7 +125,7 @@ namespace Content.Server.Atmos.EntitySystems tile.PressureDifference, tile.PressureDirection, 0, tile.PressureSpecificTarget?.GridIndices.ToEntityCoordinates(tile.GridIndex, _mapManager) ?? EntityCoordinates.Invalid, - xform, + xforms.GetComponent(entity), body); } diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs index bae1c044b8..19924c74c0 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs @@ -222,11 +222,12 @@ namespace Content.Server.Atmos.EntitySystems var number = 0; var bodies = EntityManager.GetEntityQuery(); var xforms = EntityManager.GetEntityQuery(); + var metas = EntityManager.GetEntityQuery(); var pressureQuery = EntityManager.GetEntityQuery(); while (atmosphere.CurrentRunTiles.TryDequeue(out var tile)) { - HighPressureMovements(atmosphere, tile, bodies, xforms, pressureQuery); + HighPressureMovements(atmosphere, tile, bodies, xforms, pressureQuery, metas); tile.PressureDifference = 0f; tile.PressureSpecificTarget = null; atmosphere.HighPressureDelta.Remove(tile); diff --git a/Content.Server/Flash/FlashSystem.cs b/Content.Server/Flash/FlashSystem.cs index e57e1cd58a..a63dc1d07c 100644 --- a/Content.Server/Flash/FlashSystem.cs +++ b/Content.Server/Flash/FlashSystem.cs @@ -46,7 +46,7 @@ namespace Content.Server.Flash private void OnMetaFlagRemoval(EntityUid uid, FlashableComponent component, ref MetaFlagRemoveAttemptEvent args) { if (component.LifeStage == ComponentLifeStage.Running) - args.Cancelled = true; + args.ToRemove &= ~MetaDataFlags.EntitySpecific; } private void OnFlashableStartup(EntityUid uid, FlashableComponent component, ComponentStartup args) diff --git a/Content.Shared/Alert/AlertsSystem.cs b/Content.Shared/Alert/AlertsSystem.cs index 421e7a876b..d8b7fd93a9 100644 --- a/Content.Shared/Alert/AlertsSystem.cs +++ b/Content.Shared/Alert/AlertsSystem.cs @@ -170,7 +170,7 @@ public abstract class AlertsSystem : EntitySystem private void OnMetaFlagRemoval(EntityUid uid, AlertsComponent component, ref MetaFlagRemoveAttemptEvent args) { if (component.LifeStage == ComponentLifeStage.Running) - args.Cancelled = true; + args.ToRemove &= ~MetaDataFlags.EntitySpecific; } private void OnCanGetState(EntityUid uid, AlertsComponent component, ref ComponentGetStateAttemptEvent args)