]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Salvage magnet shows cooldown time on Examine (revived) (#14007)
authordeltanedas <39013340+deltanedas@users.noreply.github.com>
Fri, 3 Mar 2023 16:25:42 +0000 (16:25 +0000)
committerGitHub <noreply@github.com>
Fri, 3 Mar 2023 16:25:42 +0000 (08:25 -0800)
* Added salvage magnet cooldown time on Examine

* weh

* Style issues

* mirrorcult feedback

---------

Co-authored-by: dmnct <asp1@tuta.io>
Co-authored-by: deltanedas <user@zenith>
Content.Server/Salvage/SalvageSystem.cs
Resources/Locale/en-US/salvage/salvage-system.ftl

index 5c7b2452534f6012ff00688e8164699bf1a1fafd..eb91c42fe3b146422527e1d425ce5b4982b92502 100644 (file)
@@ -141,8 +141,22 @@ namespace Content.Server.Salvage
 
         private void OnExamined(EntityUid uid, SalvageMagnetComponent component, ExaminedEvent args)
         {
+            var gotGrid = false;
+            var remainingTime = TimeSpan.Zero;
+
             if (!args.IsInDetailsRange)
                 return;
+
+            if (Transform(uid).GridUid is EntityUid gridId &&
+                _salvageGridStates.TryGetValue(gridId, out var salvageGridState))
+            {
+                remainingTime = component.MagnetState.Until - salvageGridState.CurrentTime;
+                gotGrid = true;
+            }
+            else
+            {
+                Logger.WarningS("salvage", "Failed to load salvage grid state, can't display remaining time");
+            }
             switch (component.MagnetState.StateType)
             {
                 case MagnetStateType.Inactive:
@@ -155,19 +169,12 @@ namespace Content.Server.Salvage
                     args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-releasing"));
                     break;
                 case MagnetStateType.CoolingDown:
-                    args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-cooling-down"));
+                    if (gotGrid)
+                        args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-cooling-down", ("timeLeft", Math.Ceiling(remainingTime.TotalSeconds))));
                     break;
                 case MagnetStateType.Holding:
-                    var magnetTransform = EntityManager.GetComponent<TransformComponent>(component.Owner);
-                    if (magnetTransform.GridUid is EntityUid gridId && _salvageGridStates.TryGetValue(gridId, out var salvageGridState))
-                    {
-                        var remainingTime = component.MagnetState.Until - salvageGridState.CurrentTime;
+                    if (gotGrid)
                         args.PushMarkup(Loc.GetString("salvage-system-magnet-examined-active", ("timeLeft", Math.Ceiling(remainingTime.TotalSeconds))));
-                    }
-                    else
-                    {
-                        Logger.WarningS("salvage", "Failed to load salvage grid state, can't display remaining time");
-                    }
                     break;
                 default:
                     throw new NotImplementedException("Unexpected magnet state type");
index 91363d56bb3ea916d000199a1e6785482cd60fef..f341fa0d24b55f8dde21287078dfdc83ce60e8c3 100644 (file)
@@ -18,4 +18,4 @@ salvage-system-magnet-examined-active = The salvage magnet is holding salvage in
     *[other] { $timeLeft } seconds.
 }
 salvage-system-magnet-examined-releasing = The salvage magnet is releasing the salvage.
-salvage-system-magnet-examined-cooling-down = The salvage magnet is cooling down.
+salvage-system-magnet-examined-cooling-down = The salvage magnet is cooling down. It will be ready in: {$timeLeft} seconds.