diff --git a/Content.Client/IconSmoothing/IconSmoothSystem.Edge.cs b/Content.Client/IconSmoothing/IconSmoothSystem.Edge.cs index 65ee0ae430..bd003cb42a 100644 --- a/Content.Client/IconSmoothing/IconSmoothSystem.Edge.cs +++ b/Content.Client/IconSmoothing/IconSmoothSystem.Edge.cs @@ -19,15 +19,15 @@ public sealed partial class IconSmoothSystem if (!TryComp(uid, out var sprite)) return; - sprite.LayerSetOffset(EdgeLayer.South, new Vector2(0, -1f)); - sprite.LayerSetOffset(EdgeLayer.East, new Vector2(1f, 0f)); - sprite.LayerSetOffset(EdgeLayer.North, new Vector2(0, 1f)); - sprite.LayerSetOffset(EdgeLayer.West, new Vector2(-1f, 0f)); + _sprite.LayerSetOffset((uid, sprite), EdgeLayer.South, new Vector2(0, -1f)); + _sprite.LayerSetOffset((uid, sprite), EdgeLayer.East, new Vector2(1, 0f)); + _sprite.LayerSetOffset((uid, sprite), EdgeLayer.North, new Vector2(0, 1f)); + _sprite.LayerSetOffset((uid, sprite), EdgeLayer.West, new Vector2(-1, 0f)); - sprite.LayerSetVisible(EdgeLayer.South, false); - sprite.LayerSetVisible(EdgeLayer.East, false); - sprite.LayerSetVisible(EdgeLayer.North, false); - sprite.LayerSetVisible(EdgeLayer.West, false); + _sprite.LayerSetVisible((uid, sprite), EdgeLayer.South, false); + _sprite.LayerSetVisible((uid, sprite), EdgeLayer.East, false); + _sprite.LayerSetVisible((uid, sprite), EdgeLayer.North, false); + _sprite.LayerSetVisible((uid, sprite), EdgeLayer.West, false); } private void OnEdgeShutdown(EntityUid uid, SmoothEdgeComponent component, ComponentShutdown args) @@ -35,10 +35,10 @@ public sealed partial class IconSmoothSystem if (!TryComp(uid, out var sprite)) return; - sprite.LayerMapRemove(EdgeLayer.South); - sprite.LayerMapRemove(EdgeLayer.East); - sprite.LayerMapRemove(EdgeLayer.North); - sprite.LayerMapRemove(EdgeLayer.West); + _sprite.LayerMapRemove((uid, sprite), EdgeLayer.South); + _sprite.LayerMapRemove((uid, sprite), EdgeLayer.East); + _sprite.LayerMapRemove((uid, sprite), EdgeLayer.North); + _sprite.LayerMapRemove((uid, sprite), EdgeLayer.West); } private void CalculateEdge(EntityUid uid, DirectionFlag directions, SpriteComponent? sprite = null, SmoothEdgeComponent? component = null) @@ -48,16 +48,16 @@ public sealed partial class IconSmoothSystem for (var i = 0; i < 4; i++) { - var dir = (DirectionFlag) Math.Pow(2, i); + var dir = (DirectionFlag)Math.Pow(2, i); var edge = GetEdge(dir); if ((dir & directions) != 0x0) { - sprite.LayerSetVisible(edge, false); + _sprite.LayerSetVisible((uid, sprite), edge, false); continue; } - sprite.LayerSetVisible(edge, true); + _sprite.LayerSetVisible((uid, sprite), edge, true); } } diff --git a/Content.Client/IconSmoothing/IconSmoothSystem.cs b/Content.Client/IconSmoothing/IconSmoothSystem.cs index 45aafb5288..a1c47ca6be 100644 --- a/Content.Client/IconSmoothing/IconSmoothSystem.cs +++ b/Content.Client/IconSmoothing/IconSmoothSystem.cs @@ -17,6 +17,7 @@ namespace Content.Client.IconSmoothing public sealed partial class IconSmoothSystem : EntitySystem { [Dependency] private readonly SharedMapSystem _mapSystem = default!; + [Dependency] private readonly SpriteSystem _sprite = default!; private readonly Queue _dirtyEntities = new(); private readonly Queue _anchorChangedEntities = new(); @@ -57,7 +58,7 @@ namespace Content.Client.IconSmoothing if (component.Mode != IconSmoothingMode.Corners || !TryComp(uid, out SpriteComponent? sprite)) return; - SetCornerLayers(sprite, component); + SetCornerLayers((uid, sprite), component); if (component.Shader != null) { @@ -74,25 +75,25 @@ namespace Content.Client.IconSmoothing return; component.StateBase = newState; - SetCornerLayers(sprite, component); + SetCornerLayers((uid, sprite), component); } - private void SetCornerLayers(SpriteComponent sprite, IconSmoothComponent component) + private void SetCornerLayers(Entity sprite, IconSmoothComponent component) { - sprite.LayerMapRemove(CornerLayers.SE); - sprite.LayerMapRemove(CornerLayers.NE); - sprite.LayerMapRemove(CornerLayers.NW); - sprite.LayerMapRemove(CornerLayers.SW); + _sprite.LayerMapRemove(sprite, CornerLayers.SE); + _sprite.LayerMapRemove(sprite, CornerLayers.NE); + _sprite.LayerMapRemove(sprite, CornerLayers.NW); + _sprite.LayerMapRemove(sprite, CornerLayers.SW); var state0 = $"{component.StateBase}0"; - sprite.LayerMapSet(CornerLayers.SE, sprite.AddLayerState(state0)); - sprite.LayerSetDirOffset(CornerLayers.SE, DirectionOffset.None); - sprite.LayerMapSet(CornerLayers.NE, sprite.AddLayerState(state0)); - sprite.LayerSetDirOffset(CornerLayers.NE, DirectionOffset.CounterClockwise); - sprite.LayerMapSet(CornerLayers.NW, sprite.AddLayerState(state0)); - sprite.LayerSetDirOffset(CornerLayers.NW, DirectionOffset.Flip); - sprite.LayerMapSet(CornerLayers.SW, sprite.AddLayerState(state0)); - sprite.LayerSetDirOffset(CornerLayers.SW, DirectionOffset.Clockwise); + _sprite.LayerMapSet(sprite, CornerLayers.SE, _sprite.AddRsiLayer(sprite, state0)); + _sprite.LayerSetDirOffset(sprite, CornerLayers.SE, DirectionOffset.None); + _sprite.LayerMapSet(sprite, CornerLayers.NE, _sprite.AddRsiLayer(sprite, state0)); + _sprite.LayerSetDirOffset(sprite, CornerLayers.NE, DirectionOffset.CounterClockwise); + _sprite.LayerMapSet(sprite, CornerLayers.NW, _sprite.AddRsiLayer(sprite, state0)); + _sprite.LayerSetDirOffset(sprite, CornerLayers.NW, DirectionOffset.Flip); + _sprite.LayerMapSet(sprite, CornerLayers.SW, _sprite.AddRsiLayer(sprite, state0)); + _sprite.LayerSetDirOffset(sprite, CornerLayers.SW, DirectionOffset.Clockwise); } private void OnShutdown(EntityUid uid, IconSmoothComponent component, ComponentShutdown args) @@ -298,7 +299,7 @@ namespace Content.Client.IconSmoothing { if (gridEntity == null) { - sprite.Comp.LayerSetState(0, $"{smooth.StateBase}0"); + _sprite.LayerSetRsiState(sprite.AsNullable(), 0, $"{smooth.StateBase}0"); return; } @@ -324,11 +325,11 @@ namespace Content.Client.IconSmoothing if (matching) { - sprite.Comp.LayerSetState(0, $"{smooth.StateBase}1"); + _sprite.LayerSetRsiState(sprite.AsNullable(), 0, $"{smooth.StateBase}1"); } else { - sprite.Comp.LayerSetState(0, $"{smooth.StateBase}0"); + _sprite.LayerSetRsiState(sprite.AsNullable(), 0, $"{smooth.StateBase}0"); } } @@ -338,7 +339,7 @@ namespace Content.Client.IconSmoothing if (gridEntity == null) { - sprite.Comp.LayerSetState(0, $"{smooth.StateBase}{(int)dirs}"); + _sprite.LayerSetRsiState(sprite.AsNullable(), 0, $"{smooth.StateBase}{(int)dirs}"); return; } @@ -355,7 +356,7 @@ namespace Content.Client.IconSmoothing if (MatchingEntity(smooth, _mapSystem.GetAnchoredEntitiesEnumerator(gridUid, grid, pos.Offset(Direction.West)), smoothQuery)) dirs |= CardinalConnectDirs.West; - sprite.Comp.LayerSetState(0, $"{smooth.StateBase}{(int)dirs}"); + _sprite.LayerSetRsiState(sprite.AsNullable(), 0, $"{smooth.StateBase}{(int)dirs}"); var directions = DirectionFlag.None; @@ -399,10 +400,10 @@ namespace Content.Client.IconSmoothing // At the very least each event currently only queues a sprite for updating. // Oh god sprite component is a mess. var sprite = spriteEnt.Comp; - sprite.LayerSetState(CornerLayers.NE, $"{smooth.StateBase}{(int)cornerNE}"); - sprite.LayerSetState(CornerLayers.SE, $"{smooth.StateBase}{(int)cornerSE}"); - sprite.LayerSetState(CornerLayers.SW, $"{smooth.StateBase}{(int)cornerSW}"); - sprite.LayerSetState(CornerLayers.NW, $"{smooth.StateBase}{(int)cornerNW}"); + _sprite.LayerSetRsiState(spriteEnt.AsNullable(), CornerLayers.NE, $"{smooth.StateBase}{(int)cornerNE}"); + _sprite.LayerSetRsiState(spriteEnt.AsNullable(), CornerLayers.SE, $"{smooth.StateBase}{(int)cornerSE}"); + _sprite.LayerSetRsiState(spriteEnt.AsNullable(), CornerLayers.SW, $"{smooth.StateBase}{(int)cornerSW}"); + _sprite.LayerSetRsiState(spriteEnt.AsNullable(), CornerLayers.NW, $"{smooth.StateBase}{(int)cornerNW}"); var directions = DirectionFlag.None;