]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Examining now shows Coords on Handheld GPS, Coord readout update frequency increased...
authorArchRBX <5040911+ArchRBX@users.noreply.github.com>
Sun, 13 Apr 2025 15:29:13 +0000 (16:29 +0100)
committerGitHub <noreply@github.com>
Sun, 13 Apr 2025 15:29:13 +0000 (11:29 -0400)
* initial commit

* fixed LoadSaveTicksSaveBagel failure

* fixes issues raised in beck's review, yay!

* remove redundant variable

* removed delay on coordinate update, removed system update loop

* changed delay from 0.2s to 0.5s as travelling at high speeds would make it kinda illegible

* 0.35s seems to be the sweet-spot

* fixes merge conflicts

* remove unused dependencies

* review

---------

Co-authored-by: archrbx <punk.gear5260@fastmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Content.Shared/GPS/Systems/HandheldGpsSystem.cs [new file with mode: 0644]

diff --git a/Content.Shared/GPS/Systems/HandheldGpsSystem.cs b/Content.Shared/GPS/Systems/HandheldGpsSystem.cs
new file mode 100644 (file)
index 0000000..6a8e4c0
--- /dev/null
@@ -0,0 +1,37 @@
+using Content.Shared.GPS.Components;
+using Content.Shared.Examine;
+using Robust.Shared.Map;
+
+namespace Content.Shared.GPS.Systems;
+
+public sealed class HandheldGpsSystem : EntitySystem
+{
+    [Dependency] private readonly SharedTransformSystem _transform = default!;
+
+    /// <inheritdoc/>
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<HandheldGPSComponent, ExaminedEvent>(OnExamine);
+    }
+
+    /// <summary>
+    /// Handles showing the coordinates when a GPS is examined.
+    /// </summary>
+    private void OnExamine(Entity<HandheldGPSComponent> ent, ref ExaminedEvent args)
+    {
+        var posText = "Error";
+
+        var pos = _transform.GetMapCoordinates(ent);
+
+        if (pos.MapId != MapId.Nullspace)
+        {
+            var x = (int) pos.Position.X;
+            var y = (int) pos.Position.Y;
+            posText = $"({x}, {y})";
+        }
+
+        args.PushMarkup(Loc.GetString("handheld-gps-coordinates-title", ("coordinates", posText)));
+    }
+}