using Content.Shared.Examine;
using Content.Shared.Interaction.Events;
using Content.Shared.Verbs;
-using Content.Shared.Weapons.Ranged.Components;
using Content.Shared.Weapons.Ranged.Events;
using Robust.Shared.Containers;
protected virtual void InitializeMagazine()
{
+ SubscribeLocalEvent<MagazineAmmoProviderComponent, MapInitEvent>(OnMagazineMapInit);
SubscribeLocalEvent<MagazineAmmoProviderComponent, TakeAmmoEvent>(OnMagazineTakeAmmo);
SubscribeLocalEvent<MagazineAmmoProviderComponent, GetAmmoCountEvent>(OnMagazineAmmoCount);
SubscribeLocalEvent<MagazineAmmoProviderComponent, GetVerbsEvent<AlternativeVerb>>(OnMagazineVerb);
SubscribeLocalEvent<MagazineAmmoProviderComponent, ExaminedEvent>(OnMagazineExamine);
}
+ private void OnMagazineMapInit(Entity<MagazineAmmoProviderComponent> ent, ref MapInitEvent args)
+ {
+ MagazineSlotChanged(ent);
+ }
+
private void OnMagazineExamine(EntityUid uid, MagazineAmmoProviderComponent component, ExaminedEvent args)
{
if (!args.IsInDetailsRange)
if (MagazineSlot != args.Container.ID)
return;
- UpdateAmmoCount(uid);
- if (!TryComp<AppearanceComponent>(uid, out var appearance))
+ MagazineSlotChanged((uid, component));
+ }
+
+ private void MagazineSlotChanged(Entity<MagazineAmmoProviderComponent> ent)
+ {
+ UpdateAmmoCount(ent);
+ if (!TryComp<AppearanceComponent>(ent, out var appearance))
return;
- var magEnt = GetMagazineEntity(uid);
- Appearance.SetData(uid, AmmoVisuals.MagLoaded, magEnt != null, appearance);
+ var magEnt = GetMagazineEntity(ent);
+ Appearance.SetData(ent, AmmoVisuals.MagLoaded, magEnt != null, appearance);
if (magEnt != null)
{
- UpdateMagazineAppearance(uid, component, magEnt.Value);
+ UpdateMagazineAppearance(ent, ent, magEnt.Value);
}
}