GunSystem.Battery.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using Content.Shared.Weapons.Ranged.Components;
  2. namespace Content.Client.Weapons.Ranged.Systems;
  3. public sealed partial class GunSystem
  4. {
  5. protected override void InitializeBattery()
  6. {
  7. base.InitializeBattery();
  8. // Hitscan
  9. SubscribeLocalEvent<HitscanBatteryAmmoProviderComponent, AmmoCounterControlEvent>(OnControl);
  10. SubscribeLocalEvent<HitscanBatteryAmmoProviderComponent, UpdateAmmoCounterEvent>(OnAmmoCountUpdate);
  11. // Projectile
  12. SubscribeLocalEvent<ProjectileBatteryAmmoProviderComponent, AmmoCounterControlEvent>(OnControl);
  13. SubscribeLocalEvent<ProjectileBatteryAmmoProviderComponent, UpdateAmmoCounterEvent>(OnAmmoCountUpdate);
  14. }
  15. private void OnAmmoCountUpdate(EntityUid uid, BatteryAmmoProviderComponent component, UpdateAmmoCounterEvent args)
  16. {
  17. if (args.Control is not BoxesStatusControl boxes) return;
  18. boxes.Update(component.Shots, component.Capacity);
  19. }
  20. private void OnControl(EntityUid uid, BatteryAmmoProviderComponent component, AmmoCounterControlEvent args)
  21. {
  22. args.Control = new BoxesStatusControl();
  23. }
  24. }