&& sign.Current != null
&& _prototypeManager.TryIndex(sign.Current, out var proto))
{
- sprite.LayerSetSprite(0, proto.Icon);
+ SpriteSystem.LayerSetSprite((id, sprite), 0, proto.Icon);
sprite.LayerSetShader(0, "unshaded");
}
else
{
- sprite.LayerSetState(0, "empty");
+ SpriteSystem.LayerSetRsiState((id, sprite), 0, "empty");
sprite.LayerSetShader(0, null, null);
}
}
if (clothing.MappedLayer == null ||
!AppearanceSystem.TryGetData<bool>(ent, FoldableSystem.FoldedVisuals.State, out var folding) ||
- !sprite.LayerMapTryGet(folding ? ent.Comp.FoldingLayer : ent.Comp.UnfoldingLayer, out var idx))
+ !SpriteSystem.LayerMapTryGet((ent.Owner, sprite), folding ? ent.Comp.FoldingLayer : ent.Comp.UnfoldingLayer, out var idx, false))
return;
// add each layer to the visuals
public sealed class FlatpackSystem : SharedFlatpackSystem
{
[Dependency] private readonly AppearanceSystem _appearance = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
/// <inheritdoc/>
public override void Initialize()
}
if (color != null)
- args.Sprite.LayerSetColor(FlatpackVisualLayers.Overlay, color.Value);
+ _sprite.LayerSetColor((ent.Owner, args.Sprite), FlatpackVisualLayers.Overlay, color.Value);
}
}
return;
if (AppearanceSystem.TryGetData<int>(uid, ClusterGrenadeVisuals.GrenadesCounter, out var grenadesCounter, args.Component))
- args.Sprite.LayerSetState(0, $"{comp.State}-{grenadesCounter}");
+ SpriteSystem.LayerSetRsiState((uid, args.Sprite), 0, $"{comp.State}-{grenadesCounter}");
}
}
{
protected override void OnAppearanceChange(EntityUid uid, RecyclerVisualsComponent component, ref AppearanceChangeEvent args)
{
- if (args.Sprite == null || !args.Sprite.LayerMapTryGet(RecyclerVisualLayers.Main, out var layer))
+ if (args.Sprite == null || !SpriteSystem.LayerMapTryGet((uid, args.Sprite), RecyclerVisualLayers.Main, out var layer, false))
return;
AppearanceSystem.TryGetData<ConveyorState>(uid, ConveyorVisuals.State, out var running);
var bloodyKey = bloody ? component.BloodyKey : string.Empty;
var state = $"{component.BaseKey}{activityState}{bloodyKey}";
- args.Sprite.LayerSetState(layer, state);
+ SpriteSystem.LayerSetRsiState((uid, args.Sprite), layer, state);
}
}
protected override void OnAppearanceChange(EntityUid uid, MechAssemblyVisualsComponent component,
ref AppearanceChangeEvent args)
{
- base.OnAppearanceChange(uid, component, ref args);
+ if (args.Sprite == null)
+ return;
if (!AppearanceSystem.TryGetData<int>(uid, MechAssemblyVisuals.State, out var stage, args.Component))
return;
var state = component.StatePrefix + stage;
-
- args.Sprite?.LayerSetState(0, state);
+ SpriteSystem.LayerSetRsiState((uid, args.Sprite), 0, state);
}
}
if (xform.MapID != args.MapId || !sprite.Visible)
continue;
- if (!sprite.LayerMapTryGet(MiningScannerVisualLayers.Overlay, out var idx))
+ if (!_sprite.LayerMapTryGet((ore, sprite), MiningScannerVisualLayers.Overlay, out var idx, false))
continue;
var layer = sprite[idx];
var alpha = animTime < viewerComp.AnimationDuration
? 0
- : (float) Math.Clamp((animTime - viewerComp.AnimationDuration) / viewerComp.AnimationDuration, 0f, 1f);
+ : (float)Math.Clamp((animTime - viewerComp.AnimationDuration) / viewerComp.AnimationDuration, 0f, 1f);
var color = Color.White.WithAlpha(alpha);
- handle.DrawTexture(texture, -(Vector2) texture.Size / 2f / EyeManager.PixelsPerMeter, layer.Rotation, modulate: color);
+ handle.DrawTexture(texture, -(Vector2)texture.Size / 2f / EyeManager.PixelsPerMeter, layer.Rotation, modulate: color);
}
handle.SetTransform(Matrix3x2.Identity);
/// </summary>
public sealed class ClientSpriteMovementSystem : SharedSpriteMovementSystem
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
private EntityQuery<SpriteComponent> _spriteQuery;
public override void Initialize()
{
foreach (var (layer, state) in ent.Comp.MovementLayers)
{
- sprite.LayerSetData(layer, state);
+ _sprite.LayerSetData((ent.Owner, sprite), layer, state);
}
}
else
{
foreach (var (layer, state) in ent.Comp.NoMovementLayers)
{
- sprite.LayerSetData(layer, state);
+ _sprite.LayerSetData((ent.Owner, sprite), layer, state);
}
}
}
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IReflectionManager _reflection = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
private OptionVisualizerOptions _currentOptions;
private void UpdateAllComponents()
{
var query = EntityQueryEnumerator<OptionsVisualizerComponent, SpriteComponent>();
- while (query.MoveNext(out _, out var component, out var sprite))
+ while (query.MoveNext(out var uid, out var component, out var sprite))
{
- UpdateComponent(component, sprite);
+ UpdateComponent(uid, component, sprite);
}
}
if (!TryComp(uid, out SpriteComponent? sprite))
return;
- UpdateComponent(component, sprite);
+ UpdateComponent(uid, component, sprite);
}
- private void UpdateComponent(OptionsVisualizerComponent component, SpriteComponent sprite)
+ private void UpdateComponent(EntityUid uid, OptionsVisualizerComponent component, SpriteComponent sprite)
{
foreach (var (layerKeyRaw, layerData) in component.Visuals)
{
- object layerKey = _reflection.TryParseEnumReference(layerKeyRaw, out var @enum)
- ? @enum
- : layerKeyRaw;
-
OptionsVisualizerComponent.LayerDatum? matchedDatum = null;
foreach (var datum in layerData)
{
if (matchedDatum == null)
continue;
- var layerIndex = sprite.LayerMapReserveBlank(layerKey);
- sprite.LayerSetData(layerIndex, matchedDatum.Data);
+ var layerIndex = _reflection.TryParseEnumReference(layerKeyRaw, out var @enum)
+ ? _sprite.LayerMapReserve((uid, sprite), @enum)
+ : _sprite.LayerMapReserve((uid, sprite), layerKeyRaw);
+
+ _sprite.LayerSetData((uid, sprite), layerIndex, matchedDatum.Data);
}
}
}
public sealed class PinpointerSystem : SharedPinpointerSystem
{
[Dependency] private readonly IEyeManager _eyeManager = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Update(float frameTime)
{
// because eye can change it rotation anytime
// we need to update this arrow in a update loop
var query = EntityQueryEnumerator<PinpointerComponent, SpriteComponent>();
- while (query.MoveNext(out var _, out var pinpointer, out var sprite))
+ while (query.MoveNext(out var uid, out var pinpointer, out var sprite))
{
if (!pinpointer.HasTarget)
continue;
case Distance.Close:
case Distance.Medium:
case Distance.Far:
- sprite.LayerSetRotation(PinpointerLayers.Screen, angle);
+ _sprite.LayerSetRotation((uid, sprite), PinpointerLayers.Screen, angle);
break;
default:
- sprite.LayerSetRotation(PinpointerLayers.Screen, Angle.Zero);
+ _sprite.LayerSetRotation((uid, sprite), PinpointerLayers.Screen, Angle.Zero);
break;
}
}
{
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly ItemCounterSystem _counterSystem = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
for (var i = 0; i < sprite.AllLayers.Count(); i++)
{
- sprite.LayerSetColor(i, color);
+ _sprite.LayerSetColor((uid, sprite), i, color);
}
}
/// <param name="maxCount">The maximum possible number of items in the stack. Will be set to the number of selectable layers.</param>
private static void ApplyThreshold(StackLayerThresholdComponent comp, ref int actual, ref int maxCount)
{
- // We must stop before we run out of thresholds or layers, whichever's smaller.
+ // We must stop before we run out of thresholds or layers, whichever's smaller.
maxCount = Math.Min(comp.Thresholds.Count + 1, maxCount);
var newActual = 0;
foreach (var threshold in comp.Thresholds)
{
public sealed class ToolSystem : SharedToolSystem
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
public override void Initialize()
{
base.Initialize();
{
var current = multiple.Entries[multiple.CurrentEntry];
if (current.Sprite != null)
- sprite.LayerSetSprite(0, current.Sprite);
+ _sprite.LayerSetSprite((uid, sprite), 0, current.Sprite);
}
}
}
{
[Dependency] private readonly IEntityManager _entityManager = default!;
+ private readonly SpriteSystem _sprite;
+
public AlertPrototype Alert { get; }
/// <summary>
MuteSounds = true;
IoCManager.InjectDependencies(this);
+ _sprite = _entityManager.System<SpriteSystem>();
TooltipSupplier = SupplyTooltip;
Alert = alert;
_severity = severity;
{
var msg = FormattedMessage.FromMarkupOrThrow(Loc.GetString(Alert.Name));
var desc = FormattedMessage.FromMarkupOrThrow(Loc.GetString(Alert.Description));
- return new ActionAlertTooltip(msg, desc) {Cooldown = Cooldown};
+ return new ActionAlertTooltip(msg, desc) { Cooldown = Cooldown };
}
/// <summary>
if (!_entityManager.TryGetComponent<SpriteComponent>(_spriteViewEntity, out var sprite))
return;
var icon = Alert.GetIcon(_severity);
- if (sprite.LayerMapTryGet(AlertVisualLayers.Base, out var layer))
- sprite.LayerSetSprite(layer, icon);
+ if (_sprite.LayerMapTryGet((_spriteViewEntity, sprite), AlertVisualLayers.Base, out var layer, false))
+ _sprite.LayerSetSprite((_spriteViewEntity, sprite), layer, icon);
}
protected override void FrameUpdate(FrameEventArgs args)
if (_entityManager.TryGetComponent<SpriteComponent>(_spriteViewEntity, out var sprite))
{
var icon = Alert.GetIcon(_severity);
- if (sprite.LayerMapTryGet(AlertVisualLayers.Base, out var layer))
- sprite.LayerSetSprite(layer, icon);
+ if (_sprite.LayerMapTryGet((_spriteViewEntity, sprite), AlertVisualLayers.Base, out var layer, false))
+ _sprite.LayerSetSprite((_spriteViewEntity, sprite), layer, icon);
}
_icon.SetEntity(_spriteViewEntity);
public sealed class ZombieSystem : SharedZombieSystem
{
[Dependency] private readonly IPrototypeManager _prototype = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
for (var i = 0; i < sprite.AllLayers.Count(); i++)
{
- sprite.LayerSetColor(i, component.SkinColor);
+ _sprite.LayerSetColor((uid, sprite), i, component.SkinColor);
}
}
}