GunSystem.Magazine.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Content.Shared.Weapons.Ranged;
  2. namespace Content.Client.Weapons.Ranged.Systems;
  3. public sealed partial class GunSystem
  4. {
  5. protected override void InitializeMagazine()
  6. {
  7. base.InitializeMagazine();
  8. SubscribeLocalEvent<MagazineAmmoProviderComponent, UpdateAmmoCounterEvent>(OnMagazineAmmoUpdate);
  9. SubscribeLocalEvent<MagazineAmmoProviderComponent, AmmoCounterControlEvent>(OnMagazineControl);
  10. }
  11. private void OnMagazineAmmoUpdate(EntityUid uid, MagazineAmmoProviderComponent component, UpdateAmmoCounterEvent args)
  12. {
  13. var ent = GetMagazineEntity(uid);
  14. if (ent == null)
  15. {
  16. if (args.Control is DefaultStatusControl control)
  17. {
  18. control.Update(0, 0);
  19. }
  20. return;
  21. }
  22. RaiseLocalEvent(ent.Value, args, false);
  23. }
  24. private void OnMagazineControl(EntityUid uid, MagazineAmmoProviderComponent component, AmmoCounterControlEvent args)
  25. {
  26. var ent = GetMagazineEntity(uid);
  27. if (ent == null)
  28. return;
  29. RaiseLocalEvent(ent.Value, args, false);
  30. }
  31. }