From: DrSmugleaf Date: Wed, 8 Nov 2023 01:24:43 +0000 (-0800) Subject: Add method to clear an action's cooldown (#21517) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=3953257b7aa78a13157816c91bedb21452dd7ea9;p=space-station-14.git Add method to clear an action's cooldown (#21517) --- diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index d035e6ccfb..666110575a 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -126,6 +126,27 @@ public abstract class SharedActionsSystem : EntitySystem Dirty(actionId.Value, action); } + public void SetCooldown(EntityUid? actionId, TimeSpan cooldown) + { + var start = GameTiming.CurTime; + SetCooldown(actionId, start, start + cooldown); + } + + public void ClearCooldown(EntityUid? actionId) + { + if (actionId == null) + return; + + if (!TryGetActionData(actionId, out var action)) + return; + + if (action.Cooldown is not { } cooldown) + return; + + action.Cooldown = (cooldown.Start, GameTiming.CurTime); + Dirty(actionId.Value, action); + } + public void StartUseDelay(EntityUid? actionId) { if (actionId == null)