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

@@ -286,7 +286,7 @@ namespace Content.Server.NodeContainer.EntitySystems
private BaseNodeGroup InitGroup(Node node, List<Node> groupNodes)
{
var newGroup = (BaseNodeGroup) _nodeGroupFactory.MakeNodeGroup(node.NodeGroupID);
newGroup.Initialize(node);
newGroup.Initialize(node, EntityManager);
newGroup.NetId = _groupNetIdCounter++;
var netIdCounter = 0;
@@ -335,7 +335,7 @@ namespace Content.Server.NodeContainer.EntitySystems
private IEnumerable<Node> GetCompatibleNodes(Node node, EntityQuery<TransformComponent> xformQuery, EntityQuery<NodeContainerComponent> nodeQuery)
{
var xform = xformQuery.GetComponent(node.Owner);
_mapManager.TryGetGrid(xform.GridEntityId, out var grid);
_mapManager.TryGetGrid(xform.GridUid, out var grid);
if (!node.Connectable(EntityManager, xform))
yield break;

View File

@@ -1,6 +1,7 @@
using System.Linq;
using Content.Server.NodeContainer.Nodes;
using Robust.Shared.Map;
using Robust.Shared.Utility;
namespace Content.Server.NodeContainer.NodeGroups
{
@@ -19,7 +20,7 @@ namespace Content.Server.NodeContainer.NodeGroups
void Create(NodeGroupID groupId);
void Initialize(Node sourceNode);
void Initialize(Node sourceNode, IEntityManager? entMan = null);
void RemoveNode(Node node);
@@ -72,10 +73,14 @@ namespace Content.Server.NodeContainer.NodeGroups
GroupId = groupId;
}
public virtual void Initialize(Node sourceNode)
public virtual void Initialize(Node sourceNode, IEntityManager? entMan = null)
{
// TODO: Can we get rid of this GridId?
GridId = IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(sourceNode.Owner).GridEntityId;
IoCManager.Resolve(ref entMan);
var xform = entMan.GetComponent<TransformComponent>(sourceNode.Owner);
DebugTools.AssertNotNull(xform.GridUid);
GridId = xform.GridUid!.Value;
}
/// <summary>

View File

@@ -24,9 +24,9 @@ namespace Content.Server.NodeContainer.NodeGroups
public EntityUid Grid => GridId;
public override void Initialize(Node sourceNode)
public override void Initialize(Node sourceNode, IEntityManager? entMan = null)
{
base.Initialize(sourceNode);
base.Initialize(sourceNode, entMan);
_atmosphereSystem = EntitySystem.Get<AtmosphereSystem>();
_atmosphereSystem.AddPipeNet(this);