diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs index 8bbb7229a7..5c4cae5125 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Ammunition/AmmoComponent.cs @@ -107,7 +107,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition } } - public IEntity TakeBullet(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public IEntity TakeBullet(EntityCoordinates spawnAt) { if (_ammoIsProjectile) { @@ -125,9 +125,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition appearanceComponent.SetData(AmmoVisuals.Spent, true); } - var entity = spawnAtGrid.GetGridId(_entityManager) != GridId.Invalid - ? Owner.EntityManager.SpawnEntity(_projectileId, spawnAtGrid) - : Owner.EntityManager.SpawnEntity(_projectileId, spawnAtMap); + var entity = Owner.EntityManager.SpawnEntity(_projectileId, spawnAt); DebugTools.AssertNotNull(entity); return entity; diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/BoltActionBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/BoltActionBarrelComponent.cs index 001a4e03a5..5fe579ba3b 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/BoltActionBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/BoltActionBarrelComponent.cs @@ -190,7 +190,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels return _chamberContainer.ContainedEntity; } - public override IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public override IEntity TakeProjectile(EntityCoordinates spawnAt) { var chamberEntity = _chamberContainer.ContainedEntity; if (_autoCycle) @@ -202,7 +202,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels Dirty(); } - return chamberEntity?.GetComponent().TakeBullet(spawnAtGrid, spawnAtMap); + return chamberEntity?.GetComponent().TakeBullet(spawnAt); } protected override bool WeaponCanFire() diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/PumpBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/PumpBarrelComponent.cs index ec0f0b047d..06bde9964c 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/PumpBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/PumpBarrelComponent.cs @@ -148,7 +148,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels return _chamberContainer.ContainedEntity; } - public override IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public override IEntity TakeProjectile(EntityCoordinates spawnAt) { var chamberEntity = _chamberContainer.ContainedEntity; if (!_manualCycle) @@ -160,7 +160,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels Dirty(); } - return chamberEntity?.GetComponent().TakeBullet(spawnAtGrid, spawnAtMap); + return chamberEntity?.GetComponent().TakeBullet(spawnAt); } private void Cycle(bool manual = false) diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs index db4bff2693..d45af23d24 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs @@ -203,14 +203,14 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels /// /// /// - public override IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public override IEntity TakeProjectile(EntityCoordinates spawnAt) { var ammo = _ammoSlots[_currentSlot]; IEntity bullet = null; if (ammo != null) { var ammoComponent = ammo.GetComponent(); - bullet = ammoComponent.TakeBullet(spawnAtGrid, spawnAtMap); + bullet = ammoComponent.TakeBullet(spawnAt); if (ammoComponent.Caseless) { _ammoSlots[_currentSlot] = null; diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs index 4e2545e507..d0ef16c060 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs @@ -147,7 +147,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels return ammo; } - public override IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public override IEntity TakeProjectile(EntityCoordinates spawnAt) { var powerCellEntity = _powerCellContainer.ContainedEntity; @@ -173,12 +173,11 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { entity = _ammoContainer.ContainedEntity; _ammoContainer.Remove(entity); + entity.Transform.Coordinates = spawnAt; } else { - entity = Owner.Transform.GridID != GridId.Invalid ? - Owner.EntityManager.SpawnEntity(_ammoPrototype, Owner.Transform.Coordinates) - : Owner.EntityManager.SpawnEntity(_ammoPrototype, Owner.Transform.MapPosition); + entity = Owner.EntityManager.SpawnEntity(_ammoPrototype, spawnAt); } if (entity.TryGetComponent(out ProjectileComponent projectileComponent)) diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs index 7c83614cdc..ea776c6deb 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerMagazineBarrelComponent.cs @@ -210,7 +210,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels return BoltOpen ? null : _chamberContainer.ContainedEntity; } - public override IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap) + public override IEntity TakeProjectile(EntityCoordinates spawnAt) { if (BoltOpen) { @@ -219,7 +219,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels var entity = _chamberContainer.ContainedEntity; Cycle(); - return entity?.GetComponent().TakeBullet(spawnAtGrid, spawnAtMap); + return entity?.GetComponent().TakeBullet(spawnAt); } private void Cycle(bool manual = false) diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs index da4c73e810..c1bc18e064 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs @@ -54,7 +54,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels private TimeSpan _lastFire; public abstract IEntity PeekAmmo(); - public abstract IEntity TakeProjectile(EntityCoordinates spawnAtGrid, MapCoordinates spawnAtMap); + public abstract IEntity TakeProjectile(EntityCoordinates spawnAt); // Recoil / spray control private Angle _minAngle; @@ -230,7 +230,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels } var ammo = PeekAmmo(); - var projectile = TakeProjectile(shooter.Transform.Coordinates, shooter.Transform.MapPosition); + var projectile = TakeProjectile(shooter.Transform.Coordinates); if (projectile == null) { soundSystem.PlayAtCoords(_soundEmpty, Owner.Transform.Coordinates);