using Content.Shared.Actions.Components; using Robust.Shared.GameObjects; namespace Content.Shared.Actions { /// /// 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; } } }