Shuttle console + FTL rework (#24430)

* 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
This commit is contained in:
metalgearsloth
2024-03-03 18:39:19 +11:00
committed by GitHub
parent 2ef38f8a62
commit c5486873db
99 changed files with 4896 additions and 2371 deletions

View File

@@ -2,109 +2,42 @@
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
xmlns:ui="clr-namespace:Content.Client.Shuttles.UI"
Title="{Loc 'shuttle-console-window-title'}"
SetSize="1180 648"
MinSize="788 320">
<GridContainer Columns="3"
HorizontalAlignment="Stretch"
Margin="5 5 5 5">
<BoxContainer Name="LeftDisplay"
VerticalAlignment="Top"
HorizontalAlignment="Left"
MinWidth="256"
MaxWidth="256"
Align="Center"
Orientation="Vertical">
<BoxContainer Orientation="Vertical">
<controls:StripeBack>
<Label Name="DockingPortsLabel" Text="{Loc 'shuttle-console-dock-label'}" HorizontalAlignment="Center"/>
</controls:StripeBack>
<BoxContainer Name="DockPorts"
Orientation="Vertical"/>
</BoxContainer>
<BoxContainer Orientation="Vertical">
<controls:StripeBack>
<Label Name="HyperspaceLabel" Text="{Loc 'shuttle-console-hyperspace-label'}" HorizontalAlignment="Center"/>
</controls:StripeBack>
<BoxContainer Name="HyperspaceDestinations"
Orientation="Vertical"/>
</BoxContainer>
SetSize="960 762"
MinSize="960 762">
<BoxContainer Orientation="Vertical">
<!-- Top row mode buttons -->
<BoxContainer Name="ModeButtons"
Orientation="Horizontal"
HorizontalAlignment="Stretch"
MinSize="52 52"
Margin="5">
<Button Name="NavModeButton"
ToggleMode="True"
HorizontalExpand="True"
VerticalExpand="True"
Text="NAV"
Margin="5"/>
<Button Name="MapModeButton"
ToggleMode="True"
HorizontalExpand="True"
VerticalExpand="True"
Text="MAP"
Margin="5"/>
<Button Name="DockModeButton"
ToggleMode="True"
HorizontalExpand="True"
VerticalExpand="True"
Text="DOCK"
Margin="5"/>
</BoxContainer>
<PanelContainer MinSize="256 256"
HorizontalAlignment = "Stretch"
HorizontalExpand = "True"
VerticalExpand = "True">
<ui:RadarControl Name="RadarScreen"
MouseFilter="Stop"
Margin="4"
HorizontalExpand = "True"
VerticalExpand = "True"/>
<ui:DockingControl Name="DockingScreen"
Visible="False"
MouseFilter="Stop"
Margin="4"
HorizontalExpand = "True"
VerticalExpand = "True"/>
</PanelContainer>
<BoxContainer Name="RightDisplay"
VerticalAlignment="Top"
HorizontalAlignment="Right"
MinWidth="256"
MaxWidth="256"
Align="Center"
Orientation="Vertical">
<controls:StripeBack>
<Label Name="DisplayLabel" Text="{Loc 'shuttle-console-display-label'}" HorizontalAlignment="Center"/>
</controls:StripeBack>
<BoxContainer Name="ReadonlyDisplay">
<GridContainer Columns="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Top">
<Label Text="{Loc 'shuttle-console-ftl-state'}"/>
<Label Name="FTLState"
Text="{Loc 'ftl-shuttle-console-available'}"
HorizontalAlignment="Right"/>
<Label Text="{Loc 'shuttle-console-ftl-timer'}"/>
<Label Name="FTLTimer"
Text="0.0"
HorizontalAlignment="Right"/>
<Label Text="{Loc 'shuttle-console-max-radar'}"/>
<Label Name="MaxRadarRange"
Text="0.0"
HorizontalAlignment="Right"/>
<Label Text="{Loc 'shuttle-console-radar'}"/>
<Label Name="RadarRange"
Text="0.0"
HorizontalAlignment="Right"/>
<Label Text="{Loc 'shuttle-console-position'}"/>
<Label Name="GridPosition"
Text="0.0, 0.0"
Align="Right"/>
<Label Text="{Loc 'shuttle-console-orientation'}"/>
<Label Name="GridOrientation"
Text="0.0"
Align="Right"/>
<Label Text="{Loc 'shuttle-console-linear-velocity'}"/>
<Label Name="GridLinearVelocity"
Text="0.0, 0.0"
Align="Right"/>
<Label Text="{Loc 'shuttle-console-angular-velocity'}"/>
<Label Name="GridAngularVelocity"
Text="0.0"
Align="Right"/>
</GridContainer>
</BoxContainer>
<Button Name="IFFToggle"
Text="{Loc 'shuttle-console-iff-toggle'}"
TextAlign="Center"
ToggleMode="True"/>
<Button Name="DockToggle"
Text="{Loc 'shuttle-console-dock-toggle'}"
TextAlign="Center"
ToggleMode="True"/>
<Button Name="UndockButton"
Text="{Loc 'shuttle-console-undock'}"
TextAlign="Center"
Disabled="True"/>
<!-- Contents box -->
<BoxContainer Name="Contents"
HorizontalAlignment="Stretch"
VerticalExpand="True"
Margin="5">
<ui:NavScreen Name="NavContainer" Visible="False"/>
<ui:MapScreen Name="MapContainer" Visible="False"/>
<ui:DockingScreen Name="DockContainer" Visible="False"/>
</BoxContainer>
</GridContainer>
</BoxContainer>
</controls:FancyWindow>