Inline Transform

This commit is contained in:
Vera Aguilera Puerto
2021-12-03 14:20:34 +01:00
parent 69b270017b
commit a5b57c8e10
283 changed files with 742 additions and 709 deletions

View File

@@ -63,7 +63,7 @@ namespace Content.Server.Power.EntitySystems
if (reachable is not CableNode)
continue;
var otherTransform = reachable.Owner.Transform;
var otherTransform = IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(reachable.Owner.Uid);
if (otherTransform.GridID != grid.Index)
continue;

View File

@@ -87,7 +87,7 @@ namespace Content.Server.Power.EntitySystems
if (EntityManager.TryGetComponent<ExtensionCableReceiverComponent>(entity.Uid, out var receiver) &&
receiver.Connectable &&
receiver.Provider == null &&
entity.Transform.Coordinates.TryDistance(IoCManager.Resolve<IEntityManager>(), owner.Transform.Coordinates, out var distance) &&
IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(entity.Uid).Coordinates.TryDistance(IoCManager.Resolve<IEntityManager>(), IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(owner.Uid).Coordinates, out var distance) &&
distance < Math.Min(range, receiver.ReceptionRange))
{
yield return receiver;
@@ -185,7 +185,7 @@ namespace Content.Server.Power.EntitySystems
if (!provider.Connectable) continue;
if (!entity.Transform.Coordinates.TryDistance(IoCManager.Resolve<IEntityManager>(), owner.Transform.Coordinates, out var distance)) continue;
if (!IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(entity.Uid).Coordinates.TryDistance(IoCManager.Resolve<IEntityManager>(), IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(owner.Uid).Coordinates, out var distance)) continue;
if (!(distance < Math.Min(range, provider.TransferRange))) continue;

View File

@@ -18,10 +18,10 @@ namespace Content.Server.Power.Nodes
var entMan = IoCManager.Resolve<IEntityManager>();
// If we're in an invalid grid, such as grid 0, we cannot connect to anything.
if(!IoCManager.Resolve<IMapManager>().TryGetGrid(Owner.Transform.GridID, out var grid))
if(!IoCManager.Resolve<IMapManager>().TryGetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID, out var grid))
yield break;
var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates);
var gridIndex = grid.TileIndicesFor(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).Coordinates);
foreach (var node in NodeHelpers.GetNodesInTile(entMan, grid, gridIndex))
{

View File

@@ -18,8 +18,8 @@ namespace Content.Server.Power.Nodes
yield break;
var entMan = IoCManager.Resolve<IEntityManager>();
var grid = IoCManager.Resolve<IMapManager>().GetGrid(Owner.Transform.GridID);
var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates);
var grid = IoCManager.Resolve<IMapManager>().GetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID);
var gridIndex = grid.TileIndicesFor(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).Coordinates);
// While we go over adjacent nodes, we build a list of blocked directions due to
// incoming or outgoing wire terminals.
@@ -44,11 +44,11 @@ namespace Content.Server.Power.Nodes
if (dir == Direction.Invalid)
{
// On own tile, block direction it faces
terminalDirs |= 1 << (int) node.Owner.Transform.LocalRotation.GetCardinalDir();
terminalDirs |= 1 << (int) IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(node.Owner.Uid).LocalRotation.GetCardinalDir();
}
else
{
var terminalDir = node.Owner.Transform.LocalRotation.GetCardinalDir();
var terminalDir = IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(node.Owner.Uid).LocalRotation.GetCardinalDir();
if (terminalDir.GetOpposite() == dir)
{
// Target tile has a terminal towards us, block the direction.

View File

@@ -12,15 +12,15 @@ namespace Content.Server.Power.Nodes
{
public override IEnumerable<Node> GetReachableNodes()
{
if (Owner.Transform.GridID == GridId.Invalid)
if (IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID == GridId.Invalid)
yield break; // No funny nodes in spess.
var entMan = IoCManager.Resolve<IEntityManager>();
var grid = IoCManager.Resolve<IMapManager>().GetGrid(Owner.Transform.GridID);
var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates);
var grid = IoCManager.Resolve<IMapManager>().GetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID);
var gridIndex = grid.TileIndicesFor(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).Coordinates);
var dir = Owner.Transform.LocalRotation.GetDir();
var dir = IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).LocalRotation.GetDir();
var targetIdx = gridIndex + NodeHelpers.TileOffsetForDir(dir);
foreach (var node in NodeHelpers.GetNodesInTile(entMan, grid, targetIdx))

View File

@@ -12,12 +12,12 @@ namespace Content.Server.Power.Nodes
{
public override IEnumerable<Node> GetReachableNodes()
{
if (Owner.Transform.GridID == GridId.Invalid)
if (IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID == GridId.Invalid)
yield break; // No funny nodes in spess.
var entMan = IoCManager.Resolve<IEntityManager>();
var grid = IoCManager.Resolve<IMapManager>().GetGrid(Owner.Transform.GridID);
var gridIndex = grid.TileIndicesFor(Owner.Transform.Coordinates);
var grid = IoCManager.Resolve<IMapManager>().GetGrid(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).GridID);
var gridIndex = grid.TileIndicesFor(IoCManager.Resolve<IEntityManager>().GetComponent<TransformComponent>(Owner.Uid).Coordinates);
var nodes = NodeHelpers.GetCardinalNeighborNodes(entMan, grid, gridIndex, includeSameTile: false);
foreach (var (_, node) in nodes)