2023-08-24 21:05:56 +03:00
|
|
|
using Content.Shared.Weapons.Ranged.Systems;
|
2024-01-28 18:37:24 +07:00
|
|
|
using Content.Shared._White.Crossbow;
|
2023-08-24 21:05:56 +03:00
|
|
|
using Robust.Client.GameObjects;
|
|
|
|
|
|
2024-01-28 17:32:55 +07:00
|
|
|
namespace Content.Client._White.Crossbow;
|
2023-08-24 21:05:56 +03:00
|
|
|
|
|
|
|
|
public sealed class DrawableSystem : VisualizerSystem<DrawableComponent>
|
|
|
|
|
{
|
|
|
|
|
protected override void OnAppearanceChange(EntityUid uid, DrawableComponent component, ref AppearanceChangeEvent args)
|
|
|
|
|
{
|
|
|
|
|
if (args.Sprite == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var drawn = args.AppearanceData.TryGetValue(DrawableVisuals.Drawn, out var drawnObj) && drawnObj is true;
|
|
|
|
|
|
|
|
|
|
var hasAmmo = args.AppearanceData.TryGetValue(AmmoVisuals.AmmoCount, out var ammoCount) && (int) ammoCount > 0;
|
|
|
|
|
|
|
|
|
|
var state = drawn ? "drawn" : hasAmmo ? "loaded" : "base";
|
|
|
|
|
args.Sprite.LayerSetState(0, state);
|
|
|
|
|
}
|
|
|
|
|
}
|