Remove Ammo component references (#19537)

This commit is contained in:
metalgearsloth
2023-09-01 07:33:28 +10:00
committed by GitHub
parent df7d51ef3b
commit 3ab346f471
13 changed files with 35 additions and 21 deletions

View File

@@ -350,7 +350,7 @@ public abstract partial class SharedGunSystem : EntitySystem
EntityUid? user = null,
bool throwItems = false)
{
var shootable = EnsureComp<AmmoComponent>(ammo);
var shootable = EnsureShootable(ammo);
Shoot(gunUid, gun, new List<(EntityUid? Entity, IShootable Shootable)>(1) { (ammo, shootable) }, fromCoordinates, toCoordinates, out userImpulse, user, throwItems);
}
@@ -411,6 +411,20 @@ public abstract partial class SharedGunSystem : EntitySystem
}
}
protected IShootable EnsureShootable(EntityUid uid)
{
if (TryComp<CartridgeAmmoComponent>(uid, out var cartridge))
return cartridge;
return EnsureComp<AmmoComponent>(uid);
}
protected void RemoveShootable(EntityUid uid)
{
RemCompDeferred<CartridgeAmmoComponent>(uid);
RemCompDeferred<AmmoComponent>(uid);
}
protected void MuzzleFlash(EntityUid gun, AmmoComponent component, EntityUid? user = null)
{
var sprite = component.MuzzleFlash;