Example #1
0
        public override IEnumerable <Node> GetReachableNodes(TransformComponent xform,
                                                             EntityQuery <NodeContainerComponent> nodeQuery,
                                                             EntityQuery <TransformComponent> xformQuery,
                                                             IMapGrid?grid,
                                                             IEntityManager entMan)
        {
            if (!xform.Anchored || grid == null)
            {
                yield break;
            }

            var gridIndex = grid.TileIndicesFor(xform.Coordinates);

            foreach (var node in NodeHelpers.GetNodesInTile(nodeQuery, grid, gridIndex))
            {
                if (node is PortablePipeNode)
                {
                    yield return(node);
                }
            }

            foreach (var node in base.GetReachableNodes(xform, nodeQuery, xformQuery, grid, entMan))
            {
                yield return(node);
            }
        }
Example #2
0
        public override IEnumerable <Node> GetReachableNodes()
        {
            if (!Owner.Transform.Anchored)
            {
                yield break;
            }

            var compMgr   = IoCManager.Resolve <IComponentManager>();
            var grid      = IoCManager.Resolve <IMapManager>().GetGrid(Owner.Transform.GridID);
            var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates);

            foreach (var(_, node) in NodeHelpers.GetCardinalNeighborNodes(compMgr, grid, gridIndex))
            {
                if (node != this)
                {
                    yield return(node);
                }
            }
        }
Example #3
0
        public override IEnumerable <Node> GetReachableNodes(TransformComponent xform,
                                                             EntityQuery <NodeContainerComponent> nodeQuery,
                                                             EntityQuery <TransformComponent> xformQuery,
                                                             IMapGrid?grid,
                                                             IEntityManager entMan)
        {
            if (!xform.Anchored || grid == null)
            {
                yield break;
            }

            var gridIndex = grid.TileIndicesFor(xform.Coordinates);

            foreach (var(_, node) in NodeHelpers.GetCardinalNeighborNodes(nodeQuery, grid, gridIndex))
            {
                if (node != this)
                {
                    yield return(node);
                }
            }
        }