using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects.Systems; namespace Content.Shared.GameObjects.EntitySystems { /// /// Evicts action states with expired cooldowns. /// public class SharedActionSystem : EntitySystem { private const float CooldownCheckIntervalSeconds = 10; private float _timeSinceCooldownCheck; public override void Update(float frameTime) { base.Update(frameTime); _timeSinceCooldownCheck += frameTime; if (_timeSinceCooldownCheck < CooldownCheckIntervalSeconds) return; foreach (var comp in ComponentManager.EntityQuery(false)) { comp.ExpireCooldowns(); } _timeSinceCooldownCheck -= CooldownCheckIntervalSeconds; } } }