Nullable grid Uid (#8798)

This commit is contained in:
Leon Friedrich
2022-06-20 12:14:35 +12:00
committed by GitHub
parent ef41cd5aa8
commit fa4c6f63f8
82 changed files with 318 additions and 242 deletions

View File

@@ -69,7 +69,11 @@ namespace Content.Server.Chemistry.Components
var xform = _entities.GetComponent<TransformComponent>(Owner);
var solSys = _systems.GetEntitySystem<SolutionContainerSystem>();
var grid = MapManager.GetGrid(xform.GridEntityId);
if (!_entities.TryGetComponent(xform.GridUid, out IMapGridComponent? gridComp))
return;
var grid = gridComp.Grid;
var origin = grid.TileIndicesFor(xform.Coordinates);
DebugTools.Assert(xform.Anchored, "Area effect entity prototypes must be anchored.");
@@ -141,14 +145,17 @@ namespace Content.Server.Chemistry.Components
/// with the other area effects from the inception.</param>
public void React(float averageExposures)
{
if (!EntitySystem.Get<SolutionContainerSystem>().TryGetSolution(Owner, SolutionName, out var solution))
if (!_entities.EntitySysManager.GetEntitySystem<SolutionContainerSystem>().TryGetSolution(Owner, SolutionName, out var solution))
return;
var chemistry = EntitySystem.Get<ReactiveSystem>();
var xform = _entities.GetComponent<TransformComponent>(Owner);
var mapGrid = MapManager.GetGrid(xform.GridEntityId);
if (!MapManager.TryGetGrid(xform.GridUid, out var mapGrid))
return;
var tile = mapGrid.GetTileRef(xform.Coordinates.ToVector2i(_entities, MapManager));
var lookup = EntitySystem.Get<EntityLookupSystem>();
var chemistry = _entities.EntitySysManager.GetEntitySystem<ReactiveSystem>();
var lookup = _entities.EntitySysManager.GetEntitySystem<EntityLookupSystem>();
var solutionFraction = 1 / Math.Floor(averageExposures);