using Content.Client.Weapons.Ranged.Components;
using Content.Shared.Weapons.Ranged.Systems;
using Robust.Client.GameObjects;
namespace Content.Client.Weapons.Ranged.Systems;
public sealed partial class GunSystem
{
private void InitializeSpentAmmo()
SubscribeLocalEvent<SpentAmmoVisualsComponent, AppearanceChangeEvent>(OnSpentAmmoAppearance);
}
private void OnSpentAmmoAppearance(EntityUid uid, SpentAmmoVisualsComponent component, ref AppearanceChangeEvent args)
var sprite = args.Sprite;
if (sprite == null) return;
if (!args.AppearanceData.TryGetValue(AmmoVisuals.Spent, out var varSpent))
return;
var spent = (bool) varSpent;
string state;
if (spent)
state = component.Suffix ? $"{component.State}-spent" : "spent";
else
state = component.State;
sprite.LayerSetState(AmmoVisualLayers.Base, state);
if (sprite.LayerExists(AmmoVisualLayers.Tip)){
sprite.RemoveLayer(AmmoVisualLayers.Tip);