* Fix TransformComponent.MapPosition warnings in Content.Client * Fix TransformComponent.MapPosition warnings in Content.IntegrationTests * Fix TransformComponent.MapPosition warnings in Content.Shared * Fix TransformComponent.MapPosition warnings in Content.Server * Fix TransformComponent.WorldPosition warnings in Content.Shared * Fix TransformComponent.WorldPosition warnings in Content.Client Excepts ClickableComponent b/c that needs to be ECS'd entirely later * Fix TransformComponent.WorldPosition warnings in Content.Server * Fix TransformComponent.WorldRotation warnings in Content.* * Fix TransformComponent.MapPosition warnings I missed * Fix TransformComponent.WorldMatrix warnings in Content.* * Fix TransformComponent.InvWorldMatrix warnings in Content.* * Fix TransformComponent.GetWorldPositionRotationMatrixWithInv warnings in Content.* * Fix TransformComponent.GetWorldPositionRotationMatrix warnings in Content.* * Fix TransformComponent.GetWorldPositionRotation warnings in Content.* * Fix TransformComponent.Anchored.set warnings in Content.* * Fix TransformComponent.Coordinates.set warnings in Content.* * Fix TransformComponent.LocalPosition.set warnings in Content.* * Fix TransformComponent.AttachToGridOrMap warnings in Content.* * Fix TransformComponent.AttachParent warnings in Content.* * Preempt TransformComponent.LocalRotation.set warnings in Content.Shared * Preempt TransformComponent.LocalRotation.set warnings in Content.Client * Preempt TransformComponent.LocalRotation.set warnings in Content.IntegrationTests * Preempt TransformComponent.LocalRotation.set warnings in Content.Server * Fix/Preempt the remaining obsolete TransformComponent properties/methods in Content.* * ECS ClickableComponent * Fix obsolete SharedTransformSystem methods in Content.* * Fix ExplosionOverlay `SharedTransformSystem` dependency * Maybe fix null eye position breaking tests * MGS requested changes
54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using Content.Client.GPS.Components;
|
|
using Content.Client.Message;
|
|
using Content.Client.Stylesheets;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Shared.Timing;
|
|
|
|
namespace Content.Client.GPS.UI;
|
|
|
|
public sealed class HandheldGpsStatusControl : Control
|
|
{
|
|
private readonly Entity<HandheldGPSComponent> _parent;
|
|
private readonly RichTextLabel _label;
|
|
private float _updateDif;
|
|
private readonly IEntityManager _entMan;
|
|
private readonly SharedTransformSystem _xformSystem;
|
|
|
|
public HandheldGpsStatusControl(Entity<HandheldGPSComponent> parent)
|
|
{
|
|
_parent = parent;
|
|
_entMan = IoCManager.Resolve<IEntityManager>();
|
|
_xformSystem = _entMan.System<SharedTransformSystem>();
|
|
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
|
|
AddChild(_label);
|
|
UpdateGpsDetails();
|
|
}
|
|
|
|
protected override void FrameUpdate(FrameEventArgs args)
|
|
{
|
|
base.FrameUpdate(args);
|
|
|
|
_updateDif += args.DeltaSeconds;
|
|
if (_updateDif < _parent.Comp.UpdateRate)
|
|
return;
|
|
|
|
_updateDif -= _parent.Comp.UpdateRate;
|
|
|
|
UpdateGpsDetails();
|
|
}
|
|
|
|
private void UpdateGpsDetails()
|
|
{
|
|
var posText = "Error";
|
|
if (_entMan.TryGetComponent(_parent, out TransformComponent? transComp))
|
|
{
|
|
var pos = _xformSystem.GetMapCoordinates((_parent, transComp));
|
|
var x = (int) pos.X;
|
|
var y = (int) pos.Y;
|
|
posText = $"({x}, {y})";
|
|
}
|
|
_label.SetMarkup(Loc.GetString("handheld-gps-coordinates-title", ("coordinates", posText)));
|
|
}
|
|
}
|