[Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!;
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
visualState = JukeboxVisualState.On;
}
- UpdateAppearance(uid, visualState, component, sprite);
+ UpdateAppearance((uid, sprite), visualState, component);
}
private void OnAppearanceChange(EntityUid uid, JukeboxComponent component, ref AppearanceChangeEvent args)
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)
{
case JukeboxVisualState.On:
- SetLayerState(JukeboxVisualLayers.Base, component.OnState, sprite);
+ SetLayerState(JukeboxVisualLayers.Base, component.OnState, entity);
break;
case JukeboxVisualState.Off:
- SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite);
+ SetLayerState(JukeboxVisualLayers.Base, component.OffState, entity);
break;
case JukeboxVisualState.Select:
- PlayAnimation(uid, JukeboxVisualLayers.Base, component.SelectState, 1.0f, sprite);
+ PlayAnimation(entity.Owner, JukeboxVisualLayers.Base, component.SelectState, 1.0f, entity);
break;
}
}
if (!_animationPlayer.HasRunningAnimation(uid, state))
{
var animation = GetAnimation(layer, state, animationTime);
- sprite.LayerSetVisible(layer, true);
+ _sprite.LayerSetVisible((uid, sprite), layer, true);
_animationPlayer.Play(uid, animation, state);
}
}
};
}
- private void SetLayerState(JukeboxVisualLayers layer, string? state, SpriteComponent sprite)
+ private void SetLayerState(JukeboxVisualLayers layer, string? state, Entity<SpriteComponent> sprite)
{
if (string.IsNullOrEmpty(state))
return;
- sprite.LayerSetVisible(layer, true);
- sprite.LayerSetAutoAnimated(layer, true);
- sprite.LayerSetState(layer, state);
+ _sprite.LayerSetVisible(sprite.AsNullable(), layer, true);
+ _sprite.LayerSetAutoAnimated(sprite.AsNullable(), layer, true);
+ _sprite.LayerSetRsiState(sprite.AsNullable(), layer, state);
}
}
[Dependency] private readonly RotationVisualizerSystem _rotationVisualizerSystem = default!;
[Dependency] private readonly IEyeManager _eye = default!;
[Dependency] private readonly SharedTransformSystem _xformSystem = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
{
// 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;
- buckledSprite.DrawDepth = strapSprite.DrawDepth - 1;
+ _sprite.SetDrawDepth((buckledEntity, buckledSprite), strapSprite.DrawDepth - 1);
}
else if (buckle.OriginalDrawDepth.HasValue)
{
- buckledSprite.DrawDepth = buckle.OriginalDrawDepth.Value;
+ _sprite.SetDrawDepth((buckledEntity, buckledSprite), buckle.OriginalDrawDepth.Value);
buckle.OriginalDrawDepth = null;
}
}
return;
ent.Comp.OriginalDrawDepth ??= buckledSprite.DrawDepth;
- buckledSprite.DrawDepth = strapSprite.DrawDepth - 1;
+ _sprite.SetDrawDepth((ent.Owner, buckledSprite), strapSprite.DrawDepth - 1);
}
/// <summary>
if (!ent.Comp.OriginalDrawDepth.HasValue)
return;
- buckledSprite.DrawDepth = ent.Comp.OriginalDrawDepth.Value;
+ _sprite.SetDrawDepth((ent.Owner, buckledSprite), ent.Comp.OriginalDrawDepth.Value);
ent.Comp.OriginalDrawDepth = null;
}
public sealed class ClockSystem : SharedClockSystem
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
public override void Update(float frameTime)
{
base.Update(frameTime);
var query = EntityQueryEnumerator<ClockComponent, SpriteComponent>();
while (query.MoveNext(out var uid, out var comp, out var sprite))
{
- if (!sprite.LayerMapTryGet(ClockVisualLayers.HourHand, out var hourLayer) ||
- !sprite.LayerMapTryGet(ClockVisualLayers.MinuteHand, out var minuteLayer))
+ if (!_sprite.LayerMapTryGet((uid, sprite), ClockVisualLayers.HourHand, out var hourLayer, false) ||
+ !_sprite.LayerMapTryGet((uid, sprite), ClockVisualLayers.MinuteHand, out var minuteLayer, false))
continue;
var time = GetClockTime((uid, comp));
var hourState = $"{comp.HoursBase}{time.Hours % 12}";
var minuteState = $"{comp.MinutesBase}{time.Minutes / 5}";
- sprite.LayerSetState(hourLayer, hourState);
- sprite.LayerSetState(minuteLayer, minuteState);
+ _sprite.LayerSetRsiState((uid, sprite), hourLayer, hourState);
+ _sprite.LayerSetRsiState((uid, sprite), minuteLayer, minuteState);
}
}
}
using Content.Shared.Humanoid;
using Robust.Client.GameObjects;
using Robust.Shared.GameStates;
+using Robust.Shared.Utility;
namespace Content.Client.Cuffs;
public sealed class CuffableSystem : SharedCuffableSystem
{
[Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
private void OnCuffableShutdown(EntityUid uid, CuffableComponent component, ComponentShutdown args)
{
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)
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
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,
// iconstate, or RSI. that also means we don't need to update the sprites.
if (!cuffed)
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
{
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
{
- sprite.LayerSetState(HumanoidVisualLayers.Handcuffs, cuffState.IconState);
+ _sprite.LayerSetRsiState((uid, sprite), HumanoidVisualLayers.Handcuffs, cuffState.IconState);
}
}
}
{
[Dependency] private readonly AnimationPlayerSystem _animationSystem = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
state = DoorState.Closed;
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))
_animationSystem.Stop(entity.Owner, DoorComponent.AnimationKey);
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)
{
case DoorState.Open:
foreach (var (layer, layerState) in entity.Comp.OpenSpriteStates)
{
- sprite.LayerSetState(layer, layerState);
+ _sprite.LayerSetRsiState((entity.Owner, sprite), layer, layerState);
}
return;
case DoorState.Closed:
foreach (var (layer, layerState) in entity.Comp.ClosedSpriteStates)
{
- sprite.LayerSetState(layer, layerState);
+ _sprite.LayerSetRsiState((entity.Owner, sprite), layer, layerState);
}
return;
}
}
- 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))
{
return;
}
- sprite.BaseRSI = res.RSI;
+ _sprite.SetBaseRsi(sprite.AsNullable(), res.RSI);
}
}
public sealed class EmergencyLightSystem : VisualizerSystem<EmergencyLightComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
protected override void OnAppearanceChange(EntityUid uid, EmergencyLightComponent comp, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
if (!AppearanceSystem.TryGetData<bool>(uid, EmergencyLightVisuals.On, out var on, args.Component))
on = false;
- args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOff, !on);
- args.Sprite.LayerSetVisible(EmergencyLightVisualLayers.LightOn, on);
+ _sprite.LayerSetVisible((uid, args.Sprite), EmergencyLightVisualLayers.LightOff, !on);
+ _sprite.LayerSetVisible((uid, args.Sprite), EmergencyLightVisualLayers.LightOn, on);
if (AppearanceSystem.TryGetData<Color>(uid, EmergencyLightVisuals.Color, out var color, args.Component))
{
- args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOn, color);
- args.Sprite.LayerSetColor(EmergencyLightVisualLayers.LightOff, color);
+ _sprite.LayerSetColor((uid, args.Sprite), EmergencyLightVisualLayers.LightOn, color);
+ _sprite.LayerSetColor((uid, args.Sprite), EmergencyLightVisualLayers.LightOff, color);
}
}
}
public sealed class LightBulbSystem : VisualizerSystem<LightBulbComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
protected override void OnAppearanceChange(EntityUid uid, LightBulbComponent comp, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
switch (state)
{
case LightBulbState.Normal:
- args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.NormalSpriteState);
+ _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.NormalSpriteState);
break;
case LightBulbState.Broken:
- args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.BrokenSpriteState);
+ _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.BrokenSpriteState);
break;
case LightBulbState.Burned:
- args.Sprite.LayerSetState(LightBulbVisualLayers.Base, comp.BurnedSpriteState);
+ _sprite.LayerSetRsiState((uid, args.Sprite), LightBulbVisualLayers.Base, comp.BurnedSpriteState);
break;
}
}
// also update sprites color
if (AppearanceSystem.TryGetData<Color>(uid, LightBulbVisuals.Color, out var color, args.Component))
{
- args.Sprite.Color = color;
+ _sprite.SetColor((uid, args.Sprite), color);
}
}
}
{
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
return;
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))
{
- 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(
return;
if (args.Key != PoweredLightVisualsComponent.BlinkingAnimationKey)
return;
- if(!comp.IsBlinking)
+ if (!comp.IsBlinking)
return;
AnimationSystem.Play((uid, animationPlayer), BlinkingAnimation(comp), PoweredLightVisualsComponent.BlinkingAnimationKey);
public sealed class PaperVisualizerSystem : VisualizerSystem<PaperVisualsComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
protected override void OnAppearanceChange(EntityUid uid, PaperVisualsComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
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 (stampState != string.Empty)
{
- args.Sprite.LayerSetState(PaperVisualLayers.Stamp, stampState);
- args.Sprite.LayerSetVisible(PaperVisualLayers.Stamp, true);
+ _sprite.LayerSetRsiState((uid, args.Sprite), PaperVisualLayers.Stamp, stampState);
+ _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, true);
}
else
{
- args.Sprite.LayerSetVisible(PaperVisualLayers.Stamp, false);
+ _sprite.LayerSetVisible((uid, args.Sprite), PaperVisualLayers.Stamp, false);
}
}
-using System.Linq;
using Content.Shared.Singularity.Components;
using Robust.Client.GameObjects;
public sealed class ParticleAcceleratorPartVisualizerSystem : VisualizerSystem<ParticleAcceleratorPartVisualsComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
protected override void OnAppearanceChange(EntityUid uid, ParticleAcceleratorPartVisualsComponent comp, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
- if (!args.Sprite.LayerMapTryGet(ParticleAcceleratorVisualLayers.Unlit, out var index))
+ if (!_sprite.LayerMapTryGet((uid, args.Sprite), ParticleAcceleratorVisualLayers.Unlit, out var index, false))
return;
if (!AppearanceSystem.TryGetData<ParticleAcceleratorVisualState>(uid, ParticleAcceleratorVisuals.VisualState, out var state, args.Component))
if (state != ParticleAcceleratorVisualState.Unpowered)
{
- args.Sprite.LayerSetVisible(index, true);
- args.Sprite.LayerSetState(index, comp.StateBase + comp.StatesSuffixes[state]);
+ _sprite.LayerSetVisible((uid, args.Sprite), index, true);
+ _sprite.LayerSetRsiState((uid, args.Sprite), index, comp.StateBase + comp.StatesSuffixes[state]);
}
else
{
- args.Sprite.LayerSetVisible(index, false);
+ _sprite.LayerSetVisible((uid, args.Sprite), index, false);
}
}
}
public sealed class PowerCellSystem : SharedPowerCellSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
if (args.Sprite == null)
return;
- if (!args.Sprite.TryGetLayer((int) PowerCellVisualLayers.Unshaded, out var unshadedLayer))
+ if (!_sprite.LayerExists((uid, args.Sprite), PowerCellVisualLayers.Unshaded))
return;
if (_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component))
{
if (level == 0)
{
- unshadedLayer.Visible = false;
+ _sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false);
return;
}
- unshadedLayer.Visible = true;
- args.Sprite.LayerSetState(PowerCellVisualLayers.Unshaded, $"o{level}");
+ _sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false);
+ _sprite.LayerSetRsiState((uid, args.Sprite), PowerCellVisualLayers.Unshaded, $"o{level}");
}
}
{
[Dependency] private readonly IReflectionManager _reflection = default!;
[Dependency] private readonly ClientClothingSystem _clothing = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
int index;
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;
}
- 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))
{
continue;
}
}
- sprite.LayerSetState(index, layer.Value.State);
- sprite.LayerSetColor(index, layer.Value.Color ?? Color.White);
+ _sprite.LayerSetRsiState((uid, sprite), index, layer.Value.State);
+ _sprite.LayerSetColor((uid, sprite), index, layer.Value.Color ?? Color.White);
}
}
}
public sealed class ItemCounterSystem : SharedItemCounterSystem
{
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
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)
- || !sprite.LayerMapTryGet(layer, out var layerKey, logError: true))
+ || !_sprite.LayerMapTryGet((uid, sprite), layer, out var layerKey, logMissing: true))
return;
-
+
var activeState = ContentHelpers.RoundToEqualLevels(count, maxCount, states.Count);
- sprite.LayerSetState(layerKey, states[activeState]);
- sprite.LayerSetVisible(layerKey, !hide);
+ _sprite.LayerSetRsiState((uid, sprite), layerKey, states[activeState]);
+ _sprite.LayerSetVisible((uid, sprite), layerKey, !hide);
}
public void ProcessCompositeSprite(EntityUid uid, int count, int maxCount, List<string> layers, bool hide = false, SpriteComponent? sprite = null)
{
- if(!Resolve(uid, ref sprite))
+ if (!Resolve(uid, ref sprite))
return;
-
+
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);
}
}
public sealed class ItemMapperSystem : SharedItemMapperSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
foreach (var sprite in component.SpriteLayers)
{
- spriteComponent.LayerMapReserveBlank(sprite);
- spriteComponent.LayerSetSprite(sprite, new SpriteSpecifier.Rsi(component.RSIPath!.Value, sprite));
- spriteComponent.LayerSetVisible(sprite, false);
+ _sprite.LayerMapReserve((owner, spriteComponent), sprite);
+ _sprite.LayerSetSprite((owner, spriteComponent), sprite, new SpriteSpecifier.Rsi(component.RSIPath!.Value, sprite));
+ _sprite.LayerSetVisible((owner, spriteComponent), sprite, false);
}
}
foreach (var layerName in component.SpriteLayers)
{
var show = wrapper.QueuedEntities.Contains(layerName);
- spriteComponent.LayerSetVisible(layerName, show);
+ _sprite.LayerSetVisible((owner, spriteComponent), layerName, show);
}
}
}
/// <inheritdoc cref="StorageContainerVisualsComponent"/>
public sealed class StorageContainerVisualsSystem : VisualizerSystem<StorageContainerVisualsComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
protected override void OnAppearanceChange(EntityUid uid, StorageContainerVisualsComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
if (!AppearanceSystem.TryGetData<int>(uid, StorageVisuals.Capacity, out var capacity, args.Component))
return;
- 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;
var closestFillSprite = Math.Min(ContentHelpers.RoundToNearestLevels(fraction, 1, component.MaxFillLevels + 1),
if (component.FillBaseName == null)
return;
- args.Sprite.LayerSetVisible(fillLayer, true);
+ _sprite.LayerSetVisible((uid, args.Sprite), fillLayer, true);
var stateName = component.FillBaseName + closestFillSprite;
- args.Sprite.LayerSetState(fillLayer, stateName);
+ _sprite.LayerSetRsiState((uid, args.Sprite), fillLayer, stateName);
}
else
{
- args.Sprite.LayerSetVisible(fillLayer, false);
+ _sprite.LayerSetVisible((uid, args.Sprite), fillLayer, false);
}
}
}
{
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly AnimationPlayerSystem _animation = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
var destinationState = ent.Comp.VisualState & DeployableTurretState.Deployed;
if (targetState != destinationState)
- targetState = targetState | DeployableTurretState.Retracting;
+ targetState |= DeployableTurretState.Retracting;
ent.Comp.VisualState = state;
// Toggle layer visibility
- sprite.LayerSetVisible(DeployableTurretVisuals.Weapon, (targetState & DeployableTurretState.Deployed) > 0);
- sprite.LayerSetVisible(PowerDeviceVisualLayers.Powered, HasAmmo(ent) && targetState == DeployableTurretState.Retracted);
+ _sprite.LayerSetVisible((ent.Owner, sprite), DeployableTurretVisuals.Weapon, (targetState & DeployableTurretState.Deployed) > 0);
+ _sprite.LayerSetVisible((ent.Owner, sprite), PowerDeviceVisualLayers.Powered, HasAmmo(ent) && targetState == DeployableTurretState.Retracted);
// Change the visual state
switch (targetState)
break;
case DeployableTurretState.Deployed:
- sprite.LayerSetState(DeployableTurretVisuals.Turret, ent.Comp.DeployedState);
+ _sprite.LayerSetRsiState((ent.Owner, sprite), DeployableTurretVisuals.Turret, ent.Comp.DeployedState);
break;
case DeployableTurretState.Retracted:
- sprite.LayerSetState(DeployableTurretVisuals.Turret, ent.Comp.RetractedState);
+ _sprite.LayerSetRsiState((ent.Owner, sprite), DeployableTurretVisuals.Turret, ent.Comp.RetractedState);
break;
}
}
public sealed class DamageMarkerSystem : SharedDamageMarkerSystem
{
[Dependency] private readonly IGameTiming _timing = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
if (!_timing.ApplyingState || component.Effect == null || !TryComp<SpriteComponent>(uid, out var sprite))
return;
- var layer = sprite.LayerMapReserveBlank(DamageMarkerKey.Key);
- sprite.LayerSetState(layer, component.Effect.RsiState, component.Effect.RsiPath);
+ var layer = _sprite.LayerMapReserve((uid, sprite), DamageMarkerKey.Key);
+ _sprite.LayerSetRsi((uid, sprite), layer, component.Effect.RsiPath, component.Effect.RsiState);
}
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;
- sprite.RemoveLayer(weh);
+ _sprite.RemoveLayer((uid, sprite), weh);
}
private enum DamageMarkerKey : byte