Skip to content

Commit 94ce3ab

Browse files
committed
Add legend to EnrouteScreen
Closes #72 Signed-off-by: Octol1ttle <[email protected]>
1 parent 2833873 commit 94ce3ab

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed

src/main/kotlin/ru/octol1ttle/flightassistant/screen/fms/arrival/ArrivalScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class ArrivalScreen(parent: Screen) : FABaseScreen(parent, Component.translatabl
3737

3838
val minimums = this.addRenderableWidget(SmartStringWidget(baseX, baseY + 64, Component.translatable("menu.flightassistant.fms.arrival.minimums")))
3939
val minimumsEditBox = this.addRenderableWidget(TypeStrictEditBox(minimums.x + minimums.width, minimums.y - 2, baseWidth, baseHeight, state.minimums, { state.minimums = it }, String::toIntOrNullWithFallback,
40-
{ if (state.minimumsType == ArrivalScreenState.MinimumsType.RELATIVE) it > 0 else true }))
40+
{ if (state.minimumsType == ArrivalScreenState.MinimumsType.RELATIVE) it >= 0 else true }))
4141
this.addRenderableWidget(CycleTextOnlyButton(minimumsEditBox.x + minimumsEditBox.width + 5, minimumsEditBox.y + 2, ArrivalScreenState.MinimumsType.entries, state.minimumsType) { state.minimumsType = it; })
4242

4343
val goAroundAltitude = this.addRenderableWidget(SmartStringWidget(baseX, baseY + 80, Component.translatable("menu.flightassistant.fms.arrival.go_around_altitude")))

src/main/kotlin/ru/octol1ttle/flightassistant/screen/fms/enroute/EnrouteScreen.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@ import net.minecraft.ChatFormatting
55
import net.minecraft.client.gui.GuiGraphics
66
import net.minecraft.client.gui.components.Button
77
import net.minecraft.client.gui.components.StringWidget
8+
import net.minecraft.client.gui.components.Tooltip
89
import net.minecraft.client.gui.screens.Screen
910
import net.minecraft.network.chat.CommonComponents
1011
import net.minecraft.network.chat.Component
1112
import net.minecraft.network.chat.Component.literal
1213
import net.minecraft.network.chat.Component.translatable
14+
import net.minecraft.network.chat.Style
1315
import ru.octol1ttle.flightassistant.api.util.extensions.drawMiddleAlignedString
16+
import ru.octol1ttle.flightassistant.api.util.extensions.primaryAdvisoryColor
17+
import ru.octol1ttle.flightassistant.api.util.extensions.setColor
1418
import ru.octol1ttle.flightassistant.impl.computer.autoflight.FlightPlanComputer
1519
import ru.octol1ttle.flightassistant.screen.FABaseScreen
1620
import ru.octol1ttle.flightassistant.screen.components.SmartStringWidget
@@ -44,6 +48,11 @@ class EnrouteScreen(parent: Screen) : FABaseScreen(parent, Component.translatabl
4448
list.rebuildEntries()
4549
}.bounds(this.centerX - 50, this.height - Y0 * 2 + 5, 100, 20).build())
4650

51+
@Suppress("UsePropertyAccessSyntax")
52+
this.addRenderableWidget(SmartStringWidget(10, this.height - 24,
53+
Component.translatable("menu.flightassistant.fms.enroute.legend.hover").setStyle(Style.EMPTY.withItalic(true).withColor(ChatFormatting.GRAY.color!!))
54+
)).setTooltip(Tooltip.create(LEGEND_TOOLTIP_TEXT))
55+
4756
discardChanges = this.addRenderableWidget(Button.builder(Component.translatable("menu.flightassistant.fms.discard_changes")) { _: Button? ->
4857
state = EnrouteScreenState.load(computers.plan)
4958
this.rebuildWidgets()
@@ -79,6 +88,11 @@ class EnrouteScreen(parent: Screen) : FABaseScreen(parent, Component.translatabl
7988
private const val Y0: Int = 30
8089
private const val HOVERING_COLUMNS_MARGIN: Float = 0.75f
8190
private val COLUMNS: Array<Component> = arrayOf(literal("#"), literal("X"), literal("Z"), translatable("short.flightassistant.altitude"), translatable("short.flightassistant.speed"), translatable("short.flightassistant.distance"), translatable("short.flightassistant.time"))
91+
private val LEGEND_TOOLTIP_TEXT: Component = translatable("%s\n%s\n%s",
92+
translatable("menu.flightassistant.fms.enroute.legend.origin", literal(EnrouteWaypointsList.FROM_SYMBOL).setColor(primaryAdvisoryColor)),
93+
translatable("menu.flightassistant.fms.enroute.legend.target", literal(EnrouteWaypointsList.TO_SYMBOL).setColor(primaryAdvisoryColor)),
94+
translatable("menu.flightassistant.fms.enroute.legend.direct-to", literal(EnrouteWaypointsList.DIRECT_TO_SYMBOL).setColor(primaryAdvisoryColor))
95+
)
8296

8397
private var state: EnrouteScreenState = EnrouteScreenState()
8498
}

src/main/kotlin/ru/octol1ttle/flightassistant/screen/fms/enroute/EnrouteWaypointsList.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ class EnrouteWaypointsList(y0: Int, y1: Int, width: Int, val columns: Float, val
111111
private fun getActiveSymbol(): String? {
112112
val active: FlightPlanComputer.EnrouteWaypoint.Active = state.active ?: return null
113113
return when (active) {
114-
FlightPlanComputer.EnrouteWaypoint.Active.ORIGIN -> ""
114+
FlightPlanComputer.EnrouteWaypoint.Active.ORIGIN -> FROM_SYMBOL
115115
FlightPlanComputer.EnrouteWaypoint.Active.TARGET -> {
116-
if (list.state.waypoints.any { it.active == FlightPlanComputer.EnrouteWaypoint.Active.ORIGIN }) ""
116+
if (list.state.waypoints.any { it.active == FlightPlanComputer.EnrouteWaypoint.Active.ORIGIN }) TO_SYMBOL
117117
else DIRECT_TO_SYMBOL
118118
}
119119
}
@@ -137,7 +137,9 @@ class EnrouteWaypointsList(y0: Int, y1: Int, width: Int, val columns: Float, val
137137

138138
companion object {
139139
private const val ITEM_HEIGHT: Int = 12
140-
private const val DIRECT_TO_SYMBOL: String = ""
140+
const val FROM_SYMBOL: String = ""
141+
const val TO_SYMBOL: String = ""
142+
const val DIRECT_TO_SYMBOL: String = ""
141143
private val DIRECT_TO_TOOLTIP_TEXT: Component = Component.translatable("menu.flightassistant.fms.enroute.direct_to")
142144
}
143145
}

src/main/resources/assets/flightassistant/lang/en_us.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,11 @@ menu.flightassistant:
306306
minimum_climb_speed: 'Minimum climb speed: '
307307
enroute:
308308
.: Enroute
309+
legend:
310+
hover: Hover for legend
311+
origin: '%s - FROM waypoint'
312+
target: '%s - TO waypoint'
313+
direct-to: '%s - DIRECT-TO waypoint'
309314
delete_all: Delete all
310315
add_waypoint: Add waypoint
311316
direct_to: Direct-to

src/main/resources/assets/flightassistant/lang/ru_ru.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ menu.flightassistant:
310310
minimum_climb_speed: 'Минимальная скорость набора: '
311311
enroute:
312312
.: Маршрут
313+
legend:
314+
hover: Наведись для легенды
315+
origin: '%s - точка "откуда"'
316+
target: '%s - точка "куда"'
317+
direct-to: '%s - точка "куда" (напрямую)'
313318
delete_all: Удалить все
314319
add_waypoint: Добавить точку
315320
direct_to: Прямо-на

0 commit comments

Comments
 (0)