namespace Content.Client.Shuttles;
/// <summary>
-/// Handles making a thruster visibly turn on/emit an exhaust plume according to its state.
+/// Handles making a thruster visibly turn on/emit an exhaust plume according to its state.
/// </summary>
public sealed class ThrusterSystem : VisualizerSystem<ThrusterComponent>
{
+ [Dependency] private readonly SpriteSystem _sprite = default!;
+
/// <summary>
/// Updates whether or not the thruster is visibly active/thrusting.
/// </summary>
|| !AppearanceSystem.TryGetData<bool>(uid, ThrusterVisualState.State, out var state, args.Component))
return;
- args.Sprite.LayerSetVisible(ThrusterVisualLayers.ThrustOn, state);
+ _sprite.LayerSetVisible((uid, args.Sprite), ThrusterVisualLayers.ThrustOn, state);
SetThrusting(
uid,
state && AppearanceSystem.TryGetData<bool>(uid, ThrusterVisualState.Thrusting, out var thrusting, args.Component) && thrusting,
/// <summary>
/// Sets whether or not the exhaust plume of the thruster is visible or not.
/// </summary>
- private static void SetThrusting(EntityUid _, bool value, SpriteComponent sprite)
+ private void SetThrusting(EntityUid uid, bool value, SpriteComponent sprite)
{
- if (sprite.LayerMapTryGet(ThrusterVisualLayers.Thrusting, out var thrustingLayer))
+ if (_sprite.LayerMapTryGet((uid, sprite), ThrusterVisualLayers.Thrusting, out var thrustingLayer, false))
{
- sprite.LayerSetVisible(thrustingLayer, value);
+ _sprite.LayerSetVisible((uid, sprite), thrustingLayer, value);
}
- if (sprite.LayerMapTryGet(ThrusterVisualLayers.ThrustingUnshaded, out var unshadedLayer))
+ if (_sprite.LayerMapTryGet((uid, sprite), ThrusterVisualLayers.ThrustingUnshaded, out var unshadedLayer, false))
{
- sprite.LayerSetVisible(unshadedLayer, value);
+ _sprite.LayerSetVisible((uid, sprite), unshadedLayer, value);
}
}
}