Delta-v/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs

30 lines
790 B
C#

using Content.Shared.Weapons.Ranged.Components;
namespace Content.Server.Weapons.Ranged.Systems;
public sealed partial class GunSystem
{
public override void Update(float frameTime)
{
base.Update(frameTime);
/*
* On server because client doesn't want to predict other's guns.
*/
// Automatic firing without stopping if the AutoShootGunComponent component is exist and enabled
var query = EntityQueryEnumerator<AutoShootGunComponent, GunComponent>();
while (query.MoveNext(out var uid, out var autoShoot, out var gun))
{
if (!autoShoot.Enabled)
continue;
if (gun.NextFire > Timing.CurTime)
continue;
AttemptShoot(uid, gun);
}
}
}