diff --git a/Content.Client/Atmos/EntitySystems/GasTileOverlaySystem.cs b/Content.Client/Atmos/EntitySystems/GasTileOverlaySystem.cs index 86cf0a9eb8..ad26436946 100644 --- a/Content.Client/Atmos/EntitySystems/GasTileOverlaySystem.cs +++ b/Content.Client/Atmos/EntitySystems/GasTileOverlaySystem.cs @@ -16,6 +16,7 @@ namespace Content.Client.Atmos.EntitySystems [Dependency] private readonly IResourceCache _resourceCache = default!; [Dependency] private readonly IOverlayManager _overlayMan = default!; [Dependency] private readonly SpriteSystem _spriteSys = default!; + [Dependency] private readonly SharedTransformSystem _xformSys = default!; private GasTileOverlay _overlay = default!; @@ -25,7 +26,7 @@ namespace Content.Client.Atmos.EntitySystems SubscribeNetworkEvent(HandleGasOverlayUpdate); SubscribeLocalEvent(OnHandleState); - _overlay = new GasTileOverlay(this, EntityManager, _resourceCache, ProtoMan, _spriteSys); + _overlay = new GasTileOverlay(this, EntityManager, _resourceCache, ProtoMan, _spriteSys, _xformSys); _overlayMan.AddOverlay(_overlay); } diff --git a/Content.Client/Atmos/Overlays/GasTileOverlay.cs b/Content.Client/Atmos/Overlays/GasTileOverlay.cs index 17027525e5..55aeaa12af 100644 --- a/Content.Client/Atmos/Overlays/GasTileOverlay.cs +++ b/Content.Client/Atmos/Overlays/GasTileOverlay.cs @@ -21,6 +21,7 @@ namespace Content.Client.Atmos.Overlays { private readonly IEntityManager _entManager; private readonly IMapManager _mapManager; + private readonly SharedTransformSystem _xformSys; public override OverlaySpace Space => OverlaySpace.WorldSpaceEntities | OverlaySpace.WorldSpaceBelowWorld; private readonly ShaderInstance _shader; @@ -46,10 +47,11 @@ namespace Content.Client.Atmos.Overlays public const int GasOverlayZIndex = (int) Shared.DrawDepth.DrawDepth.Effects; // Under ghosts, above mostly everything else - public GasTileOverlay(GasTileOverlaySystem system, IEntityManager entManager, IResourceCache resourceCache, IPrototypeManager protoMan, SpriteSystem spriteSys) + public GasTileOverlay(GasTileOverlaySystem system, IEntityManager entManager, IResourceCache resourceCache, IPrototypeManager protoMan, SpriteSystem spriteSys, SharedTransformSystem xformSys) { _entManager = entManager; _mapManager = IoCManager.Resolve(); + _xformSys = xformSys; _shader = protoMan.Index("unshaded").Instance(); ZIndex = GasOverlayZIndex; @@ -158,7 +160,8 @@ namespace Content.Client.Atmos.Overlays _fireFrameCounter, _shader, overlayQuery, - xformQuery); + xformQuery, + _xformSys); var mapUid = _mapManager.GetMapEntityId(args.MapId); @@ -180,7 +183,8 @@ namespace Content.Client.Atmos.Overlays int[] fireFrameCounter, ShaderInstance shader, EntityQuery overlayQuery, - EntityQuery xformQuery) state) => + EntityQuery xformQuery, + SharedTransformSystem xformSys) state) => { if (!state.overlayQuery.TryGetComponent(uid, out var comp) || !state.xformQuery.TryGetComponent(uid, out var gridXform)) @@ -188,7 +192,7 @@ namespace Content.Client.Atmos.Overlays return true; } - var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); + var (_, _, worldMatrix, invMatrix) = state.xformSys.GetWorldPositionRotationMatrixWithInv(gridXform); state.drawHandle.SetTransform(worldMatrix); var floatBounds = invMatrix.TransformBox(state.WorldBounds).Enlarged(grid.TileSize); var localBounds = new Box2i( diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index a88f673cac..f53895cf8d 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -752,7 +752,7 @@ namespace Content.Shared.Interaction fixtureB.FixtureCount > 0 && Resolve(origin, ref origin.Comp)) { - var (worldPosA, worldRotA) = origin.Comp.GetWorldPositionRotation(); + var (worldPosA, worldRotA) = _transform.GetWorldPositionRotation(origin.Comp); var xfA = new Transform(worldPosA, worldRotA); var parentRotB = _transform.GetWorldRotation(otherCoordinates.EntityId); var xfB = new Transform(targetPos.Position, parentRotB + otherAngle); @@ -825,7 +825,7 @@ namespace Content.Shared.Interaction Ignored? predicate = null) { var transform = Transform(target); - var (position, rotation) = transform.GetWorldPositionRotation(); + var (position, rotation) = _transform.GetWorldPositionRotation(transform); var mapPos = new MapCoordinates(position, transform.MapID); var combinedPredicate = GetPredicate(origin, target, mapPos, rotation, collisionMask, predicate);