Make more uids nullable (#5794)

This commit is contained in:
Leon Friedrich
2021-12-26 15:32:45 +13:00
committed by GitHub
parent 83114de0e4
commit afc3ae6335
42 changed files with 161 additions and 204 deletions

View File

@@ -193,19 +193,20 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
public override EntityUid? PeekAmmo()
{
return BoltOpen ? default : _chamberContainer.ContainedEntity;
return BoltOpen ? null : _chamberContainer.ContainedEntity;
}
public override EntityUid? TakeProjectile(EntityCoordinates spawnAt)
{
if (BoltOpen)
{
return default;
return null;
}
var entity = _chamberContainer.ContainedEntity ?? default;
var entity = _chamberContainer.ContainedEntity;
Cycle();
return entity != default ? EntitySystem.Get<GunSystem>().TakeBullet(_entities.GetComponent<AmmoComponent>(entity), spawnAt) : null;
return entity != null ? EntitySystem.Get<GunSystem>().TakeBullet(_entities.GetComponent<AmmoComponent>(entity.Value), spawnAt) : null;
}
private void Cycle(bool manual = false)
@@ -296,7 +297,7 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
}
// Try and pull a round from the magazine to replace the chamber if possible
var magazine = MagazineContainer.ContainedEntity ?? default;
var magazine = MagazineContainer.ContainedEntity;
if (_entities.GetComponentOrNull<RangedMagazineComponent>(magazine)?.TakeAmmo() is not {Valid: true} nextRound)
{
@@ -305,11 +306,11 @@ namespace Content.Server.Weapon.Ranged.Barrels.Components
_chamberContainer.Insert(nextRound);
if (_autoEjectMag && magazine != null && _entities.GetComponent<RangedMagazineComponent>(magazine).ShotsLeft == 0)
if (_autoEjectMag && magazine != null && _entities.GetComponent<RangedMagazineComponent>(magazine.Value).ShotsLeft == 0)
{
SoundSystem.Play(Filter.Pvs(Owner), _soundAutoEject.GetSound(), Owner, AudioParams.Default.WithVolume(-2));
MagazineContainer.Remove(magazine);
MagazineContainer.Remove(magazine.Value);
#pragma warning disable 618
SendNetworkMessage(new MagazineAutoEjectMessage());
#pragma warning restore 618