mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-06 06:17:26 +00:00
* Add shuttle interior drawing back
Just do it per-tile she'll be right, at least it's done with 1 draw call.
* Revamp shuttle console
* Bunch of cleanup work
* Lables sortito
* dok
* Pixel alignment and colours
* Fix a bunch of drawing bugs
* Shuttle map drawing
* Drawing fixes
* Map parallax working finally
* weh
* Commit all my stuff
* mic
* deez
* Update everything
* Xamlify everything
* uh
* Rudimentary blocker range
* My enemies have succeeded
* Bunch of changes to FTL
* Heaps of cleanup
* Fix FTL bugs
* FTL
* weewoo
* FTL fallback
* wew
* weh
* Basic FTL working
* FTL working
* FTL destination fixes
* a
* Exclusion zones
* Fix drawing / FTL
* Beacons working
* Coordinates drawing
* Fix unknown map names
* Dorks beginning
* State + docking cleanup start
* Basic dock drawing
* Bunch of drawing fixes
* Batching / color fixes
* Cleanup and beacons support
* weh
* weh
* Begin pings
* First draft at map objects
* Map fixup
* Faster drawing
* Fix perf + FTL
* Cached drawing
* Fix drawing
* Best I got
* strips
* Back to lists but with caching
* Final optimisation
* Fix dock bounds
* Docking work
* stinker
* kobolds
* Btns
* Docking vis working
* Fix docking pre-vis
* canasses
* Helldivers 2
* a
* Array life
* Fix
* Fix TODOs
* liltenhead feature club
* dorking
* Merge artifacts
* Last-minute touchup
(cherry picked from commit c5486873db)
86 lines
2.7 KiB
C#
86 lines
2.7 KiB
C#
using Content.Shared.Shuttles.BUIStates;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.Graphics;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared.Map;
|
|
using Robust.Shared.Physics.Components;
|
|
|
|
namespace Content.Client.Shuttles.UI;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class NavScreen : BoxContainer
|
|
{
|
|
[Dependency] private readonly IEntityManager _entManager = default!;
|
|
private SharedTransformSystem _xformSystem;
|
|
|
|
private EntityUid? _shuttleEntity;
|
|
|
|
public NavScreen()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
IoCManager.InjectDependencies(this);
|
|
_xformSystem = _entManager.System<SharedTransformSystem>();
|
|
|
|
IFFToggle.OnToggled += OnIFFTogglePressed;
|
|
IFFToggle.Pressed = NavRadar.ShowIFF;
|
|
|
|
DockToggle.OnToggled += OnDockTogglePressed;
|
|
DockToggle.Pressed = NavRadar.ShowDocks;
|
|
}
|
|
|
|
public void SetShuttle(EntityUid? shuttle)
|
|
{
|
|
_shuttleEntity = shuttle;
|
|
}
|
|
|
|
private void OnIFFTogglePressed(BaseButton.ButtonEventArgs args)
|
|
{
|
|
NavRadar.ShowIFF ^= true;
|
|
args.Button.Pressed = NavRadar.ShowIFF;
|
|
}
|
|
|
|
private void OnDockTogglePressed(BaseButton.ButtonEventArgs args)
|
|
{
|
|
NavRadar.ShowDocks ^= true;
|
|
args.Button.Pressed = NavRadar.ShowDocks;
|
|
}
|
|
|
|
public void UpdateState(NavInterfaceState scc)
|
|
{
|
|
NavRadar.UpdateState(scc);
|
|
}
|
|
|
|
public void SetMatrix(EntityCoordinates? coordinates, Angle? angle)
|
|
{
|
|
_shuttleEntity = coordinates?.EntityId;
|
|
NavRadar.SetMatrix(coordinates, angle);
|
|
}
|
|
|
|
protected override void Draw(DrawingHandleScreen handle)
|
|
{
|
|
base.Draw(handle);
|
|
|
|
if (!_entManager.TryGetComponent(_shuttleEntity, out TransformComponent? gridXform) ||
|
|
!_entManager.TryGetComponent(_shuttleEntity, out PhysicsComponent? gridBody))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var (_, worldRot, worldMatrix) = _xformSystem.GetWorldPositionRotationMatrix(gridXform);
|
|
var worldPos = worldMatrix.Transform(gridBody.LocalCenter);
|
|
|
|
// Get the positive reduced angle.
|
|
var displayRot = -worldRot.Reduced();
|
|
|
|
GridPosition.Text = $"{worldPos.X:0.0}, {worldPos.Y:0.0}";
|
|
GridOrientation.Text = $"{displayRot.Degrees:0.0}";
|
|
|
|
var gridVelocity = gridBody.LinearVelocity;
|
|
gridVelocity = displayRot.RotateVec(gridVelocity);
|
|
// Get linear velocity relative to the console entity
|
|
GridLinearVelocity.Text = $"{gridVelocity.X + 10f * float.Epsilon:0.0}, {gridVelocity.Y + 10f * float.Epsilon:0.0}";
|
|
GridAngularVelocity.Text = $"{-gridBody.AngularVelocity + 10f * float.Epsilon:0.0}";
|
|
}
|
|
}
|