30 lines
790 B
C#
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|