using Robust.Client.GameObjects;
using Content.Shared.Vehicle;
namespace Content.Client.Vehicle
{
///
/// Controls client-side visuals for
/// vehicles
///
public sealed class VehicleVisualsSystem : VisualizerSystem
{
protected override void OnAppearanceChange(EntityUid uid, VehicleVisualsComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
// First check is for the sprite itself
if (AppearanceSystem.TryGetData(uid, VehicleVisuals.DrawDepth, out var drawDepth, args.Component))
{
args.Sprite.DrawDepth = drawDepth;
}
// Set vehicle layer to animated or not (i.e. are the wheels turning or not)
if (AppearanceSystem.TryGetData(uid, VehicleVisuals.AutoAnimate, out var autoAnimate, args.Component))
{
args.Sprite.LayerSetAutoAnimated(VehicleVisualLayers.AutoAnimate, autoAnimate);
}
}
}
}
public enum VehicleVisualLayers : byte
{
/// Layer for the vehicle's wheels
AutoAnimate,
}