From 3953257b7aa78a13157816c91bedb21452dd7ea9 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Tue, 7 Nov 2023 17:24:43 -0800 Subject: [PATCH] Add method to clear an action's cooldown (#21517) --- Content.Shared/Actions/SharedActionsSystem.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) 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) -- 2.51.2