diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs index b0eb8ac153..bbadf7d3c1 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs @@ -36,7 +36,7 @@ namespace Content.Server.Atmos.EntitySystems gridAtmosphere.Tiles.Clear(); - if (!EntityManager.TryGetComponent(uid, out IMapGridComponent? mapGrid)) + if (!TryComp(uid, out IMapGridComponent? mapGrid)) return; if (gridAtmosphere.TilesUniqueMixes != null) @@ -85,7 +85,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return false; - if (EntityManager.HasComponent(mapGrid.GridEntityId)) + if (HasComp(mapGrid.GridEntityId)) return true; return false; @@ -124,7 +124,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return Enumerable.Empty(); - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetAllTileMixtures(gridAtmosphere, invalidate); } @@ -197,7 +197,7 @@ namespace Content.Server.Atmos.EntitySystems { foreach (var uid in mapGrid.GetAnchoredEntities(tile)) { - if (EntityManager.TryGetComponent(uid, out var ac)) + if (TryComp(uid, out var ac)) yield return ac; } } @@ -284,7 +284,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { InvalidateTile(gridAtmosphere, tile); return; @@ -312,6 +312,7 @@ namespace Content.Server.Atmos.EntitySystems InvalidateVisuals(tuple.Value.Grid, tuple.Value.Tile); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void InvalidateVisuals(GridId grid, Vector2i tile) { _gasTileOverlaySystem.Invalidate(grid, tile); @@ -347,7 +348,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return null; - if(EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if(TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetTileAtmosphere(gridAtmosphere, tile); } @@ -396,7 +397,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return null; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetTileAtmosphereOrCreateSpace(mapGrid, gridAtmosphere, tile); } @@ -448,7 +449,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { AddActiveTile(gridAtmosphere, tile); return; @@ -509,7 +510,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { RemoveActiveTile(gridAtmosphere, tile); return; @@ -582,12 +583,12 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return null; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetTileMixture(gridAtmosphere, tile, invalidate); } - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) + if (TryComp(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) { // Always return a new space gas mixture in this case. return GasMixture.SpaceGas; @@ -645,7 +646,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return ReactionResult.NoReaction; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return React(gridAtmosphere, tile); } @@ -795,12 +796,12 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return Atmospherics.MinimumHeatCapacity; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetTileHeatCapacity(gridAtmosphere, tile); } - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) + if (TryComp(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) { return Atmospherics.SpaceHeatCapacity; } @@ -857,7 +858,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return Enumerable.Empty(); - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetAdjacentTiles(gridAtmosphere, tile, includeBlocked); } @@ -934,7 +935,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return Enumerable.Empty(); - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return GetAdjacentTileMixtures(gridAtmosphere, tile, includeBlocked, invalidate); } @@ -1017,7 +1018,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { UpdateAdjacent(mapGrid, gridAtmosphere, tile); return; @@ -1093,7 +1094,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { UpdateAdjacent(mapGrid, gridAtmosphere, tile, direction); return; @@ -1171,7 +1172,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { var tileAtmosphere = GetTileAtmosphere(gridAtmosphere, tile); @@ -1208,7 +1209,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { HotspotExtinguish(gridAtmosphere, tile); return; @@ -1257,7 +1258,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return false; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { return IsHotspotActive(gridAtmosphere, tile); } @@ -1288,7 +1289,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(pipeNet.Grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { gridAtmosphere.PipeNets.Add(pipeNet); } @@ -1303,7 +1304,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(pipeNet.Grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { gridAtmosphere.PipeNets.Remove(pipeNet); } @@ -1315,12 +1316,12 @@ namespace Content.Server.Atmos.EntitySystems public bool AddAtmosDevice(AtmosDeviceComponent atmosDevice) { - var grid = EntityManager.GetComponent(atmosDevice.Owner).GridID; + var grid = Comp(atmosDevice.Owner).GridID; if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return false; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { atmosDevice.JoinedGrid = grid; gridAtmosphere.AtmosDevices.Add(atmosDevice); @@ -1344,7 +1345,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return false; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere) && gridAtmosphere.AtmosDevices.Contains(atmosDevice)) { atmosDevice.JoinedGrid = null; @@ -1435,7 +1436,7 @@ namespace Content.Server.Atmos.EntitySystems if (!_mapManager.TryGetGrid(grid, out var mapGrid)) return; - if (EntityManager.TryGetComponent(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) + if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) { FixVacuum(gridAtmosphere, tile); return; @@ -1526,7 +1527,7 @@ namespace Content.Server.Atmos.EntitySystems public bool TryGetMapGrid(GridAtmosphereComponent gridAtmosphere, [NotNullWhen(true)] out IMapGrid? mapGrid) { - if (EntityManager.TryGetComponent(gridAtmosphere.Owner, out IMapGridComponent? mapGridComponent)) + if (TryComp(gridAtmosphere.Owner, out IMapGridComponent? mapGridComponent)) { mapGrid = mapGridComponent.Grid; return true; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs index 7e33c1a9d1..7136b3a282 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs @@ -33,12 +33,12 @@ namespace Content.Server.Atmos.EntitySystems foreach (var entity in _gridtileLookupSystem.GetEntitiesIntersecting(tile.GridIndex, tile.GridIndices)) { - if (!EntityManager.TryGetComponent(entity, out IPhysBody? physics) + if (!HasComp(entity) || !entity.IsMovedByPressure(out var pressure) || entity.IsInContainer()) continue; - var pressureMovements = physics.Owner.EnsureComponent(); + var pressureMovements = EnsureComp(entity); if (pressure.LastHighPressureMovementAirCycle < gridAtmosphere.UpdateCounter) { pressureMovements.ExperiencePressureDifference(gridAtmosphere.UpdateCounter, tile.PressureDifference, tile.PressureDirection, 0, tile.PressureSpecificTarget?.GridIndices.ToEntityCoordinates(tile.GridIndex, _mapManager) ?? EntityCoordinates.Invalid); diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs index 2769e99388..0248eef626 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs @@ -477,7 +477,7 @@ namespace Content.Server.Atmos.EntitySystems { var direction = ((Vector2)_depressurizeTiles[tileCount - 1].GridIndices - tile.GridIndices).Normalized; - var gridPhysics = EntityManager.GetComponent(mapGrid.GridEntityId); + var gridPhysics = Comp(mapGrid.GridEntityId); // TODO ATMOS: Come up with better values for these. gridPhysics.ApplyLinearImpulse(direction * totalMolesRemoved * gridPhysics.Mass); @@ -502,7 +502,7 @@ namespace Content.Server.Atmos.EntitySystems foreach (var entity in mapGrid.GetAnchoredEntities(tile.GridIndices)) { - if (!EntityManager.TryGetComponent(entity, out FirelockComponent firelock)) + if (!TryComp(entity, out FirelockComponent? firelock)) continue; reconsiderAdjacent |= firelock.EmergencyPressureStop(); @@ -510,7 +510,7 @@ namespace Content.Server.Atmos.EntitySystems foreach (var entity in mapGrid.GetAnchoredEntities(other.GridIndices)) { - if (!EntityManager.TryGetComponent(entity, out FirelockComponent firelock)) + if (!TryComp(entity, out FirelockComponent? firelock)) continue; reconsiderAdjacent |= firelock.EmergencyPressureStop(); diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs index f2dbd82d88..ad497a64ec 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs @@ -71,18 +71,18 @@ namespace Content.Server.Atmos.EntitySystems _exposedTimer += frameTime; - if (_exposedTimer >= ExposedUpdateDelay) - { - foreach (var exposed in EntityManager.EntityQuery()) - { - var tile = GetTileMixture(EntityManager.GetComponent(exposed.Owner).Coordinates); - if (tile == null) continue; - var updateEvent = new AtmosExposedUpdateEvent(EntityManager.GetComponent(exposed.Owner).Coordinates, tile); - RaiseLocalEvent(exposed.Owner, ref updateEvent); - } + if (_exposedTimer < ExposedUpdateDelay) + return; - _exposedTimer -= ExposedUpdateDelay; + foreach (var (exposed, transform) in EntityManager.EntityQuery()) + { + var tile = GetTileMixture(transform.Coordinates); + if (tile == null) continue; + var updateEvent = new AtmosExposedUpdateEvent(transform.Coordinates, tile); + RaiseLocalEvent(exposed.Owner, ref updateEvent); } + + _exposedTimer -= ExposedUpdateDelay; } } }