Cleanup more SpriteComponent warnings (part 2) (#37522)

* Cleanup warnings in DamageMarkerSystem

* Cleanup warnings in CuffableSystem

* Cleanup warnings in DeployableTurretSystem

* Cleanup warnings in StorageContainerVisualsSystem

* Cleanup warnings in ItemMapperSystem

* Cleanup warnings in ItemCounterSystem

* Cleanup warnings in RandomSpriteSystem

* Cleanup warnings in PowerCellSystem

* Cleanup warnings in ParticleAcceleratorPartVisualizerSystem

* Cleanup warnings in PaperVisualizerSystem

* Cleanup warnings in PoweredLightVisualizerSystem

* Cleanup warnings in LightBulbSystem

* Cleanup warnings in EmergencyLightSystem

* Cleanup warnings in DoorSystem

* Cleanup warnings in ClockSystem

* Cleanup warnings in BuckleSystem

* Cleanup warnings in JukeboxSystem
This commit is contained in:
Tayrtahn
2025-05-16 23:02:36 -04:00
committed by GitHub
parent b75fdd22de
commit 33f111c090
17 changed files with 110 additions and 87 deletions

View File

@@ -12,6 +12,7 @@ public sealed class JukeboxSystem : SharedJukeboxSystem
[Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!; [Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!;
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!; [Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -64,7 +65,7 @@ public sealed class JukeboxSystem : SharedJukeboxSystem
visualState = JukeboxVisualState.On; visualState = JukeboxVisualState.On;
} }
UpdateAppearance(uid, visualState, component, sprite); UpdateAppearance((uid, sprite), visualState, component);
} }
private void OnAppearanceChange(EntityUid uid, JukeboxComponent component, ref AppearanceChangeEvent args) private void OnAppearanceChange(EntityUid uid, JukeboxComponent component, ref AppearanceChangeEvent args)
@@ -78,25 +79,25 @@ public sealed class JukeboxSystem : SharedJukeboxSystem
visualState = JukeboxVisualState.On; visualState = JukeboxVisualState.On;
} }
UpdateAppearance(uid, visualState, component, args.Sprite); UpdateAppearance((uid, args.Sprite), visualState, component);
} }
private void UpdateAppearance(EntityUid uid, JukeboxVisualState visualState, JukeboxComponent component, SpriteComponent sprite) private void UpdateAppearance(Entity<SpriteComponent> entity, JukeboxVisualState visualState, JukeboxComponent component)
{ {
SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite); SetLayerState(JukeboxVisualLayers.Base, component.OffState, entity);
switch (visualState) switch (visualState)
{ {
case JukeboxVisualState.On: case JukeboxVisualState.On:
SetLayerState(JukeboxVisualLayers.Base, component.OnState, sprite); SetLayerState(JukeboxVisualLayers.Base, component.OnState, entity);
break; break;
case JukeboxVisualState.Off: case JukeboxVisualState.Off:
SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite); SetLayerState(JukeboxVisualLayers.Base, component.OffState, entity);
break; break;
case JukeboxVisualState.Select: case JukeboxVisualState.Select:
PlayAnimation(uid, JukeboxVisualLayers.Base, component.SelectState, 1.0f, sprite); PlayAnimation(entity.Owner, JukeboxVisualLayers.Base, component.SelectState, 1.0f, entity);
break; break;
} }
} }
@@ -109,7 +110,7 @@ public sealed class JukeboxSystem : SharedJukeboxSystem
if (!_animationPlayer.HasRunningAnimation(uid, state)) if (!_animationPlayer.HasRunningAnimation(uid, state))
{ {
var animation = GetAnimation(layer, state, animationTime); var animation = GetAnimation(layer, state, animationTime);
sprite.LayerSetVisible(layer, true); _sprite.LayerSetVisible((uid, sprite), layer, true);
_animationPlayer.Play(uid, animation, state); _animationPlayer.Play(uid, animation, state);
} }
} }
@@ -133,13 +134,13 @@ public sealed class JukeboxSystem : SharedJukeboxSystem
}; };
} }
private void SetLayerState(JukeboxVisualLayers layer, string? state, SpriteComponent sprite) private void SetLayerState(JukeboxVisualLayers layer, string? state, Entity<SpriteComponent> sprite)
{ {
if (string.IsNullOrEmpty(state)) if (string.IsNullOrEmpty(state))
return; return;
sprite.LayerSetVisible(layer, true); _sprite.LayerSetVisible(sprite.AsNullable(), layer, true);
sprite.LayerSetAutoAnimated(layer, true); _sprite.LayerSetAutoAnimated(sprite.AsNullable(), layer, true);
sprite.LayerSetState(layer, state); _sprite.LayerSetRsiState(sprite.AsNullable(), layer, state);
} }
} }

View File

@@ -13,6 +13,7 @@ internal sealed class BuckleSystem : SharedBuckleSystem
[Dependency] private readonly RotationVisualizerSystem _rotationVisualizerSystem = default!; [Dependency] private readonly RotationVisualizerSystem _rotationVisualizerSystem = default!;
[Dependency] private readonly IEyeManager _eye = default!; [Dependency] private readonly IEyeManager _eye = default!;
[Dependency] private readonly SharedTransformSystem _xformSystem = default!; [Dependency] private readonly SharedTransformSystem _xformSystem = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -69,11 +70,11 @@ internal sealed class BuckleSystem : SharedBuckleSystem
{ {
// This will only assign if empty, it won't get overwritten by new depth on multiple calls, which do happen easily // This will only assign if empty, it won't get overwritten by new depth on multiple calls, which do happen easily
buckle.OriginalDrawDepth ??= buckledSprite.DrawDepth; buckle.OriginalDrawDepth ??= buckledSprite.DrawDepth;
buckledSprite.DrawDepth = strapSprite.DrawDepth - 1; _sprite.SetDrawDepth((buckledEntity, buckledSprite), strapSprite.DrawDepth - 1);
} }
else if (buckle.OriginalDrawDepth.HasValue) else if (buckle.OriginalDrawDepth.HasValue)
{ {
buckledSprite.DrawDepth = buckle.OriginalDrawDepth.Value; _sprite.SetDrawDepth((buckledEntity, buckledSprite), buckle.OriginalDrawDepth.Value);
buckle.OriginalDrawDepth = null; buckle.OriginalDrawDepth = null;
} }
} }
@@ -97,7 +98,7 @@ internal sealed class BuckleSystem : SharedBuckleSystem
return; return;
ent.Comp.OriginalDrawDepth ??= buckledSprite.DrawDepth; ent.Comp.OriginalDrawDepth ??= buckledSprite.DrawDepth;
buckledSprite.DrawDepth = strapSprite.DrawDepth - 1; _sprite.SetDrawDepth((ent.Owner, buckledSprite), strapSprite.DrawDepth - 1);
} }
/// <summary> /// <summary>
@@ -111,7 +112,7 @@ internal sealed class BuckleSystem : SharedBuckleSystem
if (!ent.Comp.OriginalDrawDepth.HasValue) if (!ent.Comp.OriginalDrawDepth.HasValue)
return; return;
buckledSprite.DrawDepth = ent.Comp.OriginalDrawDepth.Value; _sprite.SetDrawDepth((ent.Owner, buckledSprite), ent.Comp.OriginalDrawDepth.Value);
ent.Comp.OriginalDrawDepth = null; ent.Comp.OriginalDrawDepth = null;
} }

View File

@@ -5,6 +5,8 @@ namespace Content.Client.Clock;
public sealed class ClockSystem : SharedClockSystem public sealed class ClockSystem : SharedClockSystem
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Update(float frameTime) public override void Update(float frameTime)
{ {
base.Update(frameTime); base.Update(frameTime);
@@ -12,15 +14,15 @@ public sealed class ClockSystem : SharedClockSystem
var query = EntityQueryEnumerator<ClockComponent, SpriteComponent>(); var query = EntityQueryEnumerator<ClockComponent, SpriteComponent>();
while (query.MoveNext(out var uid, out var comp, out var sprite)) while (query.MoveNext(out var uid, out var comp, out var sprite))
{ {
if (!sprite.LayerMapTryGet(ClockVisualLayers.HourHand, out var hourLayer) || if (!_sprite.LayerMapTryGet((uid, sprite), ClockVisualLayers.HourHand, out var hourLayer, false) ||
!sprite.LayerMapTryGet(ClockVisualLayers.MinuteHand, out var minuteLayer)) !_sprite.LayerMapTryGet((uid, sprite), ClockVisualLayers.MinuteHand, out var minuteLayer, false))
continue; continue;
var time = GetClockTime((uid, comp)); var time = GetClockTime((uid, comp));
var hourState = $"{comp.HoursBase}{time.Hours % 12}"; var hourState = $"{comp.HoursBase}{time.Hours % 12}";
var minuteState = $"{comp.MinutesBase}{time.Minutes / 5}"; var minuteState = $"{comp.MinutesBase}{time.Minutes / 5}";
sprite.LayerSetState(hourLayer, hourState); _sprite.LayerSetRsiState((uid, sprite), hourLayer, hourState);
sprite.LayerSetState(minuteLayer, minuteState); _sprite.LayerSetRsiState((uid, sprite), minuteLayer, minuteState);
} }
} }
} }

View File

@@ -4,12 +4,14 @@ using Content.Shared.Cuffs.Components;
using Content.Shared.Humanoid; using Content.Shared.Humanoid;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Shared.GameStates; using Robust.Shared.GameStates;
using Robust.Shared.Utility;
namespace Content.Client.Cuffs; namespace Content.Client.Cuffs;
public sealed class CuffableSystem : SharedCuffableSystem public sealed class CuffableSystem : SharedCuffableSystem
{ {
[Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -22,7 +24,7 @@ public sealed class CuffableSystem : SharedCuffableSystem
private void OnCuffableShutdown(EntityUid uid, CuffableComponent component, ComponentShutdown args) private void OnCuffableShutdown(EntityUid uid, CuffableComponent component, ComponentShutdown args)
{ {
if (TryComp<SpriteComponent>(uid, out var sprite)) if (TryComp<SpriteComponent>(uid, out var sprite))
sprite.LayerSetVisible(HumanoidVisualLayers.Handcuffs, false); _sprite.LayerSetVisible((uid, sprite), HumanoidVisualLayers.Handcuffs, false);
} }
private void OnCuffableHandleState(EntityUid uid, CuffableComponent component, ref ComponentHandleState args) private void OnCuffableHandleState(EntityUid uid, CuffableComponent component, ref ComponentHandleState args)
@@ -39,22 +41,22 @@ public sealed class CuffableSystem : SharedCuffableSystem
if (!TryComp<SpriteComponent>(uid, out var sprite)) if (!TryComp<SpriteComponent>(uid, out var sprite))
return; return;
var cuffed = cuffState.NumHandsCuffed > 0; var cuffed = cuffState.NumHandsCuffed > 0;
sprite.LayerSetVisible(HumanoidVisualLayers.Handcuffs, cuffed); _sprite.LayerSetVisible((uid, sprite), HumanoidVisualLayers.Handcuffs, cuffed);
// if they are not cuffed, that means that we didn't get a valid color, // if they are not cuffed, that means that we didn't get a valid color,
// iconstate, or RSI. that also means we don't need to update the sprites. // iconstate, or RSI. that also means we don't need to update the sprites.
if (!cuffed) if (!cuffed)
return; return;
sprite.LayerSetColor(HumanoidVisualLayers.Handcuffs, cuffState.Color!.Value); _sprite.LayerSetColor((uid, sprite), HumanoidVisualLayers.Handcuffs, cuffState.Color!.Value);
if (!Equals(component.CurrentRSI, cuffState.RSI) && cuffState.RSI != null) // we don't want to keep loading the same RSI if (!Equals(component.CurrentRSI, cuffState.RSI) && cuffState.RSI != null) // we don't want to keep loading the same RSI
{ {
component.CurrentRSI = cuffState.RSI; component.CurrentRSI = cuffState.RSI;
sprite.LayerSetState(HumanoidVisualLayers.Handcuffs, cuffState.IconState, component.CurrentRSI); _sprite.LayerSetRsi((uid, sprite), _sprite.LayerMapGet((uid, sprite), HumanoidVisualLayers.Handcuffs), new ResPath(component.CurrentRSI), cuffState.IconState);
} }
else else
{ {
sprite.LayerSetState(HumanoidVisualLayers.Handcuffs, cuffState.IconState); _sprite.LayerSetRsiState((uid, sprite), HumanoidVisualLayers.Handcuffs, cuffState.IconState);
} }
} }
} }

View File

@@ -11,6 +11,7 @@ public sealed class DoorSystem : SharedDoorSystem
{ {
[Dependency] private readonly AnimationPlayerSystem _animationSystem = default!; [Dependency] private readonly AnimationPlayerSystem _animationSystem = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!; [Dependency] private readonly IResourceCache _resourceCache = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -85,7 +86,7 @@ public sealed class DoorSystem : SharedDoorSystem
state = DoorState.Closed; state = DoorState.Closed;
if (AppearanceSystem.TryGetData<string>(entity, DoorVisuals.BaseRSI, out var baseRsi, args.Component)) if (AppearanceSystem.TryGetData<string>(entity, DoorVisuals.BaseRSI, out var baseRsi, args.Component))
UpdateSpriteLayers(args.Sprite, baseRsi); UpdateSpriteLayers((entity.Owner, args.Sprite), baseRsi);
if (_animationSystem.HasRunningAnimation(entity, DoorComponent.AnimationKey)) if (_animationSystem.HasRunningAnimation(entity, DoorComponent.AnimationKey))
_animationSystem.Stop(entity.Owner, DoorComponent.AnimationKey); _animationSystem.Stop(entity.Owner, DoorComponent.AnimationKey);
@@ -95,21 +96,21 @@ public sealed class DoorSystem : SharedDoorSystem
private void UpdateAppearanceForDoorState(Entity<DoorComponent> entity, SpriteComponent sprite, DoorState state) private void UpdateAppearanceForDoorState(Entity<DoorComponent> entity, SpriteComponent sprite, DoorState state)
{ {
sprite.DrawDepth = state is DoorState.Open ? entity.Comp.OpenDrawDepth : entity.Comp.ClosedDrawDepth; _sprite.SetDrawDepth((entity.Owner, sprite), state is DoorState.Open ? entity.Comp.OpenDrawDepth : entity.Comp.ClosedDrawDepth);
switch (state) switch (state)
{ {
case DoorState.Open: case DoorState.Open:
foreach (var (layer, layerState) in entity.Comp.OpenSpriteStates) foreach (var (layer, layerState) in entity.Comp.OpenSpriteStates)
{ {
sprite.LayerSetState(layer, layerState); _sprite.LayerSetRsiState((entity.Owner, sprite), layer, layerState);
} }
return; return;
case DoorState.Closed: case DoorState.Closed:
foreach (var (layer, layerState) in entity.Comp.ClosedSpriteStates) foreach (var (layer, layerState) in entity.Comp.ClosedSpriteStates)
{ {
sprite.LayerSetState(layer, layerState); _sprite.LayerSetRsiState((entity.Owner, sprite), layer, layerState);
} }
return; return;
@@ -138,7 +139,7 @@ public sealed class DoorSystem : SharedDoorSystem
} }
} }
private void UpdateSpriteLayers(SpriteComponent sprite, string baseRsi) private void UpdateSpriteLayers(Entity<SpriteComponent> sprite, string baseRsi)
{ {
if (!_resourceCache.TryGetResource<RSIResource>(SpriteSpecifierSerializer.TextureRoot / baseRsi, out var res)) if (!_resourceCache.TryGetResource<RSIResource>(SpriteSpecifierSerializer.TextureRoot / baseRsi, out var res))
{ {
@@ -146,6 +147,6 @@ public sealed class DoorSystem : SharedDoorSystem
return; return;
} }
sprite.BaseRSI = res.RSI; _sprite.SetBaseRsi(sprite.AsNullable(), res.RSI);
} }
} }

View File

@@ -6,6 +6,8 @@ namespace Content.Client.Light.EntitySystems;
public sealed class EmergencyLightSystem : VisualizerSystem<EmergencyLightComponent> public sealed class EmergencyLightSystem : VisualizerSystem<EmergencyLightComponent>
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
protected override void OnAppearanceChange(EntityUid uid, EmergencyLightComponent comp, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, EmergencyLightComponent comp, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
@@ -14,13 +16,13 @@ public sealed class EmergencyLightSystem : VisualizerSystem<EmergencyLightCompon
if (!AppearanceSystem.TryGetData<bool>(uid, EmergencyLightVisuals.On, out var on, args.Component)) if (!AppearanceSystem.TryGetData<bool>(uid, EmergencyLightVisuals.On, out var on, args.Component))
on = false; on = false;
args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOff, !on); _sprite.LayerSetVisible((uid, args.Sprite), EmergencyLightVisualLayers.LightOff, !on);
args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOn, on); _sprite.LayerSetVisible((uid, args.Sprite), EmergencyLightVisualLayers.LightOn, on);
if (AppearanceSystem.TryGetData<Color>(uid, EmergencyLightVisuals.Color, out var color, args.Component)) if (AppearanceSystem.TryGetData<Color>(uid, EmergencyLightVisuals.Color, out var color, args.Component))
{ {
args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOn, color); _sprite.LayerSetColor((uid, args.Sprite), EmergencyLightVisualLayers.LightOn, color);
args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOff, color); _sprite.LayerSetColor((uid, args.Sprite), EmergencyLightVisualLayers.LightOff, color);
} }
} }
} }

View File

@@ -5,6 +5,8 @@ namespace Content.Client.Light.Visualizers;
public sealed class LightBulbSystem : VisualizerSystem<LightBulbComponent> public sealed class LightBulbSystem : VisualizerSystem<LightBulbComponent>
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
protected override void OnAppearanceChange(EntityUid uid, LightBulbComponent comp, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, LightBulbComponent comp, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
@@ -16,13 +18,13 @@ public sealed class LightBulbSystem : VisualizerSystem<LightBulbComponent>
switch (state) switch (state)
{ {
case LightBulbState.Normal: case LightBulbState.Normal:
args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.NormalSpriteState); _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.NormalSpriteState);
break; break;
case LightBulbState.Broken: case LightBulbState.Broken:
args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.BrokenSpriteState); _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.BrokenSpriteState);
break; break;
case LightBulbState.Burned: case LightBulbState.Burned:
args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.BurnedSpriteState); _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.BurnedSpriteState);
break; break;
} }
} }
@@ -30,7 +32,7 @@ public sealed class LightBulbSystem : VisualizerSystem<LightBulbComponent>
// also update sprites color // also update sprites color
if (AppearanceSystem.TryGetData<Color>(uid, LightBulbVisuals.Color, out var color, args.Component)) if (AppearanceSystem.TryGetData<Color>(uid, LightBulbVisuals.Color, out var color, args.Component))
{ {
args.Sprite.Color = color; _sprite.SetColor((uid, args.Sprite), color);
} }
} }
} }

View File

@@ -11,6 +11,7 @@ public sealed class PoweredLightVisualizerSystem : VisualizerSystem<PoweredLight
{ {
[Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -27,16 +28,16 @@ public sealed class PoweredLightVisualizerSystem : VisualizerSystem<PoweredLight
return; return;
if (comp.SpriteStateMap.TryGetValue(state, out var spriteState)) if (comp.SpriteStateMap.TryGetValue(state, out var spriteState))
args.Sprite.LayerSetState(PoweredLightLayers.Base, spriteState); _sprite.LayerSetRsiState((uid, args.Sprite), PoweredLightLayers.Base, spriteState);
if (args.Sprite.LayerExists(PoweredLightLayers.Glow)) if (_sprite.LayerExists((uid, args.Sprite), PoweredLightLayers.Glow))
{ {
if (TryComp<PointLightComponent>(uid, out var light)) if (TryComp<PointLightComponent>(uid, out var light))
{ {
args.Sprite.LayerSetColor(PoweredLightLayers.Glow, light.Color); _sprite.LayerSetColor((uid, args.Sprite), PoweredLightLayers.Glow, light.Color);
} }
args.Sprite.LayerSetVisible(PoweredLightLayers.Glow, state == PoweredLightState.On); _sprite.LayerSetVisible((uid, args.Sprite), PoweredLightLayers.Glow, state == PoweredLightState.On);
} }
SetBlinkingAnimation( SetBlinkingAnimation(

View File

@@ -6,24 +6,26 @@ namespace Content.Client.Paper.UI;
public sealed class PaperVisualizerSystem : VisualizerSystem<PaperVisualsComponent> public sealed class PaperVisualizerSystem : VisualizerSystem<PaperVisualsComponent>
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
protected override void OnAppearanceChange(EntityUid uid, PaperVisualsComponent component, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, PaperVisualsComponent component, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
return; return;
if (AppearanceSystem.TryGetData<PaperStatus>(uid, PaperVisuals.Status, out var writingStatus, args.Component)) if (AppearanceSystem.TryGetData<PaperStatus>(uid, PaperVisuals.Status, out var writingStatus, args.Component))
args.Sprite.LayerSetVisible(PaperVisualLayers.Writing, writingStatus == PaperStatus.Written); _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Writing, writingStatus == PaperStatus.Written);
if (AppearanceSystem.TryGetData<string>(uid, PaperVisuals.Stamp, out var stampState, args.Component)) if (AppearanceSystem.TryGetData<string>(uid, PaperVisuals.Stamp, out var stampState, args.Component))
{ {
if (stampState != string.Empty) if (stampState != string.Empty)
{ {
args.Sprite.LayerSetState(PaperVisualLayers.Stamp, stampState); _sprite.LayerSetRsiState((uid, args.Sprite), PaperVisualLayers.Stamp, stampState);
args.Sprite.LayerSetVisible(PaperVisualLayers.Stamp, true); _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, true);
} }
else else
{ {
args.Sprite.LayerSetVisible(PaperVisualLayers.Stamp, false); _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, false);
} }
} }

View File

@@ -1,4 +1,3 @@
using System.Linq;
using Content.Shared.Singularity.Components; using Content.Shared.Singularity.Components;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
@@ -6,12 +5,14 @@ namespace Content.Client.ParticleAccelerator;
public sealed class ParticleAcceleratorPartVisualizerSystem : VisualizerSystem<ParticleAcceleratorPartVisualsComponent> public sealed class ParticleAcceleratorPartVisualizerSystem : VisualizerSystem<ParticleAcceleratorPartVisualsComponent>
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
protected override void OnAppearanceChange(EntityUid uid, ParticleAcceleratorPartVisualsComponent comp, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, ParticleAcceleratorPartVisualsComponent comp, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
return; return;
if (!args.Sprite.LayerMapTryGet(ParticleAcceleratorVisualLayers.Unlit, out var index)) if (!_sprite.LayerMapTryGet((uid, args.Sprite), ParticleAcceleratorVisualLayers.Unlit, out var index, false))
return; return;
if (!AppearanceSystem.TryGetData<ParticleAcceleratorVisualState>(uid, ParticleAcceleratorVisuals.VisualState, out var state, args.Component)) if (!AppearanceSystem.TryGetData<ParticleAcceleratorVisualState>(uid, ParticleAcceleratorVisuals.VisualState, out var state, args.Component))
@@ -21,12 +22,12 @@ public sealed class ParticleAcceleratorPartVisualizerSystem : VisualizerSystem<P
if (state != ParticleAcceleratorVisualState.Unpowered) if (state != ParticleAcceleratorVisualState.Unpowered)
{ {
args.Sprite.LayerSetVisible(index, true); _sprite.LayerSetVisible((uid, args.Sprite), index, true);
args.Sprite.LayerSetState(index, comp.StateBase + comp.StatesSuffixes[state]); _sprite.LayerSetRsiState((uid, args.Sprite), index, comp.StateBase + comp.StatesSuffixes[state]);
} }
else else
{ {
args.Sprite.LayerSetVisible(index, false); _sprite.LayerSetVisible((uid, args.Sprite), index, false);
} }
} }
} }

View File

@@ -9,6 +9,7 @@ namespace Content.Client.PowerCell;
public sealed class PowerCellSystem : SharedPowerCellSystem public sealed class PowerCellSystem : SharedPowerCellSystem
{ {
[Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -44,19 +45,19 @@ public sealed class PowerCellSystem : SharedPowerCellSystem
if (args.Sprite == null) if (args.Sprite == null)
return; return;
if (!args.Sprite.TryGetLayer((int) PowerCellVisualLayers.Unshaded, out var unshadedLayer)) if (!_sprite.LayerExists((uid, args.Sprite), PowerCellVisualLayers.Unshaded))
return; return;
if (_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component)) if (_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component))
{ {
if (level == 0) if (level == 0)
{ {
unshadedLayer.Visible = false; _sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false);
return; return;
} }
unshadedLayer.Visible = true; _sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false);
args.Sprite.LayerSetState(PowerCellVisualLayers.Unshaded, $"o{level}"); _sprite.LayerSetRsiState((uid, args.Sprite), PowerCellVisualLayers.Unshaded, $"o{level}");
} }
} }

View File

@@ -11,6 +11,7 @@ public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
{ {
[Dependency] private readonly IReflectionManager _reflection = default!; [Dependency] private readonly IReflectionManager _reflection = default!;
[Dependency] private readonly ClientClothingSystem _clothing = default!; [Dependency] private readonly ClientClothingSystem _clothing = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -63,10 +64,10 @@ public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
int index; int index;
if (_reflection.TryParseEnumReference(layer.Key, out var @enum)) if (_reflection.TryParseEnumReference(layer.Key, out var @enum))
{ {
if (!sprite.LayerMapTryGet(@enum, out index, logError: true)) if (!_sprite.LayerMapTryGet((uid, sprite), @enum, out index, logMissing: true))
continue; continue;
} }
else if (!sprite.LayerMapTryGet(layer.Key, out index)) else if (!_sprite.LayerMapTryGet((uid, sprite), layer.Key, out index, false))
{ {
if (layer.Key is not { } strKey || !int.TryParse(strKey, out index)) if (layer.Key is not { } strKey || !int.TryParse(strKey, out index))
{ {
@@ -74,8 +75,8 @@ public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
continue; continue;
} }
} }
sprite.LayerSetState(index, layer.Value.State); _sprite.LayerSetRsiState((uid, sprite), index, layer.Value.State);
sprite.LayerSetColor(index, layer.Value.Color ?? Color.White); _sprite.LayerSetColor((uid, sprite), index, layer.Value.Color ?? Color.White);
} }
} }
} }

View File

@@ -10,6 +10,7 @@ namespace Content.Client.Storage.Systems;
public sealed class ItemCounterSystem : SharedItemCounterSystem public sealed class ItemCounterSystem : SharedItemCounterSystem
{ {
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!; [Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -41,12 +42,12 @@ public sealed class ItemCounterSystem : SharedItemCounterSystem
public void ProcessOpaqueSprite(EntityUid uid, string layer, int count, int maxCount, List<string> states, bool hide = false, SpriteComponent? sprite = null) public void ProcessOpaqueSprite(EntityUid uid, string layer, int count, int maxCount, List<string> states, bool hide = false, SpriteComponent? sprite = null)
{ {
if (!Resolve(uid, ref sprite) if (!Resolve(uid, ref sprite)
|| !sprite.LayerMapTryGet(layer, out var layerKey, logError: true)) || !_sprite.LayerMapTryGet((uid, sprite), layer, out var layerKey, logMissing: true))
return; return;
var activeState = ContentHelpers.RoundToEqualLevels(count, maxCount, states.Count); var activeState = ContentHelpers.RoundToEqualLevels(count, maxCount, states.Count);
sprite.LayerSetState(layerKey, states[activeState]); _sprite.LayerSetRsiState((uid, sprite), layerKey, states[activeState]);
sprite.LayerSetVisible(layerKey, !hide); _sprite.LayerSetVisible((uid, sprite), layerKey, !hide);
} }
public void ProcessCompositeSprite(EntityUid uid, int count, int maxCount, List<string> layers, bool hide = false, SpriteComponent? sprite = null) public void ProcessCompositeSprite(EntityUid uid, int count, int maxCount, List<string> layers, bool hide = false, SpriteComponent? sprite = null)
@@ -57,7 +58,7 @@ public sealed class ItemCounterSystem : SharedItemCounterSystem
var activeTill = ContentHelpers.RoundToNearestLevels(count, maxCount, layers.Count); var activeTill = ContentHelpers.RoundToNearestLevels(count, maxCount, layers.Count);
for (var i = 0; i < layers.Count; ++i) for (var i = 0; i < layers.Count; ++i)
{ {
sprite.LayerSetVisible(layers[i], !hide && i < activeTill); _sprite.LayerSetVisible((uid, sprite), layers[i], !hide && i < activeTill);
} }
} }

View File

@@ -9,6 +9,7 @@ namespace Content.Client.Storage.Systems;
public sealed class ItemMapperSystem : SharedItemMapperSystem public sealed class ItemMapperSystem : SharedItemMapperSystem
{ {
[Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -48,9 +49,9 @@ public sealed class ItemMapperSystem : SharedItemMapperSystem
foreach (var sprite in component.SpriteLayers) foreach (var sprite in component.SpriteLayers)
{ {
spriteComponent.LayerMapReserveBlank(sprite); _sprite.LayerMapReserve((owner, spriteComponent), sprite);
spriteComponent.LayerSetSprite(sprite, new SpriteSpecifier.Rsi(component.RSIPath!.Value, sprite)); _sprite.LayerSetSprite((owner, spriteComponent), sprite, new SpriteSpecifier.Rsi(component.RSIPath!.Value, sprite));
spriteComponent.LayerSetVisible(sprite, false); _sprite.LayerSetVisible((owner, spriteComponent), sprite, false);
} }
} }
@@ -63,7 +64,7 @@ public sealed class ItemMapperSystem : SharedItemMapperSystem
foreach (var layerName in component.SpriteLayers) foreach (var layerName in component.SpriteLayers)
{ {
var show = wrapper.QueuedEntities.Contains(layerName); var show = wrapper.QueuedEntities.Contains(layerName);
spriteComponent.LayerSetVisible(layerName, show); _sprite.LayerSetVisible((owner, spriteComponent), layerName, show);
} }
} }
} }

View File

@@ -8,6 +8,8 @@ namespace Content.Client.Storage.Systems;
/// <inheritdoc cref="StorageContainerVisualsComponent"/> /// <inheritdoc cref="StorageContainerVisualsComponent"/>
public sealed class StorageContainerVisualsSystem : VisualizerSystem<StorageContainerVisualsComponent> public sealed class StorageContainerVisualsSystem : VisualizerSystem<StorageContainerVisualsComponent>
{ {
[Dependency] private readonly SpriteSystem _sprite = default!;
protected override void OnAppearanceChange(EntityUid uid, StorageContainerVisualsComponent component, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, StorageContainerVisualsComponent component, ref AppearanceChangeEvent args)
{ {
if (args.Sprite == null) if (args.Sprite == null)
@@ -21,7 +23,7 @@ public sealed class StorageContainerVisualsSystem : VisualizerSystem<StorageCont
var fraction = used / (float)capacity; var fraction = used / (float)capacity;
if (!args.Sprite.LayerMapTryGet(component.FillLayer, out var fillLayer)) if (!_sprite.LayerMapTryGet((uid, args.Sprite), component.FillLayer, out var fillLayer, false))
return; return;
var closestFillSprite = Math.Min(ContentHelpers.RoundToNearestLevels(fraction, 1, component.MaxFillLevels + 1), var closestFillSprite = Math.Min(ContentHelpers.RoundToNearestLevels(fraction, 1, component.MaxFillLevels + 1),
@@ -32,13 +34,13 @@ public sealed class StorageContainerVisualsSystem : VisualizerSystem<StorageCont
if (component.FillBaseName == null) if (component.FillBaseName == null)
return; return;
args.Sprite.LayerSetVisible(fillLayer, true); _sprite.LayerSetVisible((uid, args.Sprite), fillLayer, true);
var stateName = component.FillBaseName + closestFillSprite; var stateName = component.FillBaseName + closestFillSprite;
args.Sprite.LayerSetState(fillLayer, stateName); _sprite.LayerSetRsiState((uid, args.Sprite), fillLayer, stateName);
} }
else else
{ {
args.Sprite.LayerSetVisible(fillLayer, false); _sprite.LayerSetVisible((uid, args.Sprite), fillLayer, false);
} }
} }
} }

View File

@@ -9,6 +9,7 @@ public sealed partial class DeployableTurretSystem : SharedDeployableTurretSyste
{ {
[Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly AnimationPlayerSystem _animation = default!; [Dependency] private readonly AnimationPlayerSystem _animation = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -90,13 +91,13 @@ public sealed partial class DeployableTurretSystem : SharedDeployableTurretSyste
var destinationState = ent.Comp.VisualState & DeployableTurretState.Deployed; var destinationState = ent.Comp.VisualState & DeployableTurretState.Deployed;
if (targetState != destinationState) if (targetState != destinationState)
targetState = targetState | DeployableTurretState.Retracting; targetState |= DeployableTurretState.Retracting;
ent.Comp.VisualState = state; ent.Comp.VisualState = state;
// Toggle layer visibility // Toggle layer visibility
sprite.LayerSetVisible(DeployableTurretVisuals.Weapon, (targetState & DeployableTurretState.Deployed) > 0); _sprite.LayerSetVisible((ent.Owner, sprite), DeployableTurretVisuals.Weapon, (targetState & DeployableTurretState.Deployed) > 0);
sprite.LayerSetVisible(PowerDeviceVisualLayers.Powered, HasAmmo(ent) && targetState == DeployableTurretState.Retracted); _sprite.LayerSetVisible((ent.Owner, sprite), PowerDeviceVisualLayers.Powered, HasAmmo(ent) && targetState == DeployableTurretState.Retracted);
// Change the visual state // Change the visual state
switch (targetState) switch (targetState)
@@ -110,11 +111,11 @@ public sealed partial class DeployableTurretSystem : SharedDeployableTurretSyste
break; break;
case DeployableTurretState.Deployed: case DeployableTurretState.Deployed:
sprite.LayerSetState(DeployableTurretVisuals.Turret, ent.Comp.DeployedState); _sprite.LayerSetRsiState((ent.Owner, sprite), DeployableTurretVisuals.Turret, ent.Comp.DeployedState);
break; break;
case DeployableTurretState.Retracted: case DeployableTurretState.Retracted:
sprite.LayerSetState(DeployableTurretVisuals.Turret, ent.Comp.RetractedState); _sprite.LayerSetRsiState((ent.Owner, sprite), DeployableTurretVisuals.Turret, ent.Comp.RetractedState);
break; break;
} }
} }

View File

@@ -7,6 +7,7 @@ namespace Content.Client.Weapons.Marker;
public sealed class DamageMarkerSystem : SharedDamageMarkerSystem public sealed class DamageMarkerSystem : SharedDamageMarkerSystem
{ {
[Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -20,16 +21,16 @@ public sealed class DamageMarkerSystem : SharedDamageMarkerSystem
if (!_timing.ApplyingState || component.Effect == null || !TryComp<SpriteComponent>(uid, out var sprite)) if (!_timing.ApplyingState || component.Effect == null || !TryComp<SpriteComponent>(uid, out var sprite))
return; return;
var layer = sprite.LayerMapReserveBlank(DamageMarkerKey.Key); var layer = _sprite.LayerMapReserve((uid, sprite), DamageMarkerKey.Key);
sprite.LayerSetState(layer, component.Effect.RsiState, component.Effect.RsiPath); _sprite.LayerSetRsi((uid, sprite), layer, component.Effect.RsiPath, component.Effect.RsiState);
} }
private void OnMarkerShutdown(EntityUid uid, DamageMarkerComponent component, ComponentShutdown args) private void OnMarkerShutdown(EntityUid uid, DamageMarkerComponent component, ComponentShutdown args)
{ {
if (!_timing.ApplyingState || !TryComp<SpriteComponent>(uid, out var sprite) || !sprite.LayerMapTryGet(DamageMarkerKey.Key, out var weh)) if (!_timing.ApplyingState || !TryComp<SpriteComponent>(uid, out var sprite) || !_sprite.LayerMapTryGet((uid, sprite), DamageMarkerKey.Key, out var weh, false))
return; return;
sprite.RemoveLayer(weh); _sprite.RemoveLayer((uid, sprite), weh);
} }
private enum DamageMarkerKey : byte private enum DamageMarkerKey : byte