(Re)Adds open bolt animations for gun sprites (#17219)

Co-authored-by: and_a <and_a@DESKTOP-RJENGIR>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
TaralGit
2023-08-12 22:58:07 -07:00
committed by GitHub
parent 82180fd04c
commit 8acac895fc
72 changed files with 726 additions and 353 deletions

View File

@@ -66,7 +66,13 @@ public abstract partial class SharedGunSystem
if (!TryComp<AppearanceComponent>(uid, out var appearance))
return;
Appearance.SetData(uid, AmmoVisuals.MagLoaded, GetMagazineEntity(uid) != null, appearance);
var magEnt = GetMagazineEntity(uid);
Appearance.SetData(uid, AmmoVisuals.MagLoaded, magEnt != null, appearance);
if (magEnt != null)
{
UpdateMagazineAppearance(uid, component, magEnt.Value);
}
}
protected (int, int) GetMagazineCountCapacity(EntityUid uid, MagazineAmmoProviderComponent component)
@@ -124,16 +130,16 @@ public abstract partial class SharedGunSystem
var ammoEv = new GetAmmoCountEvent();
RaiseLocalEvent(magEntity.Value, ref ammoEv);
FinaliseMagazineTakeAmmo(uid, component, args, ammoEv.Count, ammoEv.Capacity, appearance);
FinaliseMagazineTakeAmmo(uid, component, ammoEv.Count, ammoEv.Capacity, args.User, appearance);
}
private void FinaliseMagazineTakeAmmo(EntityUid uid, MagazineAmmoProviderComponent component, TakeAmmoEvent args, int count, int capacity, AppearanceComponent? appearance)
private void FinaliseMagazineTakeAmmo(EntityUid uid, MagazineAmmoProviderComponent component, int count, int capacity, EntityUid? user, AppearanceComponent? appearance)
{
// If no ammo then check for autoeject
if (component.AutoEject && args.Ammo.Count == 0)
if (component.AutoEject && count == 0)
{
EjectMagazine(uid, component);
Audio.PlayPredicted(component.SoundAutoEject, uid, args.User);
Audio.PlayPredicted(component.SoundAutoEject, uid, user);
}
UpdateMagazineAppearance(uid, appearance, true, count, capacity);
@@ -146,12 +152,6 @@ public abstract partial class SharedGunSystem
var count = 0;
var capacity = 0;
if (component is ChamberMagazineAmmoProviderComponent chamber)
{
count = GetChamberEntity(uid) != null ? 1 : 0;
capacity = 1;
}
if (TryComp<AppearanceComponent>(magEnt, out var magAppearance))
{
Appearance.TryGetData<int>(magEnt, AmmoVisuals.AmmoCount, out var addCount, magAppearance);