diff --git a/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs b/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs index 7f34d91069..e175f39661 100644 --- a/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs +++ b/Content.Client/Administration/UI/SpawnExplosion/ExplosionDebugOverlay.cs @@ -14,7 +14,6 @@ public sealed class ExplosionDebugOverlay : Overlay [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IEyeManager _eyeManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; - private readonly SharedTransformSystem _transform; public Dictionary>? SpaceTiles; public Dictionary>> Tiles = new(); @@ -36,8 +35,6 @@ public sealed class ExplosionDebugOverlay : Overlay var cache = IoCManager.Resolve(); _font = new VectorFont(cache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 8); - - _transform = _entityManager.System(); } protected override void Draw(in OverlayDrawArgs args) @@ -71,7 +68,7 @@ public sealed class ExplosionDebugOverlay : Overlay continue; var gridXform = xformQuery.GetComponent(grid.Owner); - var (_, _, matrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform, xformQuery); + var (_, _, matrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(xformQuery); gridBounds = invMatrix.TransformBox(args.WorldBounds).Enlarged(grid.TileSize * 2); DrawText(handle, gridBounds, matrix, tileSets, grid.TileSize); } @@ -139,7 +136,7 @@ public sealed class ExplosionDebugOverlay : Overlay continue; var gridXform = xformQuery.GetComponent(grid.Owner); - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform, xformQuery); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(xformQuery); gridBounds = invWorldMatrix.TransformBox(args.WorldBounds).Enlarged(grid.TileSize * 2); handle.SetTransform(worldMatrix); DrawTiles(handle, gridBounds, tileSets, SpaceTileSize); diff --git a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs index f922fce3a0..6d1752a8c9 100644 --- a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs +++ b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs @@ -17,7 +17,6 @@ namespace Content.Client.Atmos.Overlays [Dependency] private readonly IEntityManager _entManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; - private readonly SharedTransformSystem _transform; public override OverlaySpace Space => OverlaySpace.WorldSpace; @@ -26,7 +25,6 @@ namespace Content.Client.Atmos.Overlays IoCManager.InjectDependencies(this); _atmosDebugOverlaySystem = system; - _transform = _entManager.System(); } protected override void Draw(in OverlayDrawArgs args) @@ -49,7 +47,7 @@ namespace Content.Client.Atmos.Overlays !_entManager.TryGetComponent(mapGrid.Owner, out var xform)) continue; - drawHandle.SetTransform(_transform.GetWorldMatrix(xform)); + drawHandle.SetTransform(xform.WorldMatrix); for (var pass = 0; pass < 2; pass++) { diff --git a/Content.Client/Atmos/Overlays/GasTileOverlay.cs b/Content.Client/Atmos/Overlays/GasTileOverlay.cs index f777830bd8..d3e6dbc8de 100644 --- a/Content.Client/Atmos/Overlays/GasTileOverlay.cs +++ b/Content.Client/Atmos/Overlays/GasTileOverlay.cs @@ -19,7 +19,6 @@ namespace Content.Client.Atmos.Overlays public sealed class GasTileOverlay : Overlay { private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; private readonly IMapManager _mapManager; public override OverlaySpace Space => OverlaySpace.WorldSpaceEntities; @@ -49,7 +48,6 @@ namespace Content.Client.Atmos.Overlays public GasTileOverlay(GasTileOverlaySystem system, IEntityManager entManager, IResourceCache resourceCache, IPrototypeManager protoMan, SpriteSystem spriteSys) { _entManager = entManager; - _transform = entManager.System(); _mapManager = IoCManager.Resolve(); _shader = protoMan.Index("unshaded").Instance(); ZIndex = GasOverlayZIndex; @@ -184,7 +182,7 @@ namespace Content.Client.Atmos.Overlays // TODO: WorldBounds callback. _mapManager.FindGridsIntersecting(args.MapId, args.WorldAABB, ref gridState, - (EntityUid uid, MapGridComponent grid, + static (EntityUid uid, MapGridComponent grid, ref (Box2Rotated WorldBounds, DrawingHandleWorld drawHandle, int gasCount, @@ -202,7 +200,7 @@ namespace Content.Client.Atmos.Overlays return true; } - var (_, _, worldMatrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); state.drawHandle.SetTransform(worldMatrix); var floatBounds = invMatrix.TransformBox(in state.WorldBounds).Enlarged(grid.TileSize); var localBounds = new Box2i( diff --git a/Content.Client/Audio/AmbientSoundSystem.cs b/Content.Client/Audio/AmbientSoundSystem.cs index 460a5294e4..8fe331119a 100644 --- a/Content.Client/Audio/AmbientSoundSystem.cs +++ b/Content.Client/Audio/AmbientSoundSystem.cs @@ -29,7 +29,6 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; protected override void QueueUpdate(EntityUid uid, AmbientSoundComponent ambience) => _treeSys.QueueTreeUpdate(uid, ambience); @@ -202,7 +201,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem } } - private bool Callback( + private static bool Callback( ref QueryState state, in ComponentTreeEntry value) { @@ -212,7 +211,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem var delta = xform.ParentUid == state.Player.ParentUid ? xform.LocalPosition - state.Player.LocalPosition - : _transform.GetWorldPosition(xform) - state.MapPos; + : xform.WorldPosition - state.MapPos; var range = delta.Length(); if (range >= ambientComp.Range) @@ -254,7 +253,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem { var distance = (xform.ParentUid == playerXform.ParentUid) ? xform.LocalPosition - playerXform.LocalPosition - : _transform.GetWorldPosition(xform) - mapPos.Position; + : xform.WorldPosition - mapPos.Position; if (distance.LengthSquared() < comp.Range * comp.Range) continue; diff --git a/Content.Client/CardboardBox/CardboardBoxSystem.cs b/Content.Client/CardboardBox/CardboardBoxSystem.cs index 39b0069d04..a4a273eaca 100644 --- a/Content.Client/CardboardBox/CardboardBoxSystem.cs +++ b/Content.Client/CardboardBox/CardboardBoxSystem.cs @@ -10,7 +10,6 @@ namespace Content.Client.CardboardBox; public sealed class CardboardBoxSystem : SharedCardboardBoxSystem { [Dependency] private readonly EntityLookupSystem _entityLookup = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -56,7 +55,7 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem continue; sprite.Offset = new Vector2(0, 1); - _transform.SetParent(ent, entTransform, mob); + entTransform.AttachParent(mob); } } } diff --git a/Content.Client/Chat/UI/SpeechBubble.cs b/Content.Client/Chat/UI/SpeechBubble.cs index 33fedb95ac..b6b336f1dc 100644 --- a/Content.Client/Chat/UI/SpeechBubble.cs +++ b/Content.Client/Chat/UI/SpeechBubble.cs @@ -36,7 +36,6 @@ namespace Content.Client.Chat.UI private readonly EntityUid _senderEntity; private readonly IChatManager _chatManager; private readonly IEntityManager _entityManager; - private readonly SharedTransformSystem _transform; private float _timeLeft = TotalTime; @@ -48,43 +47,30 @@ namespace Content.Client.Chat.UI // man down public event Action? OnDied; - public static SpeechBubble CreateSpeechBubble(SpeechType type, - string text, - EntityUid senderEntity, - IEyeManager eyeManager, - IChatManager chatManager, - IEntityManager entityManager, - SharedTransformSystem transform) + public static SpeechBubble CreateSpeechBubble(SpeechType type, string text, EntityUid senderEntity, IEyeManager eyeManager, IChatManager chatManager, IEntityManager entityManager) { switch (type) { case SpeechType.Emote: - return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, transform, "emoteBox"); + return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, "emoteBox"); case SpeechType.Say: - return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, transform, "sayBox"); + return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, "sayBox"); case SpeechType.Whisper: - return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, transform, "whisperBox"); + return new TextSpeechBubble(text, senderEntity, eyeManager, chatManager, entityManager, "whisperBox"); default: throw new ArgumentOutOfRangeException(); } } - public SpeechBubble(string text, - EntityUid senderEntity, - IEyeManager eyeManager, - IChatManager chatManager, - IEntityManager entityManager, - SharedTransformSystem transform, - string speechStyleClass) + public SpeechBubble(string text, EntityUid senderEntity, IEyeManager eyeManager, IChatManager chatManager, IEntityManager entityManager, string speechStyleClass) { _chatManager = chatManager; _senderEntity = senderEntity; _eyeManager = eyeManager; _entityManager = entityManager; - _transform = transform; // Use text clipping so new messages don't overlap old ones being pushed up. RectClipContent = true; @@ -142,7 +128,7 @@ namespace Content.Client.Chat.UI } var offset = (-_eyeManager.CurrentEye.Rotation).ToWorldVec() * -EntityVerticalOffset; - var worldPos = _transform.GetWorldPosition(xform) + offset; + var worldPos = xform.WorldPosition + offset; var lowerCenter = _eyeManager.WorldToScreen(worldPos) / UIScale; var screenPos = lowerCenter - new Vector2(ContentSize.X / 2, ContentSize.Y + _verticalOffsetAchieved); @@ -178,14 +164,8 @@ namespace Content.Client.Chat.UI public sealed class TextSpeechBubble : SpeechBubble { - public TextSpeechBubble(string text, - EntityUid senderEntity, - IEyeManager eyeManager, - IChatManager chatManager, - IEntityManager entityManager, - SharedTransformSystem transform, - string speechStyleClass) - : base(text, senderEntity, eyeManager, chatManager, entityManager, transform, speechStyleClass) + public TextSpeechBubble(string text, EntityUid senderEntity, IEyeManager eyeManager, IChatManager chatManager, IEntityManager entityManager, string speechStyleClass) + : base(text, senderEntity, eyeManager, chatManager, entityManager, speechStyleClass) { } diff --git a/Content.Client/Decals/Overlays/DecalOverlay.cs b/Content.Client/Decals/Overlays/DecalOverlay.cs index 5d8a34a7bc..c37a0e3aea 100644 --- a/Content.Client/Decals/Overlays/DecalOverlay.cs +++ b/Content.Client/Decals/Overlays/DecalOverlay.cs @@ -11,7 +11,6 @@ namespace Content.Client.Decals.Overlays private readonly SpriteSystem _sprites; private readonly IEntityManager _entManager; private readonly IPrototypeManager _prototypeManager; - private readonly SharedTransformSystem _transform; public override OverlaySpace Space => OverlaySpace.WorldSpaceBelowEntities; @@ -25,7 +24,6 @@ namespace Content.Client.Decals.Overlays _sprites = sprites; _entManager = entManager; _prototypeManager = prototypeManager; - _transform = _entManager.System(); } protected override void Draw(in OverlayDrawArgs args) @@ -46,7 +44,7 @@ namespace Content.Client.Decals.Overlays if (xform.MapID != args.MapId) continue; - var (_, worldRot, worldMatrix) = _transform.GetWorldPositionRotationMatrix(xform, xformQuery); + var (_, worldRot, worldMatrix) = xform.GetWorldPositionRotationMatrix(xformQuery); handle.SetTransform(worldMatrix); diff --git a/Content.Client/DragDrop/DragDropSystem.cs b/Content.Client/DragDrop/DragDropSystem.cs index 2eddd287d5..84bc63a3b6 100644 --- a/Content.Client/DragDrop/DragDropSystem.cs +++ b/Content.Client/DragDrop/DragDropSystem.cs @@ -44,7 +44,6 @@ public sealed class DragDropSystem : SharedDragDropSystem [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private ISawmill _sawmill = default!; @@ -254,7 +253,9 @@ public sealed class DragDropSystem : SharedDragDropSystem // keep it on top of everything dragSprite.DrawDepth = (int) DrawDepth.Overlays; if (!dragSprite.NoRotation) - _transform.SetWorldRotation(_dragShadow.Value, _transform.GetWorldRotation(_draggedEntity.Value)); + { + Transform(_dragShadow.Value).WorldRotation = Transform(_draggedEntity.Value).WorldRotation; + } // drag initiated return; @@ -535,7 +536,7 @@ public sealed class DragDropSystem : SharedDragDropSystem if (Exists(_dragShadow)) { var mousePos = _eyeManager.PixelToMap(_inputManager.MouseScreenPosition); - _transform.SetWorldPosition(_dragShadow.Value, mousePos.Position); + Transform(_dragShadow.Value).WorldPosition = mousePos.Position; } } } diff --git a/Content.Client/Explosion/ExplosionOverlay.cs b/Content.Client/Explosion/ExplosionOverlay.cs index 3592e8bff3..17df782887 100644 --- a/Content.Client/Explosion/ExplosionOverlay.cs +++ b/Content.Client/Explosion/ExplosionOverlay.cs @@ -16,7 +16,6 @@ public sealed class ExplosionOverlay : Overlay [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IPrototypeManager _proto = default!; - private readonly SharedTransformSystem _transform; public override OverlaySpace Space => OverlaySpace.WorldSpaceBelowFOV; @@ -26,7 +25,6 @@ public sealed class ExplosionOverlay : Overlay { IoCManager.InjectDependencies(this); _shader = _proto.Index("unshaded").Instance(); - _transform = _entMan.System(); } protected override void Draw(in OverlayDrawArgs args) @@ -69,7 +67,7 @@ public sealed class ExplosionOverlay : Overlay continue; var xform = xforms.GetComponent(grid.Owner); - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(xform, xforms); + var (_, _, worldMatrix, invWorldMatrix) = xform.GetWorldPositionRotationMatrixWithInv(xforms); gridBounds = invWorldMatrix.TransformBox(worldBounds).Enlarged(grid.TileSize * 2); drawHandle.SetTransform(worldMatrix); diff --git a/Content.Client/Fluids/PuddleOverlay.cs b/Content.Client/Fluids/PuddleOverlay.cs index ffc4015d35..f2f5ca1b9a 100644 --- a/Content.Client/Fluids/PuddleOverlay.cs +++ b/Content.Client/Fluids/PuddleOverlay.cs @@ -14,7 +14,6 @@ public sealed class PuddleOverlay : Overlay [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; private readonly PuddleDebugOverlaySystem _debugOverlaySystem; - private readonly SharedTransformSystem _transform; private readonly Color _heavyPuddle = new(0, 255, 255, 50); private readonly Color _mediumPuddle = new(0, 150, 255, 50); @@ -28,7 +27,6 @@ public sealed class PuddleOverlay : Overlay { IoCManager.InjectDependencies(this); _debugOverlaySystem = _entitySystemManager.GetEntitySystem(); - _transform = _entitySystemManager.GetEntitySystem(); var cache = IoCManager.Resolve(); _font = new VectorFont(cache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 8); } @@ -58,7 +56,7 @@ public sealed class PuddleOverlay : Overlay continue; var gridXform = xformQuery.GetComponent(gridId); - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform, xformQuery); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(xformQuery); gridBounds = invWorldMatrix.TransformBox(args.WorldBounds).Enlarged(mapGrid.TileSize * 2); drawHandle.SetTransform(worldMatrix); @@ -91,7 +89,7 @@ public sealed class PuddleOverlay : Overlay continue; var gridXform = xformQuery.GetComponent(gridId); - var (_, _, matrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform, xformQuery); + var (_, _, matrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(xformQuery); var gridBounds = invMatrix.TransformBox(args.WorldBounds).Enlarged(mapGrid.TileSize * 2); foreach (var debugOverlayData in _debugOverlaySystem.GetData(mapGrid.Owner)) diff --git a/Content.Client/HealthOverlay/HealthOverlaySystem.cs b/Content.Client/HealthOverlay/HealthOverlaySystem.cs index b9c7cfe180..9e1b39aed2 100644 --- a/Content.Client/HealthOverlay/HealthOverlaySystem.cs +++ b/Content.Client/HealthOverlay/HealthOverlaySystem.cs @@ -16,7 +16,6 @@ namespace Content.Client.HealthOverlay { [Dependency] private readonly IEyeManager _eyeManager = default!; [Dependency] private readonly IEntityManager _entities = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private readonly Dictionary _guis = new(); private EntityUid? _attachedEntity; @@ -86,7 +85,7 @@ namespace Content.Client.HealthOverlay var entity = mobState.Owner; if (_entities.GetComponent(ent).MapID != _entities.GetComponent(entity).MapID || - !viewBox.Contains(_transform.GetWorldPosition(entity))) + !viewBox.Contains(_entities.GetComponent(entity).WorldPosition)) { if (_guis.TryGetValue(entity, out var oldGui)) { diff --git a/Content.Client/Maps/GridDraggingSystem.cs b/Content.Client/Maps/GridDraggingSystem.cs index 7849b6fa3b..dcf74557ee 100644 --- a/Content.Client/Maps/GridDraggingSystem.cs +++ b/Content.Client/Maps/GridDraggingSystem.cs @@ -18,7 +18,6 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem [Dependency] private readonly IInputManager _inputManager = default!; [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly InputSystem _inputSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public bool Enabled { get; set; } @@ -67,7 +66,7 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem xform.MapID == _lastMousePosition.Value.MapId) { var tickTime = _gameTiming.TickPeriod; - var distance = _lastMousePosition.Value.Position - _transform.GetWorldPosition(xform); + var distance = _lastMousePosition.Value.Position - xform.WorldPosition; RaiseNetworkEvent(new GridDragVelocityRequest() { Grid = _dragging.Value, @@ -102,7 +101,7 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem if (!_mapManager.TryFindGridAt(mousePos, out var gridUid, out var grid)) return; - StartDragging(gridUid, _transform.GetInvWorldMatrix(gridUid).Transform(mousePos.Position)); + StartDragging(gridUid, Transform(gridUid).InvWorldMatrix.Transform(mousePos.Position)); } if (!TryComp(_dragging, out var xform)) @@ -117,12 +116,11 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem return; } - var localToWorld = _transform.GetWorldMatrix(xform).Transform(_localPosition); + var localToWorld = xform.WorldMatrix.Transform(_localPosition); - if (localToWorld.EqualsApprox(mousePos.Position, 0.01f)) - return; + if (localToWorld.EqualsApprox(mousePos.Position, 0.01f)) return; - var requestedGridOrigin = mousePos.Position - _transform.GetWorldRotation(xform).RotateVec(_localPosition); + var requestedGridOrigin = mousePos.Position - xform.WorldRotation.RotateVec(_localPosition); _lastMousePosition = new MapCoordinates(requestedGridOrigin, mousePos.MapId); RaiseNetworkEvent(new GridDragRequestPosition() diff --git a/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml.cs b/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml.cs index 56518ebafc..40da258a4b 100644 --- a/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml.cs +++ b/Content.Client/Medical/CrewMonitoring/CrewMonitoringWindow.xaml.cs @@ -21,7 +21,6 @@ namespace Content.Client.Medical.CrewMonitoring private List<(DirectionIcon Icon, Vector2 Position)> _directionIcons = new(); private readonly IEntityManager _entManager; private readonly IEyeManager _eye; - private readonly SharedTransformSystem _transform; private EntityUid? _stationUid; private CrewMonitoringButton? _trackedButton; @@ -32,7 +31,6 @@ namespace Content.Client.Medical.CrewMonitoring RobustXamlLoader.Load(this); _eye = IoCManager.Resolve(); _entManager = IoCManager.Resolve(); - _transform = _entManager.System(); _stationUid = mapUid; if (_entManager.TryGetComponent(mapUid, out var xform)) @@ -195,7 +193,7 @@ namespace Content.Client.Medical.CrewMonitoring // Apply the offset relative to the eye. // For a station at 45 degrees rotation, the current eye rotation is -45 degrees. // TODO: This feels sketchy. Is there something underlying wrong with eye rotation? - offsetAngle = -(_eye.CurrentEye.Rotation + _transform.GetWorldRotation(xform)); + offsetAngle = -(_eye.CurrentEye.Rotation + xform.WorldRotation); } foreach (var (icon, pos) in _directionIcons) diff --git a/Content.Client/NPC/HTN/HTNOverlay.cs b/Content.Client/NPC/HTN/HTNOverlay.cs index 56bd4b1b53..ad173f3b29 100644 --- a/Content.Client/NPC/HTN/HTNOverlay.cs +++ b/Content.Client/NPC/HTN/HTNOverlay.cs @@ -7,16 +7,14 @@ namespace Content.Client.NPC.HTN; public sealed class HTNOverlay : Overlay { - private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; - private readonly Font _font; + private readonly IEntityManager _entManager = default!; + private readonly Font _font = default!; public override OverlaySpace Space => OverlaySpace.ScreenSpace; public HTNOverlay(IEntityManager entManager, IResourceCache resourceCache) { _entManager = entManager; - _transform = entManager.System(); _font = new VectorFont(resourceCache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10); } @@ -32,7 +30,7 @@ public sealed class HTNOverlay : Overlay if (string.IsNullOrEmpty(comp.DebugText) || xform.MapID != args.MapId) continue; - var worldPos = _transform.GetWorldPosition(xform); + var worldPos = xform.WorldPosition; if (!args.WorldAABB.Contains(worldPos)) continue; diff --git a/Content.Client/NPC/NPCSteeringSystem.cs b/Content.Client/NPC/NPCSteeringSystem.cs index f270421915..c647c026c1 100644 --- a/Content.Client/NPC/NPCSteeringSystem.cs +++ b/Content.Client/NPC/NPCSteeringSystem.cs @@ -78,12 +78,10 @@ public sealed class NPCSteeringOverlay : Overlay public override OverlaySpace Space => OverlaySpace.WorldSpace; private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; public NPCSteeringOverlay(IEntityManager entManager) { _entManager = entManager; - _transform = entManager.System(); } protected override void Draw(in OverlayDrawArgs args) @@ -95,7 +93,7 @@ public sealed class NPCSteeringOverlay : Overlay continue; } - var worldPos = _transform.GetWorldPosition(xform); + var (worldPos, worldRot) = xform.GetWorldPositionRotation(); if (!args.WorldAABB.Contains(worldPos)) continue; diff --git a/Content.Client/NPC/PathfindingSystem.cs b/Content.Client/NPC/PathfindingSystem.cs index c907cd007f..ea50725b4f 100644 --- a/Content.Client/NPC/PathfindingSystem.cs +++ b/Content.Client/NPC/PathfindingSystem.cs @@ -2,7 +2,6 @@ using System.Linq; using System.Numerics; using System.Text; using Content.Shared.NPC; -using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Client.ResourceManagement; @@ -21,7 +20,6 @@ namespace Content.Client.NPC [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IResourceCache _cache = default!; [Dependency] private readonly NPCSteeringSystem _steering = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public PathfindingDebugMode Modes { @@ -138,7 +136,6 @@ namespace Content.Client.NPC private readonly IInputManager _inputManager; private readonly IMapManager _mapManager; private readonly PathfindingSystem _system; - private readonly SharedTransformSystem _transform; public override OverlaySpace Space => OverlaySpace.ScreenSpace | OverlaySpace.WorldSpace; @@ -157,7 +154,6 @@ namespace Content.Client.NPC _inputManager = inputManager; _mapManager = mapManager; _system = system; - _transform = entManager.System(); _font = new VectorFont(cache.GetResource("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10); } @@ -191,7 +187,7 @@ namespace Content.Client.NPC if (found || !_system.Breadcrumbs.TryGetValue(grid.Owner, out var crumbs) || !xformQuery.TryGetComponent(grid.Owner, out var gridXform)) continue; - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); var localAABB = invWorldMatrix.TransformBox(aabb.Enlarged(float.Epsilon - SharedPathfindingSystem.ChunkSize)); foreach (var chunk in crumbs) @@ -275,8 +271,9 @@ namespace Content.Client.NPC return; } - var invGridMatrix = _transform.GetInvWorldMatrix(gridXform); + var invGridMatrix = gridXform.InvWorldMatrix; DebugPathPoly? nearest = null; + var nearestDistance = float.MaxValue; foreach (var poly in tile) { @@ -342,7 +339,7 @@ namespace Content.Client.NPC continue; } - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); worldHandle.SetTransform(worldMatrix); var localAABB = invWorldMatrix.TransformBox(aabb); @@ -397,7 +394,7 @@ namespace Content.Client.NPC !xformQuery.TryGetComponent(grid.Owner, out var gridXform)) continue; - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); worldHandle.SetTransform(worldMatrix); var localAABB = invWorldMatrix.TransformBox(aabb); @@ -431,7 +428,7 @@ namespace Content.Client.NPC !xformQuery.TryGetComponent(grid.Owner, out var gridXform)) continue; - var (_, _, worldMatrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); worldHandle.SetTransform(worldMatrix); var localAABB = invMatrix.TransformBox(aabb); @@ -485,7 +482,7 @@ namespace Content.Client.NPC !xformQuery.TryGetComponent(grid.Owner, out var gridXform)) continue; - var (_, _, worldMatrix, invWorldMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridXform); + var (_, _, worldMatrix, invWorldMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv(); worldHandle.SetTransform(worldMatrix); var localAABB = invWorldMatrix.TransformBox(args.WorldBounds); @@ -512,7 +509,7 @@ namespace Content.Client.NPC if (!_entManager.TryGetComponent(node.GraphUid, out var graphXform)) continue; - worldHandle.SetTransform(_transform.GetWorldMatrix(graphXform)); + worldHandle.SetTransform(graphXform.WorldMatrix); worldHandle.DrawRect(node.Box, Color.Orange.WithAlpha(0.10f)); } } @@ -534,7 +531,7 @@ namespace Content.Client.NPC continue; matrix = node.GraphUid; - worldHandle.SetTransform(_transform.GetWorldMatrix(graphXform)); + worldHandle.SetTransform(graphXform.WorldMatrix); } worldHandle.DrawRect(node.Box, new Color(0f, cost / highestGScore, 1f - (cost / highestGScore), 0.10f)); diff --git a/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs b/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs index 66b01eab59..d61bb469b3 100644 --- a/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs +++ b/Content.Client/NetworkConfigurator/NetworkConfiguratorLinkOverlay.cs @@ -13,7 +13,6 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IRobustRandom _random = default!; private readonly DeviceListSystem _deviceListSystem; - private readonly SharedTransformSystem _transform; private Dictionary _colors = new(); @@ -24,7 +23,6 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay IoCManager.InjectDependencies(this); _deviceListSystem = _entityManager.System(); - _transform = _entityManager.System(); } public void ClearEntity(EntityUid uid) @@ -72,7 +70,7 @@ public sealed class NetworkConfiguratorLinkOverlay : Overlay continue; } - args.WorldHandle.DrawLine(_transform.GetWorldPosition(sourceTransform), _transform.GetWorldPosition(linkTransform), _colors[tracker.Owner]); + args.WorldHandle.DrawLine(sourceTransform.WorldPosition, linkTransform.WorldPosition, _colors[tracker.Owner]); } } } diff --git a/Content.Client/NodeContainer/NodeVisualizationOverlay.cs b/Content.Client/NodeContainer/NodeVisualizationOverlay.cs index 82c785a4f2..43e3c12a72 100644 --- a/Content.Client/NodeContainer/NodeVisualizationOverlay.cs +++ b/Content.Client/NodeContainer/NodeVisualizationOverlay.cs @@ -19,7 +19,6 @@ namespace Content.Client.NodeContainer private readonly IMapManager _mapManager; private readonly IInputManager _inputManager; private readonly IEntityManager _entityManager; - private readonly SharedTransformSystem _transform; private readonly Dictionary<(int, int), NodeRenderData> _nodeIndex = new(); private readonly Dictionary>> _gridIndex = new (); @@ -45,7 +44,6 @@ namespace Content.Client.NodeContainer _mapManager = mapManager; _inputManager = inputManager; _entityManager = entityManager; - _transform = entityManager.System(); _font = cache.GetFont("/Fonts/NotoSans/NotoSans-Regular.ttf", 12); } @@ -143,7 +141,7 @@ namespace Content.Client.NodeContainer foreach (var (gridId, gridDict) in _gridIndex) { var grid = _mapManager.GetGrid(gridId); - var (_, _, worldMatrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(gridId); + var (_, _, worldMatrix, invMatrix) = _entityManager.GetComponent(grid.Owner).GetWorldPositionRotationMatrixWithInv(); var lCursorBox = invMatrix.TransformBox(cursorBox); foreach (var (pos, list) in gridDict) diff --git a/Content.Client/Outline/TargetOutlineSystem.cs b/Content.Client/Outline/TargetOutlineSystem.cs index 7127589f34..1c396585b3 100644 --- a/Content.Client/Outline/TargetOutlineSystem.cs +++ b/Content.Client/Outline/TargetOutlineSystem.cs @@ -22,7 +22,6 @@ public sealed class TargetOutlineSystem : EntitySystem [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private bool _enabled = false; @@ -165,8 +164,8 @@ public sealed class TargetOutlineSystem : EntitySystem valid = _interactionSystem.InRangeUnobstructed(player, entity, Range); else if (Range >= 0) { - var origin = _transform.GetWorldPosition(player); - var target = _transform.GetWorldPosition(entity); + var origin = Transform(player).WorldPosition; + var target = Transform(entity).WorldPosition; valid = (origin - target).LengthSquared() <= Range; } diff --git a/Content.Client/Pinpointer/NavMapSystem.cs b/Content.Client/Pinpointer/NavMapSystem.cs index f59b669e50..6556aeaf99 100644 --- a/Content.Client/Pinpointer/NavMapSystem.cs +++ b/Content.Client/Pinpointer/NavMapSystem.cs @@ -35,7 +35,6 @@ public sealed class NavMapSystem : SharedNavMapSystem public sealed class NavMapOverlay : Overlay { private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; private readonly IMapManager _mapManager; public override OverlaySpace Space => OverlaySpace.WorldSpace; @@ -43,7 +42,6 @@ public sealed class NavMapOverlay : Overlay public NavMapOverlay(IEntityManager entManager, IMapManager mapManager) { _entManager = entManager; - _transform = entManager.System(); _mapManager = mapManager; } @@ -59,7 +57,7 @@ public sealed class NavMapOverlay : Overlay continue; // TODO: Faster helper method - var (_, _, matrix, invMatrix) = _transform.GetWorldPositionRotationMatrixWithInv(xform); + var (_, _, matrix, invMatrix) = xform.GetWorldPositionRotationMatrixWithInv(); var localAABB = invMatrix.TransformBox(args.WorldBounds); Matrix3.Multiply(in scale, in matrix, out var matty); diff --git a/Content.Client/Pinpointer/UI/NavMapControl.cs b/Content.Client/Pinpointer/UI/NavMapControl.cs index b6f6ca15a9..bd61587e8b 100644 --- a/Content.Client/Pinpointer/UI/NavMapControl.cs +++ b/Content.Client/Pinpointer/UI/NavMapControl.cs @@ -20,7 +20,6 @@ namespace Content.Client.Pinpointer.UI; public sealed class NavMapControl : MapGridControl { [Dependency] private readonly IEntityManager _entManager = default!; - private readonly SharedTransformSystem _transform; public EntityUid? MapUid; @@ -53,9 +52,6 @@ public sealed class NavMapControl : MapGridControl public NavMapControl() : base(8f, 128f, 48f) { IoCManager.InjectDependencies(this); - - _transform = _entManager.System(); - RectClipContent = true; HorizontalExpand = true; VerticalExpand = true; @@ -330,7 +326,7 @@ public sealed class NavMapControl : MapGridControl if (mapPos.MapId != MapId.Nullspace) { - var position = _transform.GetInvWorldMatrix(xform).Transform(mapPos.Position) - offset; + var position = xform.InvWorldMatrix.Transform(mapPos.Position) - offset; position = Scale(new Vector2(position.X, -position.Y)); handle.DrawCircle(position, MinimapScale / 2f, value.Color); diff --git a/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs b/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs index f1359eae67..04fd35da11 100644 --- a/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs +++ b/Content.Client/Replay/Spectator/ReplaySpectatorSystem.Position.cs @@ -56,8 +56,7 @@ public sealed partial class ReplaySpectatorSystem return data; data.Local = (xform.Coordinates, xform.LocalRotation); - var (pos, rot) = _transform.GetWorldPositionRotation(xform); - data.World = (new(xform.MapUid.Value, pos), rot); + data.World = (new(xform.MapUid.Value, xform.WorldPosition), xform.WorldRotation); if (TryComp(player, out InputMoverComponent? mover)) data.Eye = (mover.RelativeEntity, mover.TargetRelativeRotation); diff --git a/Content.Client/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs b/Content.Client/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs index 5f208b6658..db3f8f5b58 100644 --- a/Content.Client/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs +++ b/Content.Client/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs @@ -57,8 +57,7 @@ public sealed partial class ShuttleSystem : SharedShuttleSystem /// public sealed class EmergencyShuttleOverlay : Overlay { - private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; + private IEntityManager _entManager; public override OverlaySpace Space => OverlaySpace.WorldSpace; @@ -68,15 +67,13 @@ public sealed class EmergencyShuttleOverlay : Overlay public EmergencyShuttleOverlay(IEntityManager entManager) { _entManager = entManager; - _transform = entManager.System(); } protected override void Draw(in OverlayDrawArgs args) { - if (Position == null || !_entManager.TryGetComponent(StationUid, out var xform)) - return; + if (Position == null || !_entManager.TryGetComponent(StationUid, out var xform)) return; - args.WorldHandle.SetTransform(_transform.GetWorldMatrix(xform)); + args.WorldHandle.SetTransform(xform.WorldMatrix); args.WorldHandle.DrawRect(Position.Value, Color.Red.WithAlpha(100)); args.WorldHandle.SetTransform(Matrix3.Identity); } diff --git a/Content.Client/Shuttles/UI/DockingControl.cs b/Content.Client/Shuttles/UI/DockingControl.cs index 32c740fd94..93c72921bb 100644 --- a/Content.Client/Shuttles/UI/DockingControl.cs +++ b/Content.Client/Shuttles/UI/DockingControl.cs @@ -16,7 +16,6 @@ namespace Content.Client.Shuttles.UI; public class DockingControl : Control { private readonly IEntityManager _entManager; - private readonly SharedTransformSystem _transform; private readonly IMapManager _mapManager; private float _range = 8f; @@ -47,7 +46,6 @@ public class DockingControl : Control public DockingControl() { _entManager = IoCManager.Resolve(); - _transform = _entManager.System(); _mapManager = IoCManager.Resolve(); _rangeSquared = _range * _range; MinSize = new Vector2(SizeFull, SizeFull); @@ -80,10 +78,7 @@ public class DockingControl : Control if (Coordinates == null || Angle == null || - !_entManager.TryGetComponent(GridEntity, out var gridXform)) - { - return; - } + !_entManager.TryGetComponent(GridEntity, out var gridXform)) return; var rotation = Matrix3.CreateRotation(-Angle.Value + Math.PI); var matrix = Matrix3.CreateTranslation(-Coordinates.Value.Position); @@ -145,8 +140,8 @@ public class DockingControl : Control ScalePosition(rotation.Transform(new Vector2(0.5f, -0.5f)))), Color.Green); // Draw nearby grids - var worldPos = _transform.GetWorldMatrix(gridXform).Transform(Coordinates.Value.Position); - var gridInvMatrix = _transform.GetInvWorldMatrix(gridXform); + var worldPos = gridXform.WorldMatrix.Transform(Coordinates.Value.Position); + var gridInvMatrix = gridXform.InvWorldMatrix; Matrix3.Multiply(in gridInvMatrix, in matrix, out var invMatrix); // TODO: Getting some overdraw so need to fix that. @@ -162,7 +157,7 @@ public class DockingControl : Control if (!_entManager.TryGetComponent(grid.Owner, out var gridFixtures)) continue; - var gridMatrix = _transform.GetWorldMatrix(grid.Owner); + var gridMatrix = xformQuery.GetComponent(grid.Owner).WorldMatrix; Matrix3.Multiply(in gridMatrix, in invMatrix, out var matty); diff --git a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs index 049d27a906..61f861bbc7 100644 --- a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs @@ -21,7 +21,6 @@ public sealed partial class ShuttleConsoleWindow : FancyWindow, { private readonly IEntityManager _entManager; private readonly IGameTiming _timing; - private readonly SharedTransformSystem _transform; private EntityUid? _shuttleUid; @@ -52,7 +51,6 @@ public sealed partial class ShuttleConsoleWindow : FancyWindow, RobustXamlLoader.Load(this); _entManager = IoCManager.Resolve(); _timing = IoCManager.Resolve(); - _transform = _entManager.System(); WorldRangeChange(RadarScreen.WorldRange); RadarScreen.WorldRangeChanged += WorldRangeChange; @@ -325,7 +323,7 @@ public sealed partial class ShuttleConsoleWindow : FancyWindow, FTLTimer.Text = GetFTLText(); - var (_, worldRot, worldMatrix) = _transform.GetWorldPositionRotationMatrix(gridXform); + var (_, worldRot, worldMatrix) = gridXform.GetWorldPositionRotationMatrix(); var worldPos = worldMatrix.Transform(gridBody.LocalCenter); // Get the positive reduced angle. diff --git a/Content.Client/Stealth/StealthSystem.cs b/Content.Client/Stealth/StealthSystem.cs index 128283ca4c..b60ffc2a40 100644 --- a/Content.Client/Stealth/StealthSystem.cs +++ b/Content.Client/Stealth/StealthSystem.cs @@ -10,7 +10,6 @@ namespace Content.Client.Stealth; public sealed class StealthSystem : SharedStealthSystem { [Dependency] private readonly IPrototypeManager _protoMan = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private ShaderInstance _shader = default!; @@ -80,7 +79,7 @@ public sealed class StealthSystem : SharedStealthSystem if (!parent.IsValid()) return; // should never happen, but lets not kill the client. var parentXform = Transform(parent); - var reference = args.Viewport.WorldToLocal(_transform.GetWorldPosition(parentXform)); + var reference = args.Viewport.WorldToLocal(parentXform.WorldPosition); reference.X = -reference.X; var visibility = GetVisibility(uid, component); diff --git a/Content.Client/Tabletop/TabletopSystem.cs b/Content.Client/Tabletop/TabletopSystem.cs index 2a2ff29141..ee0f9646c5 100644 --- a/Content.Client/Tabletop/TabletopSystem.cs +++ b/Content.Client/Tabletop/TabletopSystem.cs @@ -28,7 +28,6 @@ namespace Content.Client.Tabletop [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; // Time in seconds to wait until sending the location of a dragged entity to the server again private const float Delay = 1f / 10; // 10 Hz @@ -77,8 +76,7 @@ namespace Content.Client.Tabletop } // If no entity is being dragged or no viewport is clicked, return - if (_draggedEntity == null || _viewport == null) - return; + if (_draggedEntity == null || _viewport == null) return; if (!CanDrag(playerEntity, _draggedEntity.Value, out var draggableComponent)) { @@ -100,11 +98,10 @@ namespace Content.Client.Tabletop // Clamp coordinates to viewport var clampedCoords = ClampPositionToViewport(coords, _viewport); - if (clampedCoords.Equals(MapCoordinates.Nullspace)) - return; + if (clampedCoords.Equals(MapCoordinates.Nullspace)) return; // Move the entity locally every update - _transform.SetWorldPosition(_draggedEntity.Value, clampedCoords.Position); + EntityManager.GetComponent(_draggedEntity.Value).WorldPosition = clampedCoords.Position; // Increment total time passed _timePassed += frameTime; @@ -185,11 +182,10 @@ namespace Content.Client.Tabletop { if (_draggedEntity != null && _table != null) { - RaiseNetworkEvent(new TabletopRequestTakeOut - { - Entity = _draggedEntity.Value, - TableUid = _table.Value, - }); + var ev = new TabletopRequestTakeOut(); + ev.Entity = _draggedEntity.Value; + ev.TableUid = _table.Value; + RaiseNetworkEvent(ev); } return false; } @@ -282,12 +278,10 @@ namespace Content.Client.Tabletop /// Coordinates clamped to the viewport. private static MapCoordinates ClampPositionToViewport(MapCoordinates coordinates, ScalingViewport viewport) { - if (coordinates == MapCoordinates.Nullspace) - return MapCoordinates.Nullspace; + if (coordinates == MapCoordinates.Nullspace) return MapCoordinates.Nullspace; var eye = viewport.Eye; - if (eye == null) - return MapCoordinates.Nullspace; + if (eye == null) return MapCoordinates.Nullspace; var size = (Vector2) viewport.ViewportSize / EyeManager.PixelsPerMeter; // Convert to tiles instead of pixels var eyePosition = eye.Position.Position; diff --git a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs index d29678266d..50431a7c57 100644 --- a/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs +++ b/Content.Client/UserInterface/Systems/Chat/ChatUIController.cs @@ -19,7 +19,6 @@ using Content.Shared.Chat; using Content.Shared.Examine; using Content.Shared.Input; using Content.Shared.Radio; -using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.Input; using Robust.Client.Player; @@ -56,7 +55,6 @@ public sealed class ChatUIController : UIController [UISystemDependency] private readonly GhostSystem? _ghost = default; [UISystemDependency] private readonly TypingIndicatorSystem? _typingIndicator = default; [UISystemDependency] private readonly ChatSystem? _chatSys = default; - [UISystemDependency] private readonly TransformSystem _transform = default!; private ISawmill _sawmill = default!; @@ -410,7 +408,7 @@ public sealed class ChatUIController : UIController private void CreateSpeechBubble(EntityUid entity, SpeechBubbleData speechData) { var bubble = - SpeechBubble.CreateSpeechBubble(speechData.Type, speechData.Message, entity, _eye, _manager, _entities, _transform); + SpeechBubble.CreateSpeechBubble(speechData.Type, speechData.Message, entity, _eye, _manager, _entities); bubble.OnDied += SpeechBubbleDied; diff --git a/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs b/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs index d6d9ef84d1..d16b61317d 100644 --- a/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs +++ b/Content.Client/UserInterface/Systems/Viewport/ViewportUIController.cs @@ -4,7 +4,6 @@ using Content.Shared.CCVar; using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.Player; -using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controllers; using Robust.Shared.Configuration; using Robust.Shared.Timing; @@ -17,7 +16,6 @@ public sealed class ViewportUIController : UIController [Dependency] private readonly IPlayerManager _playerMan = default!; [Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; - [UISystemDependency] private readonly TransformSystem _transform = default!; public static readonly Vector2i ViewportSize = (EyeManager.PixelsPerMeter * 21, EyeManager.PixelsPerMeter * 15); public const int ViewportHeight = 15; @@ -89,10 +87,9 @@ public sealed class ViewportUIController : UIController _entMan.TryGetComponent(ent, out EyeComponent? eye); - if (eye?.Eye == _eyeManager.CurrentEye && _transform.GetWorldPosition(ent.Value) == default) - { + if (eye?.Eye == _eyeManager.CurrentEye + && _entMan.GetComponent(ent.Value).WorldPosition == default) return; // nothing to worry about, the player is just in null space... actually that is probably a problem? - } // Currently, this shouldn't happen. This likely happened because the main eye was set to null. When this // does happen it can create hard to troubleshoot bugs, so lets print some helpful warnings: diff --git a/Content.Server/Administration/Commands/AGhost.cs b/Content.Server/Administration/Commands/AGhost.cs index a8217c5556..42a8600ff1 100644 --- a/Content.Server/Administration/Commands/AGhost.cs +++ b/Content.Server/Administration/Commands/AGhost.cs @@ -48,7 +48,7 @@ namespace Content.Server.Administration.Commands ? _entities.GetComponent(player.AttachedEntity.Value).Coordinates : EntitySystem.Get().GetObserverSpawnPoint(); var ghost = _entities.SpawnEntity("AdminObserver", coordinates); - _entities.System().AttachToGridOrMap(ghost); + _entities.GetComponent(ghost).AttachToGridOrMap(); if (canReturn) { diff --git a/Content.Server/Administration/Commands/WarpCommand.cs b/Content.Server/Administration/Commands/WarpCommand.cs index 7b577f59ef..5c61208b5b 100644 --- a/Content.Server/Administration/Commands/WarpCommand.cs +++ b/Content.Server/Administration/Commands/WarpCommand.cs @@ -4,7 +4,6 @@ using Content.Server.Warps; using Content.Shared.Administration; using Content.Shared.Follower; using Content.Shared.Ghost; -using Robust.Server.GameObjects; using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.Enums; @@ -122,9 +121,9 @@ namespace Content.Server.Administration.Commands return; } - var transform = _entManager.System(); - transform.SetCoordinates(playerEntity, coords); - transform.AttachToGridOrMap(playerEntity); + var xform = _entManager.GetComponent(playerEntity); + xform.Coordinates = coords; + xform.AttachToGridOrMap(); if (_entManager.TryGetComponent(playerEntity, out PhysicsComponent? physics)) { _entManager.System().SetLinearVelocity(playerEntity, Vector2.Zero, body: physics); diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs index 4ebec61ee3..45c754eba4 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs @@ -76,7 +76,6 @@ public sealed partial class AdminVerbSystem [Dependency] private readonly VomitSystem _vomitSystem = default!; [Dependency] private readonly WeldableSystem _weldableSystem = default!; [Dependency] private readonly SharedContentEyeSystem _eyeSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; // All smite verbs have names so invokeverb works. private void AddSmiteVerbs(GetVerbsEvent args) @@ -131,8 +130,8 @@ public sealed partial class AdminVerbSystem Filter.PvsExcept(args.Target), true, PopupType.MediumCaution); var board = Spawn("ChessBoard", xform.Coordinates); var session = _tabletopSystem.EnsureSession(Comp(board)); - _transform.SetCoordinates(args.Target, EntityCoordinates.FromMap(_mapManager, session.Position)); - _transform.SetWorldRotation(xform, Angle.Zero); + xform.Coordinates = EntityCoordinates.FromMap(_mapManager, session.Position); + xform.WorldRotation = Angle.Zero; }, Impact = LogImpact.Extreme, Message = Loc.GetString("admin-smite-chess-dimension-description") diff --git a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs index 3833d05c76..7d00634e4a 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs @@ -18,7 +18,6 @@ namespace Content.Server.Atmos.EntitySystems [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IConfigurationManager _configManager = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; /// /// Players allowed to see the atmos debug overlay. @@ -135,7 +134,7 @@ namespace Content.Server.Atmos.EntitySystems var mapIsSpace = _atmosphereSystem.IsTileSpace(null, mapUid, Vector2i.Zero); - var worldBounds = Box2.CenteredAround(_transform.GetWorldPosition(transform), + var worldBounds = Box2.CenteredAround(transform.WorldPosition, new Vector2(LocalViewRange, LocalViewRange)); foreach (var grid in _mapManager.FindGridsIntersecting(transform.MapID, worldBounds)) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs index 39493e99a1..a06bf3504c 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs @@ -15,8 +15,6 @@ namespace Content.Server.Atmos.EntitySystems { public sealed partial class AtmosphereSystem { - [Dependency] private readonly SharedTransformSystem _transform = default!; - private const int SpaceWindSoundCooldownCycles = 75; private int _spaceWindSoundCooldown = 0; @@ -120,7 +118,7 @@ namespace Content.Server.Atmos.EntitySystems return; // Used by ExperiencePressureDifference to correct push/throw directions from tile-relative to physics world. - var gridWorldRotation = _transform.GetWorldRotation(gridAtmosphere.Owner); + var gridWorldRotation = xforms.GetComponent(gridAtmosphere.Owner).WorldRotation; // If we're using monstermos, smooth out the yeet direction to follow the flow if (MonstermosEqualization) @@ -236,7 +234,7 @@ namespace Content.Server.Atmos.EntitySystems // TODO: Technically these directions won't be correct but uhh I'm just here for optimisations buddy not to fix my old bugs. if (throwTarget != EntityCoordinates.Invalid) { - var pos = ((throwTarget.ToMap(EntityManager).Position - _transform.GetWorldPosition(xform)).Normalized() + dirVec).Normalized(); + var pos = ((throwTarget.ToMap(EntityManager).Position - xform.WorldPosition).Normalized() + dirVec).Normalized(); _physics.ApplyLinearImpulse(uid, pos * moveForce, body: physics); } else diff --git a/Content.Server/Bible/BibleSystem.cs b/Content.Server/Bible/BibleSystem.cs index f06bcdb7be..8186db5a49 100644 --- a/Content.Server/Bible/BibleSystem.cs +++ b/Content.Server/Bible/BibleSystem.cs @@ -29,7 +29,6 @@ namespace Content.Server.Bible [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; [Dependency] private readonly UseDelaySystem _delay = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -236,7 +235,7 @@ namespace Content.Server.Bible if (HasComp(familiar)) { _popupSystem.PopupEntity(Loc.GetString("bible-summon-requested"), user, PopupType.Medium); - _transform.SetParent(familiar, component.Owner); + Transform(familiar).AttachParent(component.Owner); } component.AlreadySummoned = true; _actionsSystem.RemoveAction(user, component.SummonAction); diff --git a/Content.Server/Body/Systems/BodySystem.cs b/Content.Server/Body/Systems/BodySystem.cs index 471daea79a..31d43f00ff 100644 --- a/Content.Server/Body/Systems/BodySystem.cs +++ b/Content.Server/Body/Systems/BodySystem.cs @@ -4,6 +4,7 @@ using Content.Server.Body.Components; using Content.Server.GameTicking; using Content.Server.Humanoid; using Content.Server.Kitchen.Components; +using Content.Server.Mind; using Content.Shared.Body.Components; using Content.Shared.Body.Organ; using Content.Shared.Body.Part; @@ -28,8 +29,7 @@ public sealed class BodySystem : SharedBodySystem [Dependency] private readonly HumanoidAppearanceSystem _humanoidSystem = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedMindSystem _mindSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly MindSystem _mindSystem = default!; public override void Initialize() { @@ -127,7 +127,7 @@ public sealed class BodySystem : SharedBodySystem return; // Don't microwave animals, kids - _transform.AttachToGridOrMap(uid); + Transform(uid).AttachToGridOrMap(); GibBody(uid, false, component); args.Handled = true; @@ -209,7 +209,7 @@ public sealed class BodySystem : SharedBodySystem else { cont.Remove(ent, EntityManager, force: true); - _transform.SetCoordinates(ent, coordinates); + Transform(ent).Coordinates = coordinates; ent.RandomOffset(0.25f); } } diff --git a/Content.Server/Chemistry/EntitySystems/RehydratableSystem.cs b/Content.Server/Chemistry/EntitySystems/RehydratableSystem.cs index ce0032e741..3dd1c6ae58 100644 --- a/Content.Server/Chemistry/EntitySystems/RehydratableSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/RehydratableSystem.cs @@ -10,7 +10,6 @@ public sealed class RehydratableSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popups = default!; [Dependency] private readonly SolutionContainerSystem _solutions = default!; [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -37,7 +36,7 @@ public sealed class RehydratableSystem : EntitySystem var target = Spawn(randomMob, Transform(uid).Coordinates); - _transform.AttachToGridOrMap(target); + Transform(target).AttachToGridOrMap(); var ev = new GotRehydratedEvent(target); RaiseLocalEvent(uid, ref ev); diff --git a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs index 7a51ab68de..92ba44b2c6 100644 --- a/Content.Server/Chemistry/EntitySystems/VaporSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/VaporSystem.cs @@ -27,7 +27,6 @@ namespace Content.Server.Chemistry.EntitySystems [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly ThrowingSystem _throwing = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private const float ReactTime = 0.125f; @@ -70,7 +69,7 @@ namespace Content.Server.Chemistry.EntitySystems _throwing.TryThrow(vapor.Owner, dir, speed, user: user, pushbackRatio: ThrowingSystem.PushbackDefault * 10f); - var distance = (target.Position - _transform.GetWorldPosition(vaporXform)).Length(); + var distance = (target.Position - vaporXform.WorldPosition).Length(); var time = (distance / physics.LinearVelocity.Length()); despawn.Lifetime = MathF.Min(aliveTime, time); } diff --git a/Content.Server/Climbing/ClimbSystem.cs b/Content.Server/Climbing/ClimbSystem.cs index b9c9fd8772..539463eed4 100644 --- a/Content.Server/Climbing/ClimbSystem.cs +++ b/Content.Server/Climbing/ClimbSystem.cs @@ -45,7 +45,6 @@ public sealed class ClimbSystem : SharedClimbSystem [Dependency] private readonly InteractionSystem _interactionSystem = default!; [Dependency] private readonly StunSystem _stunSystem = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private const string ClimbingFixtureName = "climb"; private const int ClimbingCollisionGroup = (int) (CollisionGroup.TableLayer | CollisionGroup.LowImpassable); @@ -395,8 +394,8 @@ public sealed class ClimbSystem : SharedClimbSystem if (!Resolve(uid, ref physics, ref climbing, false)) return; - var from = _transform.GetWorldPosition(uid); - var to = _transform.GetWorldPosition(target); + var from = Transform(uid).WorldPosition; + var to = Transform(target).WorldPosition; var (x, y) = (to - from).Normalized(); if (MathF.Abs(x) < 0.6f) // user climbed mostly vertically so lets make it a clean straight line diff --git a/Content.Server/Commands/CommandUtils.cs b/Content.Server/Commands/CommandUtils.cs index 0eb69985e9..11adaec9a2 100644 --- a/Content.Server/Commands/CommandUtils.cs +++ b/Content.Server/Commands/CommandUtils.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using System.Globalization; using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.Network; @@ -48,5 +49,42 @@ namespace Content.Server.Commands attachedEntity = session.AttachedEntity.Value; return true; } + + public static string SubstituteEntityDetails(IConsoleShell shell, EntityUid ent, string ruleString) + { + var entMan = IoCManager.Resolve(); + var transform = entMan.GetComponent(ent); + + // gross, is there a better way to do this? + ruleString = ruleString.Replace("$ID", ent.ToString()); + ruleString = ruleString.Replace("$WX", + transform.WorldPosition.X.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$WY", + transform.WorldPosition.Y.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$LX", + transform.LocalPosition.X.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$LY", + transform.LocalPosition.Y.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$NAME", entMan.GetComponent(ent).EntityName); + + if (shell.Player is IPlayerSession player) + { + if (player.AttachedEntity is {Valid: true} p) + { + var pTransform = entMan.GetComponent(p); + + ruleString = ruleString.Replace("$PID", ent.ToString()); + ruleString = ruleString.Replace("$PWX", + pTransform.WorldPosition.X.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$PWY", + pTransform.WorldPosition.Y.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$PLX", + pTransform.LocalPosition.X.ToString(CultureInfo.InvariantCulture)); + ruleString = ruleString.Replace("$PLY", + pTransform.LocalPosition.Y.ToString(CultureInfo.InvariantCulture)); + } + } + return ruleString; + } } } diff --git a/Content.Server/Construction/Completions/SnapToGrid.cs b/Content.Server/Construction/Completions/SnapToGrid.cs index 2f51df884b..47941108f5 100644 --- a/Content.Server/Construction/Completions/SnapToGrid.cs +++ b/Content.Server/Construction/Completions/SnapToGrid.cs @@ -15,7 +15,7 @@ namespace Content.Server.Construction.Completions var transform = entityManager.GetComponent(uid); if (!transform.Anchored) - entityManager.System().SetCoordinates(uid, transform, transform.Coordinates.SnapToGrid(entityManager)); + transform.Coordinates = transform.Coordinates.SnapToGrid(entityManager); if (SouthRotation) { diff --git a/Content.Server/Construction/ConstructionSystem.Graph.cs b/Content.Server/Construction/ConstructionSystem.Graph.cs index e9f3e3cbea..43b7b009a5 100644 --- a/Content.Server/Construction/ConstructionSystem.Graph.cs +++ b/Content.Server/Construction/ConstructionSystem.Graph.cs @@ -341,7 +341,7 @@ namespace Content.Server.Construction // Transform transferring. var newTransform = Transform(newUid); - _transform.AttachToGridOrMap(newUid, newTransform); // in case in hands or a container + newTransform.AttachToGridOrMap(); // in case in hands or a container newTransform.LocalRotation = transform.LocalRotation; newTransform.Anchored = transform.Anchored; diff --git a/Content.Server/Construction/ConstructionSystem.Initial.cs b/Content.Server/Construction/ConstructionSystem.Initial.cs index a2191a0395..2284ade6bd 100644 --- a/Content.Server/Construction/ConstructionSystem.Initial.cs +++ b/Content.Server/Construction/ConstructionSystem.Initial.cs @@ -31,7 +31,6 @@ namespace Content.Server.Construction [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; [Dependency] private readonly StorageSystem _storageSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; // --- WARNING! LEGACY CODE AHEAD! --- // This entire file contains the legacy code for initial construction. @@ -516,7 +515,7 @@ namespace Content.Server.Construction var xform = Transform(structure); var wasAnchored = xform.Anchored; xform.Anchored = false; - _transform.SetCoordinates(structure, xform, ev.Location); + xform.Coordinates = ev.Location; xform.LocalRotation = constructionPrototype.CanRotate ? ev.Angle : Angle.Zero; xform.Anchored = wasAnchored; diff --git a/Content.Server/DeviceNetwork/Systems/WirelessNetworkSystem.cs b/Content.Server/DeviceNetwork/Systems/WirelessNetworkSystem.cs index ae8da22b18..b27ef52eca 100644 --- a/Content.Server/DeviceNetwork/Systems/WirelessNetworkSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/WirelessNetworkSystem.cs @@ -6,8 +6,6 @@ namespace Content.Server.DeviceNetwork.Systems [UsedImplicitly] public sealed class WirelessNetworkSystem : EntitySystem { - [Dependency] private readonly SharedTransformSystem _transform = default!; - public override void Initialize() { base.Initialize(); @@ -27,7 +25,7 @@ namespace Content.Server.DeviceNetwork.Systems return; if (xform.MapID != args.SenderTransform.MapID - || (ownPosition - _transform.GetWorldPosition(xform)).Length() > sendingComponent.Range) + || (ownPosition - xform.WorldPosition).Length() > sendingComponent.Range) { args.Cancel(); } diff --git a/Content.Server/Dragon/DragonSystem.cs b/Content.Server/Dragon/DragonSystem.cs index 219527560a..82aa10b037 100644 --- a/Content.Server/Dragon/DragonSystem.cs +++ b/Content.Server/Dragon/DragonSystem.cs @@ -38,7 +38,6 @@ public sealed partial class DragonSystem : EntitySystem [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; [Dependency] private readonly NPCSystem _npc = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; /// /// Minimum distance between 2 rifts allowed. @@ -252,7 +251,7 @@ public sealed partial class DragonSystem : EntitySystem } } - foreach (var tile in grid.GetTilesIntersecting(new Circle(_transform.GetWorldPosition(xform), RiftTileRadius), false)) + foreach (var tile in grid.GetTilesIntersecting(new Circle(xform.WorldPosition, RiftTileRadius), false)) { if (!tile.IsSpace(_tileDef)) continue; diff --git a/Content.Server/Explosion/EntitySystems/ExplosionGridTileFlood.cs b/Content.Server/Explosion/EntitySystems/ExplosionGridTileFlood.cs index 585475dd83..8d2a699de2 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionGridTileFlood.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionGridTileFlood.cs @@ -69,14 +69,13 @@ public sealed class ExplosionGridTileFlood : ExplosionTileFlood return; _needToTransform = true; - var transform = IoCManager.Resolve().GetEntitySystem(); + var transform = IoCManager.Resolve().GetComponent(Grid.Owner); var size = (float) Grid.TileSize; _matrix.R0C2 = size / 2; _matrix.R1C2 = size / 2; - var (_, rot, mat) = transform.GetWorldPositionRotationMatrix(Grid.Owner); - _matrix *= mat * Matrix3.Invert(spaceMatrix); - var relativeAngle = rot - spaceAngle; + _matrix *= transform.WorldMatrix * Matrix3.Invert(spaceMatrix); + var relativeAngle = transform.WorldRotation - spaceAngle; _offset = relativeAngle.RotateVec(new Vector2(size / 4, size / 4)); } diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.GridMap.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.GridMap.cs index 7a3e6d0a65..79985d233b 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.GridMap.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.GridMap.cs @@ -61,9 +61,8 @@ public sealed partial class ExplosionSystem : EntitySystem { var targetGrid = _mapManager.GetGrid(referenceGrid.Value); var xform = Transform(targetGrid.Owner); - var (_, rot, invMat) = _transformSystem.GetWorldPositionRotationInvMatrix(xform); - targetAngle = rot; - targetMatrix = invMat; + targetAngle = xform.WorldRotation; + targetMatrix = xform.InvWorldMatrix; tileSize = targetGrid.TileSize; } @@ -96,7 +95,7 @@ public sealed partial class ExplosionSystem : EntitySystem var xforms = EntityManager.GetEntityQuery(); var xform = xforms.GetComponent(grid.Owner); - var (_, gridWorldRotation, gridWorldMatrix, invGridWorldMatrid) = _transformSystem.GetWorldPositionRotationMatrixWithInv(xform, xforms); + var (_, gridWorldRotation, gridWorldMatrix, invGridWorldMatrid) = xform.GetWorldPositionRotationMatrixWithInv(xforms); var localEpicentre = (Vector2i) invGridWorldMatrid.Transform(epicentre.Position); var matrix = offsetMatrix * gridWorldMatrix * targetMatrix; diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.TileFill.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.TileFill.cs index e797520ac0..fc16c9daa4 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.TileFill.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.TileFill.cs @@ -87,8 +87,8 @@ public sealed partial class ExplosionSystem : EntitySystem if (referenceGrid != null) { var xform = Transform(_mapManager.GetGrid(referenceGrid.Value).Owner); - spaceMatrix = _transformSystem.GetWorldMatrix(xform); - spaceAngle = _transformSystem.GetWorldRotation(xform); + spaceMatrix = xform.WorldMatrix; + spaceAngle = xform.WorldRotation; } // is the explosion starting on a grid? diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index a701b27aa2..d042b65449 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -340,7 +340,7 @@ public sealed partial class ExplosionSystem : EntitySystem if (player.AttachedEntity is not EntityUid uid) continue; - var playerPos = _transformSystem.GetWorldPosition(player.AttachedEntity.Value); + var playerPos = Transform(player.AttachedEntity!.Value).WorldPosition; var delta = epicenter.Position - playerPos; if (delta.EqualsApprox(Vector2.Zero)) diff --git a/Content.Server/Fluids/EntitySystems/PuddleDebugDebugOverlaySystem.cs b/Content.Server/Fluids/EntitySystems/PuddleDebugDebugOverlaySystem.cs index 350f805a1b..b09d74c4d0 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleDebugDebugOverlaySystem.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleDebugDebugOverlaySystem.cs @@ -13,7 +13,6 @@ public sealed class PuddleDebugDebugOverlaySystem : SharedPuddleDebugOverlaySyst [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly PuddleSystem _puddle = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private readonly HashSet _playerObservers = new(); @@ -56,7 +55,7 @@ public sealed class PuddleDebugDebugOverlaySystem : SharedPuddleDebugOverlaySyst var transform = EntityManager.GetComponent(entity); - var worldBounds = Box2.CenteredAround(_transform.GetWorldPosition(transform), + var worldBounds = Box2.CenteredAround(transform.WorldPosition, new Vector2(LocalViewRange, LocalViewRange)); diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 7fe11fad0f..1c784641e3 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -375,7 +375,7 @@ namespace Content.Server.GameTicking var gridXform = Transform(gridUid); return new EntityCoordinates(gridUid, - _transform.GetInvWorldMatrix(gridXform).Transform(toMap.Position)); + gridXform.InvWorldMatrix.Transform(toMap.Position)); } return spawn; diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index 657b6848f3..9e01cfa758 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -2,6 +2,8 @@ using System.Linq; using System.Numerics; using Content.Server.GameTicking; using Content.Server.Ghost.Components; +using Content.Server.Mind; +using Content.Server.Roles.Jobs; using Content.Server.Visible; using Content.Server.Warps; using Content.Shared.Actions; @@ -37,9 +39,8 @@ namespace Content.Server.Ghost [Dependency] private readonly FollowerSystem _followerSystem = default!; [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly SharedMindSystem _minds = default!; - [Dependency] private readonly SharedJobSystem _jobs = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly MindSystem _minds = default!; + [Dependency] private readonly JobSystem _jobs = default!; public override void Initialize() { @@ -206,8 +207,8 @@ namespace Content.Server.Ghost private void OnGhostWarpToTargetRequest(GhostWarpToTargetRequestEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity is not { Valid: true } attached || - !EntityManager.HasComponent(attached)) + if (args.SenderSession.AttachedEntity is not {Valid: true} attached || + !EntityManager.TryGetComponent(attached, out GhostComponent? ghost)) { Logger.Warning($"User {args.SenderSession.Name} tried to warp to {msg.Target} without being a ghost."); return; @@ -222,12 +223,13 @@ namespace Content.Server.Ghost if (TryComp(msg.Target, out WarpPointComponent? warp) && warp.Follow || HasComp(msg.Target)) { - _followerSystem.StartFollowingEntity(attached, msg.Target); + _followerSystem.StartFollowingEntity(ghost.Owner, msg.Target); return; } - _transform.SetCoordinates(attached, Transform(msg.Target).Coordinates); - _transform.AttachToGridOrMap(attached); + var xform = Transform(ghost.Owner); + xform.Coordinates = Transform(msg.Target).Coordinates; + xform.AttachToGridOrMap(); if (TryComp(attached, out PhysicsComponent? physics)) _physics.SetLinearVelocity(attached, Vector2.Zero, body: physics); } diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index ec7743f2ae..9a72d31207 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -45,7 +45,6 @@ namespace Content.Server.Hands.Systems [Dependency] private readonly StorageSystem _storageSystem = default!; [Dependency] private readonly ISharedPlayerManager _player = default!; [Dependency] private readonly IConfigurationManager _configuration = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -202,7 +201,7 @@ namespace Content.Server.Hands.Systems throwEnt = splitStack.Value; } - var direction = coords.ToMapPos(EntityManager) - _transform.GetWorldPosition(player); + var direction = coords.ToMapPos(EntityManager) - Transform(player).WorldPosition; if (direction == Vector2.Zero) return true; diff --git a/Content.Server/ImmovableRod/ImmovableRodSystem.cs b/Content.Server/ImmovableRod/ImmovableRodSystem.cs index f809de0ad0..99c949ebce 100644 --- a/Content.Server/ImmovableRod/ImmovableRodSystem.cs +++ b/Content.Server/ImmovableRod/ImmovableRodSystem.cs @@ -20,7 +20,6 @@ public sealed class ImmovableRodSystem : EntitySystem [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Update(float frameTime) { @@ -63,11 +62,11 @@ public sealed class ImmovableRodSystem : EntitySystem var vel = component.DirectionOverride.Degrees switch { 0f => _random.NextVector2(component.MinSpeed, component.MaxSpeed), - _ => _transform.GetWorldRotation(xform).RotateVec(component.DirectionOverride.ToVec()) * _random.NextFloat(component.MinSpeed, component.MaxSpeed), + _ => xform.WorldRotation.RotateVec(component.DirectionOverride.ToVec()) * _random.NextFloat(component.MinSpeed, component.MaxSpeed) }; _physics.ApplyLinearImpulse(uid, vel, body: phys); - xform.LocalRotation = (vel - _transform.GetWorldPosition(xform)).ToWorldAngle() + MathHelper.PiOver2; + xform.LocalRotation = (vel - xform.WorldPosition).ToWorldAngle() + MathHelper.PiOver2; } } diff --git a/Content.Server/Lightning/LightningSystem.cs b/Content.Server/Lightning/LightningSystem.cs index 5e842b8969..8d82275b0a 100644 --- a/Content.Server/Lightning/LightningSystem.cs +++ b/Content.Server/Lightning/LightningSystem.cs @@ -16,7 +16,6 @@ public sealed class LightningSystem : SharedLightningSystem [Dependency] private readonly PhysicsSystem _physics = default!; [Dependency] private readonly BeamSystem _beam = default!; [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -98,7 +97,7 @@ public sealed class LightningSystem : SharedLightningSystem for (int i = 0; i < directions; i++) { var direction = (Direction) i; - var (targetPos, targetRot) = _transform.GetWorldPositionRotation(targetXForm, xformQuery); + var (targetPos, targetRot) = targetXForm.GetWorldPositionRotation(xformQuery); var dirRad = direction.ToAngle() + targetRot; var ray = new CollisionRay(targetPos, dirRad.ToVec(), component.CollisionMask); var rayCastResults = _physics.IntersectRay(targetXForm.MapID, ray, component.MaxLength, target, false).ToList(); diff --git a/Content.Server/Magic/MagicSystem.cs b/Content.Server/Magic/MagicSystem.cs index 61c094de60..e75bae0249 100644 --- a/Content.Server/Magic/MagicSystem.cs +++ b/Content.Server/Magic/MagicSystem.cs @@ -274,11 +274,10 @@ public sealed class MagicSystem : EntitySystem var transform = Transform(args.Performer); - if (transform.MapID != args.Target.GetMapId(EntityManager)) - return; + if (transform.MapID != args.Target.GetMapId(EntityManager)) return; _transformSystem.SetCoordinates(args.Performer, args.Target); - _transformSystem.AttachToGridOrMap(args.Performer, transform); + transform.AttachToGridOrMap(); _audio.PlayPvs(args.BlinkSound, args.Performer, AudioParams.Default.WithVolume(args.BlinkVolume)); Speak(args); args.Handled = true; diff --git a/Content.Server/Maps/GridDraggingSystem.cs b/Content.Server/Maps/GridDraggingSystem.cs index b24250b0df..eef3e56849 100644 --- a/Content.Server/Maps/GridDraggingSystem.cs +++ b/Content.Server/Maps/GridDraggingSystem.cs @@ -13,7 +13,6 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem { [Dependency] private readonly IConGroupController _admin = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private readonly HashSet _draggers = new(); @@ -66,11 +65,10 @@ public sealed class GridDraggingSystem : SharedGridDraggingSystem if (args.SenderSession is not IPlayerSession playerSession || !_admin.CanCommand(playerSession, CommandName) || !Exists(msg.Grid) || - Deleted(msg.Grid)) - { - return; - } + Deleted(msg.Grid)) return; - _transform.SetWorldPosition(msg.Grid, msg.WorldPosition); + var gridXform = Transform(msg.Grid); + + gridXform.WorldPosition = msg.WorldPosition; } } diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs index e674fe3241..84f60573b1 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs @@ -77,7 +77,7 @@ public sealed class MechGrabberSystem : EntitySystem component.ItemContainer.Remove(toRemove); var mechxform = Transform(mech); var xform = Transform(toRemove); - _transform.AttachToGridOrMap(toRemove, xform); + xform.AttachToGridOrMap(); var offset = _transform.GetWorldPosition(mechxform) + _transform.GetWorldRotation(mechxform).RotateVec(component.DepositOffset); _transform.SetWorldPosition(xform, offset); diff --git a/Content.Server/NPC/Pathfinding/PathfindingSystem.Distance.cs b/Content.Server/NPC/Pathfinding/PathfindingSystem.Distance.cs index fb650ec2cd..95d5c9c465 100644 --- a/Content.Server/NPC/Pathfinding/PathfindingSystem.Distance.cs +++ b/Content.Server/NPC/Pathfinding/PathfindingSystem.Distance.cs @@ -36,7 +36,7 @@ public sealed partial class PathfindingSystem return Vector2.Zero; } - endPos = _transform.GetInvWorldMatrix(startXform).Transform(_transform.GetWorldMatrix(endXform).Transform(endPos)); + endPos = startXform.InvWorldMatrix.Transform(endXform.WorldMatrix.Transform(endPos)); } // TODO: Numerics when we changeover. diff --git a/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs b/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs index 6f3ed428c4..ca970815b6 100644 --- a/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs +++ b/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs @@ -410,7 +410,8 @@ public sealed partial class PathfindingSystem private Vector2i GetOrigin(EntityCoordinates coordinates, EntityUid gridUid) { - var localPos = _transform.GetInvWorldMatrix(gridUid).Transform(coordinates.ToMapPos(EntityManager)); + var gridXform = Transform(gridUid); + var localPos = gridXform.InvWorldMatrix.Transform(coordinates.ToMapPos(EntityManager)); return new Vector2i((int) Math.Floor(localPos.X / ChunkSize), (int) Math.Floor(localPos.Y / ChunkSize)); } diff --git a/Content.Server/NPC/Pathfinding/PathfindingSystem.cs b/Content.Server/NPC/Pathfinding/PathfindingSystem.cs index 528a458296..06ff9faa69 100644 --- a/Content.Server/NPC/Pathfinding/PathfindingSystem.cs +++ b/Content.Server/NPC/Pathfinding/PathfindingSystem.cs @@ -47,7 +47,6 @@ namespace Content.Server.NPC.Pathfinding [Dependency] private readonly FixtureSystem _fixtures = default!; [Dependency] private readonly NPCSystem _npc = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private readonly Dictionary _subscribedSessions = new(); @@ -383,7 +382,7 @@ namespace Content.Server.NPC.Pathfinding return null; } - var localPos = _transform.GetInvWorldMatrix(xform).Transform(coordinates.ToMapPos(EntityManager)); + var localPos = xform.InvWorldMatrix.Transform(coordinates.ToMapPos(EntityManager)); var origin = GetOrigin(localPos); if (!TryGetChunk(origin, comp, out var chunk)) diff --git a/Content.Server/Pointing/EntitySystems/RoguePointingSystem.cs b/Content.Server/Pointing/EntitySystems/RoguePointingSystem.cs index 5703883bd6..160dc80fc3 100644 --- a/Content.Server/Pointing/EntitySystems/RoguePointingSystem.cs +++ b/Content.Server/Pointing/EntitySystems/RoguePointingSystem.cs @@ -16,7 +16,6 @@ namespace Content.Server.Pointing.EntitySystems [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly ExplosionSystem _explosion = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private EntityUid? RandomNearbyPlayer(EntityUid uid, RoguePointingArrowComponent? component = null, TransformComponent? transform = null) { @@ -69,24 +68,24 @@ namespace Content.Server.Pointing.EntitySystems if (component.TurningDelay > 0) { - var difference = _transform.GetWorldPosition(chasing) - _transform.GetWorldPosition(transform); + var difference = EntityManager.GetComponent(chasing).WorldPosition - transform.WorldPosition; var angle = difference.ToAngle(); var adjusted = angle.Degrees + 90; var newAngle = Angle.FromDegrees(adjusted); - _transform.SetWorldRotation(transform, newAngle); + transform.WorldRotation = newAngle; UpdateAppearance(uid, component, transform); continue; } - _transform.SetWorldRotation(transform, _transform.GetWorldRotation(transform) + Angle.FromDegrees(20)); + transform.WorldRotation += Angle.FromDegrees(20); UpdateAppearance(uid, component, transform); - var toChased = _transform.GetWorldPosition(chasing) - _transform.GetWorldPosition(transform); + var toChased = EntityManager.GetComponent(chasing).WorldPosition - transform.WorldPosition; - _transform.SetWorldPosition(transform, _transform.GetWorldPosition(transform) + toChased * frameTime * component.ChasingSpeed); + transform.WorldPosition += toChased * frameTime * component.ChasingSpeed; component.ChasingTime -= frameTime; diff --git a/Content.Server/Polymorph/Systems/PolymorphSystem.cs b/Content.Server/Polymorph/Systems/PolymorphSystem.cs index 907e79db7f..fda90f2cb0 100644 --- a/Content.Server/Polymorph/Systems/PolymorphSystem.cs +++ b/Content.Server/Polymorph/Systems/PolymorphSystem.cs @@ -266,8 +266,8 @@ namespace Content.Server.Polymorph.Systems var parentXform = Transform(parent); _transform.SetParent(parent, parentXform, uidXform.ParentUid); - _transform.SetCoordinates(parent, parentXform, uidXform.Coordinates); - _transform.SetLocalRotation(parentXform, uidXform.LocalRotation); + parentXform.Coordinates = uidXform.Coordinates; + parentXform.LocalRotation = uidXform.LocalRotation; if (proto.TransferDamage && TryComp(parent, out var damageParent) && @@ -306,7 +306,7 @@ namespace Content.Server.Polymorph.Systems _mindSystem.TransferTo(mindId, parent, mind: mind); // if an item polymorph was picked up, put it back down after reverting - _transform.AttachToGridOrMap(parent); + Transform(parent).AttachToGridOrMap(); _popup.PopupEntity(Loc.GetString("polymorph-revert-popup-generic", ("parent", Identity.Entity(uid, EntityManager)), diff --git a/Content.Server/Respawn/SpecialRespawnSystem.cs b/Content.Server/Respawn/SpecialRespawnSystem.cs index 6176af5210..51c092be18 100644 --- a/Content.Server/Respawn/SpecialRespawnSystem.cs +++ b/Content.Server/Respawn/SpecialRespawnSystem.cs @@ -22,7 +22,6 @@ public sealed class SpecialRespawnSystem : SharedSpecialRespawnSystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly TurfSystem _turf = default!; [Dependency] private readonly IChatManager _chat = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -157,7 +156,7 @@ public sealed class SpecialRespawnSystem : SharedSpecialRespawnSystem var tile = tileRef.GridIndices; var found = false; - var (gridPos, _, gridMatrix) = _transform.GetWorldPositionRotationMatrix(xform); + var (gridPos, _, gridMatrix) = xform.GetWorldPositionRotationMatrix(); var gridBounds = gridMatrix.TransformBox(grid.LocalAABB); //Obviously don't put anything ridiculous in here diff --git a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs index c56bef760a..a9f32f6615 100644 --- a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs +++ b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs @@ -40,7 +40,6 @@ public sealed partial class RevenantSystem [Dependency] private readonly MobThresholdSystem _mobThresholdSystem = default!; [Dependency] private readonly GhostSystem _ghost = default!; [Dependency] private readonly TileSystem _tile = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private void InitializeAbilities() { @@ -215,7 +214,7 @@ public sealed partial class RevenantSystem var xform = Transform(uid); if (!_mapManager.TryGetGrid(xform.GridUid, out var map)) return; - var tiles = map.GetTilesIntersecting(Box2.CenteredAround(_transform.GetWorldPosition(xform), + var tiles = map.GetTilesIntersecting(Box2.CenteredAround(xform.WorldPosition, new Vector2(component.DefileRadius * 2, component.DefileRadius))).ToArray(); _random.Shuffle(tiles); diff --git a/Content.Server/Salvage/SalvageRulerCommand.cs b/Content.Server/Salvage/SalvageRulerCommand.cs index eeaf9c7b4b..9dcf7fc36e 100644 --- a/Content.Server/Salvage/SalvageRulerCommand.cs +++ b/Content.Server/Salvage/SalvageRulerCommand.cs @@ -50,7 +50,7 @@ sealed class SalvageRulerCommand : IConsoleCommand var first = true; foreach (var mapGrid in _maps.GetAllMapGrids(entityTransform.MapID)) { - var aabb = _entities.System().GetWorldMatrix(mapGrid.Owner).TransformBox(mapGrid.LocalAABB); + var aabb = _entities.GetComponent(mapGrid.Owner).WorldMatrix.TransformBox(mapGrid.LocalAABB); if (first) { total = aabb; diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 072edfe47f..a6bdc043a9 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -54,7 +54,6 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem [Dependency] private readonly ShuttleSystem _shuttle = default!; [Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private ISawmill _sawmill = default!; @@ -416,6 +415,6 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem if (!Resolve(shuttle, ref grid, ref shuttleXform)) return false; - return _transform.GetWorldMatrix(shuttleXform).TransformBox(grid.LocalAABB).Contains(_transform.GetWorldPosition(xform)); + return shuttleXform.WorldMatrix.TransformBox(grid.LocalAABB).Contains(xform.WorldPosition); } } diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs index 03037ed8d3..e9b4283599 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs @@ -250,8 +250,8 @@ public sealed partial class ShuttleSystem var fromRotation = _transform.GetWorldRotation(xform); var width = Comp(uid).LocalAABB.Width; - _transform.SetCoordinates(uid, xform, new EntityCoordinates(_mapManager.GetMapEntityId(_hyperSpaceMap!.Value), new Vector2(_index + width / 2f, 0f))); - _transform.SetLocalRotation(xform, Angle.Zero); + xform.Coordinates = new EntityCoordinates(_mapManager.GetMapEntityId(_hyperSpaceMap!.Value), new Vector2(_index + width / 2f, 0f)); + xform.LocalRotation = Angle.Zero; _index += width + Buffer; comp.Accumulator += comp.TravelTime - DefaultArrivalTime; @@ -336,7 +336,7 @@ public sealed partial class ShuttleSystem } else { - _transform.SetCoordinates(uid, xform, comp.TargetCoordinates); + xform.Coordinates = comp.TargetCoordinates; mapId = comp.TargetCoordinates.GetMapId(EntityManager); } @@ -506,7 +506,7 @@ public sealed partial class ShuttleSystem if (config != null) { - FTLDock(config, shuttleUid, shuttleXform); + FTLDock(config, shuttleXform); return true; } @@ -517,13 +517,10 @@ public sealed partial class ShuttleSystem /// /// Forces an FTL dock. /// - public void FTLDock(DockingConfig config, EntityUid uid, TransformComponent? shuttleXform = null) + public void FTLDock(DockingConfig config, TransformComponent shuttleXform) { - if (!Resolve(uid, ref shuttleXform)) - return; - // Set position - _transform.SetCoordinates(uid, shuttleXform, config.Coordinates); + shuttleXform.Coordinates = config.Coordinates; _transform.SetWorldRotation(shuttleXform, config.Angle); // Connect everything @@ -632,7 +629,7 @@ public sealed partial class ShuttleSystem spawnPos = _transform.GetWorldPosition(targetXform, xformQuery); } - _transform.SetCoordinates(shuttleUid, xform, new EntityCoordinates(targetXform.MapUid.Value, spawnPos)); + xform.Coordinates = new EntityCoordinates(targetXform.MapUid.Value, spawnPos); if (!HasComp(targetXform.GridUid)) { diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs index 6fa1573b86..4d53647c9e 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs @@ -115,7 +115,7 @@ public sealed partial class ShuttleSystem if (config != null) { - FTLDock(config, ent[0], shuttleXform); + FTLDock(config, shuttleXform); if (TryComp(xform.GridUid, out var stationMember)) { diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.Impact.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.Impact.cs index 53dcb8a80e..73dc4b208c 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.Impact.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.Impact.cs @@ -38,8 +38,8 @@ public sealed partial class ShuttleSystem var otherXform = Transform(args.OtherEntity); - var ourPoint = _transform.GetInvWorldMatrix(ourXform).Transform(args.WorldPoint); - var otherPoint = _transform.GetInvWorldMatrix(otherXform).Transform(args.WorldPoint); + var ourPoint = ourXform.InvWorldMatrix.Transform(args.WorldPoint); + var otherPoint = otherXform.InvWorldMatrix.Transform(args.WorldPoint); var ourVelocity = _physics.GetLinearVelocity(uid, ourPoint, ourBody, ourXform); var otherVelocity = _physics.GetLinearVelocity(args.OtherEntity, otherPoint, otherBody, otherXform); diff --git a/Content.Server/Singularity/EntitySystems/ContainmentFieldGeneratorSystem.cs b/Content.Server/Singularity/EntitySystems/ContainmentFieldGeneratorSystem.cs index f83370d557..ac21342376 100644 --- a/Content.Server/Singularity/EntitySystems/ContainmentFieldGeneratorSystem.cs +++ b/Content.Server/Singularity/EntitySystems/ContainmentFieldGeneratorSystem.cs @@ -22,7 +22,6 @@ public sealed class ContainmentFieldGeneratorSystem : EntitySystem [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly PhysicsSystem _physics = default!; [Dependency] private readonly AppearanceSystem _visualizer = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -229,7 +228,7 @@ public sealed class ContainmentFieldGeneratorSystem : EntitySystem if (!gen1XForm.Anchored) return false; - var genWorldPosRot = _transform.GetWorldPositionRotation(gen1XForm); + var genWorldPosRot = gen1XForm.GetWorldPositionRotation(); var dirRad = dir.ToAngle() + genWorldPosRot.WorldRotation; //needs to be like this for the raycast to work properly var ray = new CollisionRay(genWorldPosRot.WorldPosition, dirRad.ToVec(), component.CollisionMask); @@ -305,7 +304,7 @@ public sealed class ContainmentFieldGeneratorSystem : EntitySystem var newField = Spawn(firstGenComp.CreatedField, currentCoords); var fieldXForm = Transform(newField); - _transform.SetParent(newField, fieldXForm, firstGenComp.Owner); + fieldXForm.AttachParent(firstGenComp.Owner); if (dirVec.GetDir() == Direction.East || dirVec.GetDir() == Direction.West) { var angle = fieldXForm.LocalPosition.ToAngle(); diff --git a/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs b/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs index 2985e5709e..70cc992dc3 100644 --- a/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs +++ b/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs @@ -13,7 +13,6 @@ public sealed class ContainmentFieldSystem : EntitySystem { [Dependency] private readonly ThrowingSystem _throwing = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -27,16 +26,16 @@ public sealed class ContainmentFieldSystem : EntitySystem { var otherBody = args.OtherEntity; - if (HasComp(otherBody)) + if (TryComp(otherBody, out var garbage)) { - _popupSystem.PopupEntity(Loc.GetString("comp-field-vaporized", ("entity", otherBody)), uid, PopupType.LargeCaution); - QueueDel(otherBody); + _popupSystem.PopupEntity(Loc.GetString("comp-field-vaporized", ("entity", otherBody)), component.Owner, PopupType.LargeCaution); + QueueDel(garbage.Owner); } if (TryComp(otherBody, out var physics) && physics.Mass <= component.MaxMass && physics.Hard) { - var fieldDir = _transform.GetWorldPosition(uid); - var playerDir = _transform.GetWorldPosition(otherBody); + var fieldDir = Transform(component.Owner).WorldPosition; + var playerDir = Transform(otherBody).WorldPosition; _throwing.TryThrow(otherBody, playerDir-fieldDir, strength: component.ThrowForce); } diff --git a/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs b/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs index dee3ac2096..74f88bc0d1 100644 --- a/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs +++ b/Content.Server/Solar/EntitySystems/PowerSolarSystem.cs @@ -18,7 +18,6 @@ namespace Content.Server.Solar.EntitySystems { [Dependency] private readonly IRobustRandom _robustRandom = default!; [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; /// /// Maximum panel angular velocity range - used to stop people rotating panels fast enough that the lag prevention becomes noticable @@ -112,7 +111,7 @@ namespace Content.Server.Solar.EntitySystems foreach (var (panel, xform) in EntityManager.EntityQuery()) { TotalPanelPower += panel.MaxSupply * panel.Coverage; - _transform.SetWorldRotation(xform, TargetPanelRotation); + xform.WorldRotation = TargetPanelRotation; _updateQueue.Enqueue(panel); } } @@ -135,7 +134,7 @@ namespace Content.Server.Solar.EntitySystems // directly downwards (abs(theta) = pi) = coverage -1 // as TowardsSun + = CCW, // panelRelativeToSun should - = CW - var panelRelativeToSun = _transform.GetWorldRotation(xform) - TowardsSun; + var panelRelativeToSun = xform.WorldRotation - TowardsSun; // essentially, given cos = X & sin = Y & Y is 'downwards', // then for the first 90 degrees of rotation in either direction, // this plots the lower-right quadrant of a circle. @@ -153,7 +152,7 @@ namespace Content.Server.Solar.EntitySystems if (coverage > 0) { // Determine if the solar panel is occluded, and zero out coverage if so. - var ray = new CollisionRay(_transform.GetWorldPosition(xform), TowardsSun.ToWorldVec(), (int) CollisionGroup.Opaque); + var ray = new CollisionRay(xform.WorldPosition, TowardsSun.ToWorldVec(), (int) CollisionGroup.Opaque); var rayCastResults = _physicsSystem.IntersectRayWithPredicate( xform.MapID, ray, diff --git a/Content.Server/Standing/StandingStateSystem.cs b/Content.Server/Standing/StandingStateSystem.cs index c1a08c829f..e2b6495844 100644 --- a/Content.Server/Standing/StandingStateSystem.cs +++ b/Content.Server/Standing/StandingStateSystem.cs @@ -13,7 +13,6 @@ public sealed class StandingStateSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly ThrowingSystem _throwingSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private void FallOver(EntityUid uid, StandingStateComponent component, DropHandItemsEvent args) { @@ -26,7 +25,7 @@ public sealed class StandingStateSystem : EntitySystem if (!TryComp(uid, out HandsComponent? handsComp)) return; - var worldRotation = _transform.GetWorldRotation(uid).ToVec(); + var worldRotation = EntityManager.GetComponent(uid).WorldRotation.ToVec(); foreach (var hand in handsComp.Hands.Values) { if (hand.HeldEntity is not EntityUid held) diff --git a/Content.Server/Worldgen/Systems/BaseWorldSystem.cs b/Content.Server/Worldgen/Systems/BaseWorldSystem.cs index 9f308372fd..78326651c9 100644 --- a/Content.Server/Worldgen/Systems/BaseWorldSystem.cs +++ b/Content.Server/Worldgen/Systems/BaseWorldSystem.cs @@ -12,7 +12,6 @@ namespace Content.Server.Worldgen.Systems; public abstract class BaseWorldSystem : EntitySystem { [Dependency] private readonly WorldControllerSystem _worldController = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; /// /// Gets a chunk's coordinates in chunk space as an integer value. @@ -26,7 +25,7 @@ public abstract class BaseWorldSystem : EntitySystem if (!Resolve(ent, ref xform)) throw new Exception("Failed to resolve transform, somehow."); - return WorldGen.WorldToChunkCoords(_transform.GetWorldPosition(xform)).Floored(); + return WorldGen.WorldToChunkCoords(xform.WorldPosition).Floored(); } /// @@ -41,7 +40,7 @@ public abstract class BaseWorldSystem : EntitySystem if (!Resolve(ent, ref xform)) throw new Exception("Failed to resolve transform, somehow."); - return WorldGen.WorldToChunkCoords(_transform.GetWorldPosition(xform)); + return WorldGen.WorldToChunkCoords(xform.WorldPosition); } /// diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ThrowArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ThrowArtifactSystem.cs index 0034cc7dcb..55159feebb 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ThrowArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/ThrowArtifactSystem.cs @@ -16,7 +16,6 @@ public sealed class ThrowArtifactSystem : EntitySystem [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly ThrowingSystem _throwing = default!; [Dependency] private readonly TileSystem _tile = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; /// public override void Initialize() @@ -30,7 +29,7 @@ public sealed class ThrowArtifactSystem : EntitySystem if (_map.TryGetGrid(xform.GridUid, out var grid)) { var tiles = grid.GetTilesIntersecting( - Box2.CenteredAround(_transform.GetWorldPosition(xform), new Vector2(component.Range * 2, component.Range))); + Box2.CenteredAround(xform.WorldPosition, new Vector2(component.Range * 2, component.Range))); foreach (var tile in tiles) { diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs index eff1012c82..dbfadc6a0f 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs @@ -140,7 +140,7 @@ public partial class SharedBodySystem container.Remove(organId.Value); if (TryComp(organId, out TransformComponent? transform)) - _transform.AttachToGridOrMap(organId.Value, transform); + transform.AttachToGridOrMap(); organ.Owner.RandomOffset(0.25f); @@ -165,7 +165,7 @@ public partial class SharedBodySystem return false; if (TryComp(organId.Value, out TransformComponent? transform)) - _transform.SetCoordinates(organId.Value, transform, dropAt); + transform.Coordinates = dropAt; return true; } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs index bfd9636eff..8c55fe9cdd 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs @@ -249,7 +249,7 @@ public partial class SharedBodySystem container.Remove(partId.Value); if (TryComp(partId, out TransformComponent? transform)) - _transform.AttachToGridOrMap(partId.Value, transform); + transform.AttachToGridOrMap(); part.Owner.RandomOffset(0.25f); @@ -331,7 +331,7 @@ public partial class SharedBodySystem return false; if (TryComp(partId.Value, out TransformComponent? transform)) - _transform.SetCoordinates(partId.Value, transform, dropAt); + transform.Coordinates = dropAt; return true; } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.cs b/Content.Shared/Body/Systems/SharedBodySystem.cs index 11d728dfbf..4d195e0a50 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.cs @@ -16,7 +16,6 @@ public abstract partial class SharedBodySystem : EntitySystem [Dependency] protected readonly DamageableSystem Damageable = default!; [Dependency] protected readonly StandingStateSystem Standing = default!; [Dependency] protected readonly MovementSpeedModifierSystem Movement = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs index 8cb3374cf3..935bd18b40 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs @@ -465,7 +465,7 @@ public abstract partial class SharedBuckleSystem _transformSystem.SetWorldRotation(buckleXform, oldBuckledToWorldRot); if (strapComp.UnbuckleOffset != Vector2.Zero) - _transformSystem.SetCoordinates(buckleUid, buckleXform, oldBuckledXform.Coordinates.Offset(strapComp.UnbuckleOffset)); + buckleXform.Coordinates = oldBuckledXform.Coordinates.Offset(strapComp.UnbuckleOffset); } if (TryComp(buckleUid, out AppearanceComponent? appearance)) diff --git a/Content.Shared/Buckle/SharedBuckleSystem.cs b/Content.Shared/Buckle/SharedBuckleSystem.cs index 3440c2bd65..bbe171b8c3 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.cs @@ -65,7 +65,7 @@ public abstract partial class SharedBuckleSystem : EntitySystem var buckleTransform = Transform(buckleUid); - _transformSystem.SetCoordinates(buckleUid, buckleTransform, new EntityCoordinates(strapUid, strapComp.BuckleOffset)); + buckleTransform.Coordinates = new EntityCoordinates(strapUid, strapComp.BuckleOffset); // Buckle subscribes to move for so this might fail. // TODO: Make buckle not do that. diff --git a/Content.Shared/Construction/Conditions/WallmountCondition.cs b/Content.Shared/Construction/Conditions/WallmountCondition.cs index 307dbf5e4c..bf3016d497 100644 --- a/Content.Shared/Construction/Conditions/WallmountCondition.cs +++ b/Content.Shared/Construction/Conditions/WallmountCondition.cs @@ -17,16 +17,15 @@ namespace Content.Shared.Construction.Conditions public bool Condition(EntityUid user, EntityCoordinates location, Direction direction) { var entManager = IoCManager.Resolve(); - var transform = entManager.System(); // get blueprint and user position - var userWorldPosition = transform.GetWorldPosition(user); + var userWorldPosition = entManager.GetComponent(user).WorldPosition; var objWorldPosition = location.ToMap(entManager).Position; // find direction from user to blueprint var userToObject = (objWorldPosition - userWorldPosition); // get direction of the grid being placed on as an offset. - var gridRotation = transform.GetWorldRotation(location.EntityId); + var gridRotation = entManager.GetComponent(location.EntityId).WorldRotation; var directionWithOffset = gridRotation.RotateVec(direction.ToVec()); // dot product will be positive if user direction and blueprint are co-directed diff --git a/Content.Shared/Containers/ContainerFillSystem.cs b/Content.Shared/Containers/ContainerFillSystem.cs index 6ed86aa6ca..81b9782dcd 100644 --- a/Content.Shared/Containers/ContainerFillSystem.cs +++ b/Content.Shared/Containers/ContainerFillSystem.cs @@ -7,7 +7,6 @@ namespace Content.Shared.Containers; public sealed class ContainerFillSystem : EntitySystem { [Dependency] private readonly SharedContainerSystem _containerSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -40,7 +39,7 @@ public sealed class ContainerFillSystem : EntitySystem if (!container.Insert(ent, EntityManager, null, xform)) { Log.Error($"Entity {ToPrettyString(uid)} with a {nameof(ContainerFillComponent)} failed to insert an entity: {ToPrettyString(ent)}."); - _transform.AttachToGridOrMap(ent); + Transform(ent).AttachToGridOrMap(); break; } } diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs index 494956ef12..87edd47282 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs @@ -8,8 +8,6 @@ namespace Content.Shared.Hands.EntitySystems; public abstract partial class SharedHandsSystem : EntitySystem { - [Dependency] private readonly SharedTransformSystem _transform = default!; - private void InitializeDrop() { SubscribeLocalEvent(HandleEntityRemoved); @@ -100,14 +98,12 @@ public abstract partial class SharedHandsSystem : EntitySystem if (!isInContainer || !_containerSystem.TryGetContainingContainer(userXform.ParentUid, uid, out var container, skipExistCheck: true) || !container.Insert(entity, EntityManager, itemXform)) - { - _transform.AttachToGridOrMap(entity, itemXform); - } + itemXform.AttachToGridOrMap(); return true; } var target = targetDropLocation.Value.ToMap(EntityManager); - _transform.SetWorldPosition(itemXform, GetFinalDropCoordinates(uid, userXform.MapPosition, target)); + itemXform.WorldPosition = GetFinalDropCoordinates(uid, userXform.MapPosition, target); return true; } diff --git a/Content.Shared/Interaction/RotateToFaceSystem.cs b/Content.Shared/Interaction/RotateToFaceSystem.cs index 6ff74d32f0..d5fa01a71b 100644 --- a/Content.Shared/Interaction/RotateToFaceSystem.cs +++ b/Content.Shared/Interaction/RotateToFaceSystem.cs @@ -85,7 +85,7 @@ namespace Content.Shared.Interaction if (!Resolve(user, ref xform)) return false; - _transform.SetWorldRotation(xform, diffAngle); + xform.WorldRotation = diffAngle; return true; } @@ -101,7 +101,7 @@ namespace Content.Shared.Interaction // (Since the user being buckled to it holds it down with their weight.) // This is logically equivalent to RotateWhileAnchored. // Barstools and office chairs have independent wheels, while regular chairs don't. - _transform.SetWorldRotation(suid.Value, diffAngle); + Transform(rotatable.Owner).WorldRotation = diffAngle; return true; } } diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index f4c3491e77..f00d9c8c38 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -593,7 +593,7 @@ namespace Content.Shared.Interaction fixtureB.FixtureCount > 0 && TryComp(origin, out var xformA)) { - var (worldPosA, worldRotA) = _transform.GetWorldPositionRotation(xformA); + var (worldPosA, worldRotA) = xformA.GetWorldPositionRotation(); var xfA = new Transform(worldPosA, worldRotA); var parentRotB = _transform.GetWorldRotation(otherCoordinates.EntityId); var xfB = new Transform(targetPos.Position, parentRotB + otherAngle); @@ -659,7 +659,7 @@ namespace Content.Shared.Interaction Ignored? predicate = null) { var transform = Transform(target); - var (position, rotation) = _transform.GetWorldPositionRotation(transform); + var (position, rotation) = transform.GetWorldPositionRotation(); var mapPos = new MapCoordinates(position, transform.MapID); var combinedPredicate = GetPredicate(origin, target, mapPos, rotation, collisionMask, predicate); diff --git a/Content.Shared/Inventory/InventorySystem.Equip.cs b/Content.Shared/Inventory/InventorySystem.Equip.cs index 9ebcba6d1f..25dcf56921 100644 --- a/Content.Shared/Inventory/InventorySystem.Equip.cs +++ b/Content.Shared/Inventory/InventorySystem.Equip.cs @@ -27,7 +27,6 @@ public abstract partial class InventorySystem [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly INetManager _netMan = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; private void InitializeEquip() { @@ -386,7 +385,7 @@ public abstract partial class InventorySystem } } - _transform.SetCoordinates(removedItem.Value, Transform(target).Coordinates); + Transform(removedItem.Value).Coordinates = Transform(target).Coordinates; if (!silent && Resolve(removedItem.Value, ref clothing, false) && clothing.UnequipSound != null && _gameTiming.IsFirstTimePredicted) { diff --git a/Content.Shared/Maps/TurfHelpers.cs b/Content.Shared/Maps/TurfHelpers.cs index 7c4cc20df8..6b9d7dbbf9 100644 --- a/Content.Shared/Maps/TurfHelpers.cs +++ b/Content.Shared/Maps/TurfHelpers.cs @@ -175,7 +175,7 @@ namespace Content.Shared.Maps if (map.TryGetGrid(turf.GridUid, out var tileGrid)) { - var gridRot = entManager.System().GetWorldRotation(tileGrid.Owner); + var gridRot = entManager.GetComponent(tileGrid.Owner).WorldRotation; // This is scaled to 90 % so it doesn't encompass walls on other tiles. var tileBox = Box2.UnitCentered.Scale(0.9f); diff --git a/Content.Shared/Physics/Controllers/SharedConveyorController.cs b/Content.Shared/Physics/Controllers/SharedConveyorController.cs index f22aadc9ad..1ba66aa1a3 100644 --- a/Content.Shared/Physics/Controllers/SharedConveyorController.cs +++ b/Content.Shared/Physics/Controllers/SharedConveyorController.cs @@ -18,7 +18,6 @@ public abstract class SharedConveyorController : VirtualController [Dependency] protected readonly EntityLookupSystem Lookup = default!; [Dependency] protected readonly SharedPhysicsSystem Physics = default!; [Dependency] private readonly SharedGravitySystem _gravity = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; protected const string ConveyorFixture = "conveyor"; @@ -117,7 +116,7 @@ public abstract class SharedConveyorController : VirtualController var itemRelative = conveyorPos - localPos; localPos += Convey(direction, speed, frameTime, itemRelative); - _transform.SetLocalPosition(transform, localPos); + transform.LocalPosition = localPos; // Force it awake for collisionwake reasons. Physics.SetAwake(entity, body, true); diff --git a/Content.Shared/Placeable/PlaceableSurfaceSystem.cs b/Content.Shared/Placeable/PlaceableSurfaceSystem.cs index 88a46475ef..7464c8890c 100644 --- a/Content.Shared/Placeable/PlaceableSurfaceSystem.cs +++ b/Content.Shared/Placeable/PlaceableSurfaceSystem.cs @@ -9,7 +9,6 @@ namespace Content.Shared.Placeable public sealed class PlaceableSurfaceSystem : EntitySystem { [Dependency] private readonly SharedHandsSystem _handsSystem = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -69,9 +68,9 @@ namespace Content.Shared.Placeable return; if (surface.PlaceCentered) - _transform.SetLocalPosition(args.Used, Transform(uid).LocalPosition + surface.PositionOffset); + Transform(args.Used).LocalPosition = Transform(uid).LocalPosition + surface.PositionOffset; else - _transform.SetCoordinates(args.Used, args.ClickLocation); + Transform(args.Used).Coordinates = args.ClickLocation; args.Handled = true; } diff --git a/Content.Shared/Random/Helpers/SharedEntityExtensions.cs b/Content.Shared/Random/Helpers/SharedEntityExtensions.cs index 1ca52693ed..5b12ffb94d 100644 --- a/Content.Shared/Random/Helpers/SharedEntityExtensions.cs +++ b/Content.Shared/Random/Helpers/SharedEntityExtensions.cs @@ -17,10 +17,7 @@ namespace Content.Shared.Random.Helpers var randomY = random.NextFloat() * (maxY - minY) + minY; var offset = new Vector2(randomX, randomY); - var entMan = IoCManager.Resolve(); - var comp = entMan.GetComponent(entity); - var transform = entMan.System(); - transform.SetLocalPosition(comp, comp.LocalPosition + offset); + IoCManager.Resolve().GetComponent(entity).LocalPosition += offset; } public static void RandomOffset(this EntityUid entity, float min, float max)