From 4babe703c7992f891af06ff7d98fa35e347b00db Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 5 Sep 2022 00:31:46 +0700 Subject: [PATCH] BackgroundPanel and better power bar position in item monitor --- .../mc/otm/client/screen/ItemMonitorScreen.kt | 18 ++++-- .../client/screen/panels/BackgroundPanel.kt | 57 ++++++++++++++++++ .../textures/gui/widgets.png | Bin 3051 -> 3126 bytes .../textures/gui/widgets.xcf | 4 +- 4 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/BackgroundPanel.kt diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.kt index 81a145ef0..76c6e3aa8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ItemMonitorScreen.kt @@ -15,6 +15,7 @@ import ru.dbotthepony.mc.otm.client.render.Widgets8 import ru.dbotthepony.mc.otm.client.screen.panels.* import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel import ru.dbotthepony.mc.otm.client.screen.widget.TallHorizontalPowerGaugePanel +import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel import ru.dbotthepony.mc.otm.core.maxScrollDivision import ru.dbotthepony.mc.otm.core.formatReadableNumber import ru.dbotthepony.mc.otm.core.formatSiComponent @@ -187,19 +188,24 @@ class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Comp } } - val bottomStrip = EditablePanel(this, frame, height = AbstractSlotPanel.SIZE) - bottomStrip.dock = Dock.BOTTOM + val leftStrip = BackgroundPanel.padded(this, frame, width = AbstractSlotPanel.SIZE, height = 1f) - BatterySlotPanel(this, bottomStrip, menu.batterySlot).also { - it.dock = Dock.LEFT - it.dockRight = 3f + BatterySlotPanel(this, leftStrip, menu.batterySlot).also { + it.dock = Dock.BOTTOM + leftStrip.height += it.height } - TallHorizontalPowerGaugePanel(this, bottomStrip, menu.powerWidget).also { + WidePowerGaugePanel(this, leftStrip, menu.powerWidget).also { it.dock = Dock.FILL it.dockResize = DockResizeMode.NONE + leftStrip.height += it.height } + leftStrip.height += 3f + + leftStrip.x = -leftStrip.width - 2f + leftStrip.y = frame.height - leftStrip.height + return frame } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/BackgroundPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/BackgroundPanel.kt new file mode 100644 index 000000000..65f4c1225 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/BackgroundPanel.kt @@ -0,0 +1,57 @@ +package ru.dbotthepony.mc.otm.client.screen.panels + +import com.mojang.blaze3d.vertex.PoseStack +import ru.dbotthepony.mc.otm.client.render.StretchingRectangleElement +import ru.dbotthepony.mc.otm.client.render.WidgetLocation +import ru.dbotthepony.mc.otm.client.render.element +import ru.dbotthepony.mc.otm.client.screen.MatteryScreen + +open class BackgroundPanel( + screen: MatteryScreen<*>, + parent: EditablePanel?, + x: Float = 0f, + y: Float = 0f, + width: Float = 10f, + height: Float = 10f, +) : EditablePanel(screen, parent, x, y, width, height) { + init { + dockPadding = DockProperty(3f, 3f, 3f, 3f) + } + + override fun innerRender(stack: PoseStack, mouseX: Float, mouseY: Float, partialTick: Float) { + RECTANGLE.render(stack, width = width, height = height) + } + + companion object { + fun padded( + screen: MatteryScreen<*>, + parent: EditablePanel?, + x: Float = 0f, + y: Float = 0f, + width: Float = 10f, + height: Float = 10f, + ) = BackgroundPanel(screen, parent, x, y, width + 6f, height + 6f) + + fun paddedCenter( + screen: MatteryScreen<*>, + parent: EditablePanel?, + x: Float = 0f, + y: Float = 0f, + width: Float = 10f, + height: Float = 10f, + ) = BackgroundPanel(screen, parent, x - 3f, y - 3f, width + 6f, height + 6f) + + val RECTANGLE = StretchingRectangleElement( + topLeft = WidgetLocation.WIDGETS.element(18f, 24f, 3f, 3f), + topRight = WidgetLocation.WIDGETS.element(27f, 24f, 3f, 3f), + bottomLeft = WidgetLocation.WIDGETS.element(18f, 33f, 3f, 3f), + bottomRight = WidgetLocation.WIDGETS.element(27f, 33f, 3f, 3f), + top = WidgetLocation.WIDGETS.element(21f, 24f, 6f, 2f), + bottom = WidgetLocation.WIDGETS.element(21f, 34f, 6f, 2f), + left = WidgetLocation.WIDGETS.element(18f, 27f, 2f, 6f), + right = WidgetLocation.WIDGETS.element(28f, 27f, 2f, 6f), + middle = WidgetLocation.WIDGETS.element(30f, 12f, 6f, 6f), + padding = DockProperty(-1f, -1f, -1f, -1f) + ) + } +} diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.png b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.png index de2812a3d57245cc92eb48493bbf3f9198303f7f..97c810a1de313a1ea3e6c09f0871b552cda9384e 100644 GIT binary patch delta 1756 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 LU~l#J5$wMJD})(H diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf index d92884c98..1048cb96b 100644 --- a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf +++ b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7b4c94442e8d563837693ab8743838a20c8643979d2e0be369d0784c9a5b9a6a -size 52633 +oid sha256:d1107b9cc8a1a50c4a167b9c8926ed9780a42280eaa97f8ae431f22ff9f34129 +size 53271