diff --git a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/FlexGridPanel.java b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/FlexGridPanel.java index 28e1dd919..b662326d0 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/FlexGridPanel.java +++ b/src/main/java/ru/dbotthepony/mc/otm/client/screen/panels/FlexGridPanel.java @@ -1,11 +1,13 @@ package ru.dbotthepony.mc.otm.client.screen.panels; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import ru.dbotthepony.mc.otm.client.screen.MatteryScreen; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public class FlexGridPanel extends EditablePanel { +public class FlexGridPanel extends EditablePanel { public enum FlexAlign { TOP_LEFT, TOP_CENTER, @@ -23,15 +25,15 @@ public class FlexGridPanel extends EditablePanel { protected FlexAlign align = FlexAlign.MIDDLE_CENTER; public int panels_per_row = 1; - public FlexGridPanel(@Nonnull MatteryScreen screen, @Nullable EditablePanel parent, float x, float y, float width, float height) { + public FlexGridPanel(@Nonnull S screen, @Nullable EditablePanel parent, float x, float y, float width, float height) { super(screen, parent, x, y, width, height); } - public FlexGridPanel(@Nonnull MatteryScreen screen, @Nullable EditablePanel parent, float x, float y) { + public FlexGridPanel(@Nonnull S screen, @Nullable EditablePanel parent, float x, float y) { super(screen, parent, x, y); } - public FlexGridPanel(@Nonnull MatteryScreen screen, @Nullable EditablePanel parent) { + public FlexGridPanel(@Nonnull S screen, @Nullable EditablePanel parent) { super(screen, parent); } @@ -39,7 +41,7 @@ public class FlexGridPanel extends EditablePanel { return align; } - public FlexGridPanel setAlign(FlexAlign align) { + public FlexGridPanel setAlign(FlexAlign align) { this.align = align; return this; } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt index 95b9409d3..feaf12aa3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/AndroidStationScreen.kt @@ -153,7 +153,7 @@ private class Tree(val node: AndroidResearchType<*>) : Iterable { } fun put( - rows: Int2ObjectFunction, + rows: Int2ObjectFunction>, left: Float, capability: MatteryPlayerCapability ): Pair { @@ -247,11 +247,11 @@ private class Tree(val node: AndroidResearchType<*>) : Iterable { } private class AndroidResearchButton( - parent: EditablePanel, + parent: EditablePanel, private val node: AndroidResearch, private val lines: List, private val highlightLines: Map, List> -) :EditablePanel( +): EditablePanel( parent.screen, parent, 0f, @@ -417,8 +417,8 @@ private class AndroidResearchButton( } private enum class PreviewScrollers( - val init: (EditablePanel, Random) -> Unit, - val scroll: (EditablePanel, Random) -> Boolean + val init: (EditablePanel<*>, Random) -> Unit, + val scroll: (EditablePanel<*>, Random) -> Boolean ) { LEFT_TO_RIGHT( init = { it, random -> @@ -472,10 +472,10 @@ private enum class PreviewScrollers( class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - private fun makeCanvas(isPreview: Boolean): DraggableCanvasPanel { - val rows = Int2ObjectAVLTreeMap() + private fun makeCanvas(isPreview: Boolean): DraggableCanvasPanel { + val rows = Int2ObjectAVLTreeMap>() - val canvas = object : DraggableCanvasPanel(this@AndroidStationScreen, null) { + val canvas = object : DraggableCanvasPanel(this@AndroidStationScreen, null) { private val random = Random() private var scroller: PreviewScrollers = PreviewScrollers.values().let { it[random.nextInt(it.size)] } private var firstTick = false @@ -522,7 +522,7 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I for (i in 0 .. tree.height) { rows.computeIfAbsent(i, Int2ObjectFunction { - object : EditablePanel(this@AndroidStationScreen, canvas, 0f, it * 24f, 10000f, 22f) { + object : EditablePanel(this@AndroidStationScreen, canvas, 0f, it * 24f, 10000f, 22f) { override fun mouseClickedInner(x: Double, y: Double, button: Int) = false override fun mouseReleasedInner(x: Double, y: Double, button: Int) = false override fun mouseDraggedInner(x: Double, y: Double, button: Int, xDelta: Double, yDelta: Double) = false @@ -536,7 +536,7 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I for (research in graph.second) { val row = rows.computeIfAbsent(research.researchTreeDepth, Int2ObjectFunction { - object : EditablePanel(this@AndroidStationScreen, canvas, 0f, it * 24f, 10000f, 22f) { + object : EditablePanel(this@AndroidStationScreen, canvas, 0f, it * 24f, 10000f, 22f) { override fun mouseClickedInner(x: Double, y: Double, button: Int) = false override fun mouseReleasedInner(x: Double, y: Double, button: Int) = false override fun mouseDraggedInner(x: Double, y: Double, button: Int, xDelta: Double, yDelta: Double) = false @@ -568,8 +568,8 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I return canvas } - private var research: FramePanel? = null - private var playerStrip: EditablePanel by Delegates.notNull() + private var research: FramePanel? = null + private var playerStrip: EditablePanel by Delegates.notNull() var hoveredResearch: AndroidResearch? = null private fun openResearchTree() { @@ -614,10 +614,10 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I } } - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel { val frame = FramePanel(this, 200f, 108f, title) - object : Label(this@AndroidStationScreen, frame, height = 11f, shadow = true) { + object : Label(this@AndroidStationScreen, frame, height = 11f, shadow = true) { init { dock = Dock.BOTTOM dockTop = 2f diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.kt index 1e8f8a445..8cb61abca 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/BatteryBankScreen.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel class BatteryBankScreen(menu: BatteryBankMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(menu, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel{ + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerLevel, LEFT_MARGIN, GAUGE_TOP_WITHOUT_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/CargoCrateScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/CargoCrateScreen.kt index 8aa9490c9..dcaec248f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/CargoCrateScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/CargoCrateScreen.kt @@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel import ru.dbotthepony.mc.otm.menu.CargoCrateMenu class CargoCrateScreen(menu: CargoCrateMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = FramePanel(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, 22f + 4f + 6f * 18f, getTitle()) val grid = GridPanel(this, frame, 8f, 18f, 9f * 18f, 6f * 18f, 9, 6) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ChemicalGeneratorScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ChemicalGeneratorScreen.kt index af265b0ec..3558493f9 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ChemicalGeneratorScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ChemicalGeneratorScreen.kt @@ -9,14 +9,14 @@ import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel import ru.dbotthepony.mc.otm.menu.ChemicalGeneratorMenu class ChemicalGeneratorScreen(menu: ChemicalGeneratorMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.energy, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) BatterySlotPanel(this, frame, menu.batterySlot, LEFT_MARGIN, SLOT_TOP_UNDER_GAUGE) val self = this - val progress = object : ProgressGaugePanel(self, frame, menu.progress, 78f, PROGRESS_ARROW_TOP) { + val progress = object : ProgressGaugePanel(self, frame, menu.progress, 78f, PROGRESS_ARROW_TOP) { override fun makeTooltip(): MutableList { val list = super.makeTooltip() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.kt index 73fd9059c..225590967 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveRackScreen.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.WidePowerGaugePanel class DriveRackScreen(menu: DriveRackMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.kt index 2546a532e..de9944200 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/DriveViewerScreen.kt @@ -16,11 +16,11 @@ import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak class DriveViewerScreen(menu: DriveViewerMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = FramePanel(this, null, 0f, 0f, FRAME_WIDTH, FRAME_HEIGHT, getTitle()) - val views = ArrayList() - val settings = ArrayList() + val views = ArrayList>() + val settings = ArrayList>() frame.Tab(onOpen = { for (panel in views) { @@ -54,7 +54,7 @@ class DriveViewerScreen(menu: DriveViewerMenu, inventory: Inventory, title: Comp views.add(scrollBar) for (i in 0 until GRID_WIDTH * GRID_HEIGHT) { - object : AbstractSlotPanel(this@DriveViewerScreen, grid, 0f, 0f) { + object : AbstractSlotPanel(this@DriveViewerScreen, grid, 0f, 0f) { override fun getItemStack(): ItemStack { val index = i + scrollBar.scroll * GRID_WIDTH return menu.networkedItemView.sortedView.getOrNull(index)?.stack?.item ?: ItemStack.EMPTY diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/EnergyCounterScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/EnergyCounterScreen.kt index 2a9f3cbe5..f3003f35d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/EnergyCounterScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/EnergyCounterScreen.kt @@ -8,10 +8,10 @@ import ru.dbotthepony.mc.otm.core.formatPower import ru.dbotthepony.mc.otm.menu.EnergyCounterMenu class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! - var label: Label = object : Label(this@EnergyCounterScreen, frame) { + var label: Label = object : Label(this@EnergyCounterScreen, frame) { override fun tick() { super.tick() text = TranslatableComponent( @@ -24,7 +24,7 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.dock = Dock.TOP label.setDockMargin(4f, 0f, 0f, 0f) - label = object : Label(this@EnergyCounterScreen, frame) { + label = object : Label(this@EnergyCounterScreen, frame) { override fun tick() { super.tick() text = TranslatableComponent( @@ -37,7 +37,7 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.dock = Dock.TOP label.setDockMargin(4f, 0f, 0f, 0f) - label = object : Label(this@EnergyCounterScreen, frame) { + label = object : Label(this@EnergyCounterScreen, frame) { override fun tick() { super.tick() text = TranslatableComponent( @@ -50,7 +50,7 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.dock = Dock.TOP label.setDockMargin(4f, 0f, 0f, 0f) - label = object : Label(this@EnergyCounterScreen, frame) { + label = object : Label(this@EnergyCounterScreen, frame) { override fun tick() { super.tick() text = TranslatableComponent( @@ -63,7 +63,7 @@ class EnergyCounterScreen(menu: EnergyCounterMenu, inventory: Inventory, title: label.dock = Dock.TOP label.setDockMargin(4f, 0f, 0f, 0f) - label = object : Label(this@EnergyCounterScreen, frame) { + label = object : Label(this@EnergyCounterScreen, frame) { override fun tick() { super.tick() diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoSuitInventoryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoSuitInventoryScreen.kt index 5f8483e87..f3cda1b92 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoSuitInventoryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/ExoSuitInventoryScreen.kt @@ -15,7 +15,7 @@ import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak @MouseTweaksDisableWheelTweak class ExoSuitInventoryScreen(menu: ExoSuitInventoryMenu) : MatteryScreen(menu, TranslatableComponent("otm.gui.exosuit")) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = FramePanel(this, width = 200f, height = 180f, title = this.title) val toolbeltLine = EditablePanel(this, frame, height = 18f) @@ -23,7 +23,7 @@ class ExoSuitInventoryScreen(menu: ExoSuitInventoryMenu) : MatteryScreen? = null val scrollPanel = DiscreteScrollBarPanel(this, null, maxScroll = { ((menu.playerCombinedInventorySlots.size - 27) + 8) / 9 }, scrollCallback = { @@ -45,7 +45,7 @@ class ExoSuitInventoryScreen(menu: ExoSuitInventoryMenu) : MatteryScreen(this@ExoSuitInventoryScreen, frame, height = 18f * 3f) { override fun mouseScrolledInner(x: Double, y: Double, scroll: Double): Boolean { return scrollPanel.mouseScrolledInner(x, y, scroll) } @@ -113,7 +113,7 @@ class ExoSuitInventoryScreen(menu: ExoSuitInventoryMenu) : MatteryScreen( this@ExoSuitInventoryScreen, craftingCanvas, x = craftingSlotsCanvas.width, 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 34b3279fd..fff5116cb 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 @@ -27,7 +27,7 @@ import yalter.mousetweaks.api.MouseTweaksDisableWheelTweak class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = FramePanel(this@ItemMonitorScreen, null, 0f, 0f, 1f, 1f, getTitle()) val topPanel = EditablePanel(this, frame) @@ -54,7 +54,7 @@ class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Comp gridPanel.dock = Dock.FILL for (i in 0 until ITEM_GRID_WIDTH * ITEM_GRID_HEIGHT) { - object : AbstractSlotPanel(this@ItemMonitorScreen, gridPanel) { + object : AbstractSlotPanel(this@ItemMonitorScreen, gridPanel) { private val index get() = i + viewScrollBar.scroll * ITEM_GRID_WIDTH override fun getItemStack(): ItemStack { @@ -113,7 +113,7 @@ class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Comp SlotPanel(this, craftingGrid, menu.craftingSlots[i]) } - val arrowAndButtons = object : EditablePanel(this@ItemMonitorScreen, bottomPanel, width = ProgressGaugePanel.GAUGE_BACKGROUND.w) { + val arrowAndButtons = object : EditablePanel(this@ItemMonitorScreen, bottomPanel, width = ProgressGaugePanel.GAUGE_BACKGROUND.w) { override fun innerRender(stack: PoseStack, mouseX: Float, mouseY: Float, partialTick: Float) { ProgressGaugePanel.GAUGE_BACKGROUND.render(stack, y = height / 2f - ProgressGaugePanel.GAUGE_BACKGROUND.h / 2f) } @@ -179,7 +179,7 @@ class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Comp craftingHistoryScroll.setDockMargin(left = 2f) for (i in 0 until 9) { - object : AbstractSlotPanel(this@ItemMonitorScreen, craftingHistory) { + object : AbstractSlotPanel(this@ItemMonitorScreen, craftingHistory) { override fun getItemStack(): ItemStack { return ItemStack(Items.ARROW, 42) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.kt index 4e42721fa..bb16af602 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterBottlerScreen.kt @@ -12,9 +12,9 @@ import ru.dbotthepony.mc.otm.menu.MatterBottlerMenu class MatterBottlerScreen(menu: MatterBottlerMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - private var progress: ProgressGaugePanel? = null + private var progress: ProgressGaugePanel? = null - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val p = PowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.kt index 3cdd2c714..a104919dc 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterCapacitorBankScreen.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel class MatterCapacitorBankScreen(p_97741_: MatterCapacitorBankMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = MatterGaugePanel(this, frame, menu.matterGauge, LEFT_MARGIN, GAUGE_TOP_WITHOUT_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.kt index 715464461..f552c883c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterDecomposerScreen.kt @@ -13,7 +13,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel class MatterDecomposerScreen(p_97741_: MatterDecomposerMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = PowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.kt index d4e96d4e3..36d774d29 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterPanelScreen.kt @@ -23,7 +23,7 @@ class MatterPanelScreen( inventory: Inventory, title: Component ) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { var isPatternView = true val frame = FramePanel.padded(this, null, GRID_WIDTH * AbstractSlotPanel.SIZE + ScrollBarConstants.WIDTH + 4f, GRID_HEIGHT * AbstractSlotPanel.SIZE, title) @@ -46,7 +46,7 @@ class MatterPanelScreen( it.tooltip = TranslatableComponent("otm.container.matter_panel.tasks") } - val canvas = object : EditablePanel(this@MatterPanelScreen, frame, width = GRID_WIDTH * AbstractSlotPanel.SIZE) { + val canvas = object : EditablePanel(this@MatterPanelScreen, frame, width = GRID_WIDTH * AbstractSlotPanel.SIZE) { init { dock = Dock.LEFT } @@ -57,7 +57,7 @@ class MatterPanelScreen( } for (row in 0 until GRID_HEIGHT) { - val rowCanvas = object : EditablePanel(this@MatterPanelScreen, canvas, height = AbstractSlotPanel.SIZE) { + val rowCanvas = object : EditablePanel(this@MatterPanelScreen, canvas, height = AbstractSlotPanel.SIZE) { init { dock = Dock.TOP } @@ -68,7 +68,7 @@ class MatterPanelScreen( } for (i in 0 until GRID_WIDTH) { - object : AbstractSlotPanel(this@MatterPanelScreen, rowCanvas) { + object : AbstractSlotPanel(this@MatterPanelScreen, rowCanvas) { init { dock = Dock.LEFT } @@ -127,7 +127,7 @@ class MatterPanelScreen( private fun openTask(task: IReplicationTask<*>) { val frame = FramePanel.padded(this, null, 170f, 20f, TranslatableComponent("otm.container.matter_panel.task")) - object : AbstractSlotPanel(this@MatterPanelScreen, frame) { + object : AbstractSlotPanel(this@MatterPanelScreen, frame) { init { dock = Dock.LEFT } @@ -181,7 +181,7 @@ class MatterPanelScreen( rowControls.dock = Dock.TOP rowControls.dockTop = 3f - object : AbstractSlotPanel(this@MatterPanelScreen, rowInput) { + object : AbstractSlotPanel(this@MatterPanelScreen, rowInput) { init { dock = Dock.LEFT dockRight = 2f @@ -209,7 +209,7 @@ class MatterPanelScreen( } } - val input = object : EditBoxPanel(this@MatterPanelScreen, rowInput) { + val input = object : EditBoxPanel(this@MatterPanelScreen, rowInput) { init { dock = Dock.FILL } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterRecyclerScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterRecyclerScreen.kt index 8379ddc47..a6e9b0a2d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterRecyclerScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterRecyclerScreen.kt @@ -11,7 +11,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel import ru.dbotthepony.mc.otm.menu.MatterRecyclerMenu class MatterRecyclerScreen(menu: MatterRecyclerMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = PowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.kt index cd9ba2e7e..134348d2c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterReplicatorScreen.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel class MatterReplicatorScreen(p_97741_: MatterReplicatorMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = PowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.kt index dc4cf2085..9e3c414ed 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatterScannerScreen.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel class MatterScannerScreen(p_97741_: MatterScannerMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = PowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt index a92e1675a..de57e9d97 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt @@ -32,10 +32,10 @@ import ru.dbotthepony.mc.otm.menu.MatteryMenu abstract class MatteryScreen(menu: T, inventory: Inventory, title: Component) : AbstractContainerScreen(menu, inventory, title) { constructor(menu: T, title: Component) : this(menu, menu.inventory, title) - protected val panels = ArrayDeque() + protected val panels = ArrayDeque>() - var inventoryFrame: FramePanel? = null - var mainFrame: FramePanel? = null + var inventoryFrame: FramePanel>? = null + var mainFrame: FramePanel>? = null private var madeMainFrame = false var itemRenderer: ItemRenderer @@ -51,12 +51,12 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit val quickCraftingType get() = quickCraftingType val isQuickCrafting get() = isQuickCrafting - private val inventorySlotsRows = Int2ObjectAVLTreeMap() + private val inventorySlotsRows = Int2ObjectAVLTreeMap>>() init { if (menu.playerInventorySlots.isNotEmpty() && menu.autoCreateInventoryFrame) { if (menu.playerExoSuitSlots.isEmpty()) { - inventoryFrame = FramePanel(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel) + inventoryFrame = FramePanel>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel) val hotbarStrip = EditablePanel(this, inventoryFrame, height = AbstractSlotPanel.SIZE) hotbarStrip.dock = Dock.BOTTOM @@ -77,9 +77,9 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } } } else { - inventoryFrame = FramePanel(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH_EXTENDED, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel) + inventoryFrame = FramePanel>(this, null, 0f, 0f, INVENTORY_FRAME_WIDTH_EXTENDED, INVENTORY_FRAME_HEIGHT, inventory.displayName).also(this::addPanel) - var slotListCanvas: EditablePanel? = null + var slotListCanvas: EditablePanel>? = null val scrollbar = DiscreteScrollBarPanel(this, inventoryFrame, { ((menu.playerCombinedInventorySlots.size - 27) + 8) / 9 }, { _, old, new -> @@ -99,7 +99,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit menu.ply.matteryPlayer?.exoSuitMenu?.lastScroll = new }) - slotListCanvas = object : EditablePanel(this@MatteryScreen, inventoryFrame, height = AbstractSlotPanel.SIZE * 3f) { + slotListCanvas = object : EditablePanel>(this@MatteryScreen, inventoryFrame, height = AbstractSlotPanel.SIZE * 3f) { override fun mouseScrolledInner(x: Double, y: Double, scroll: Double): Boolean { scrollbar.mouseScrolledInner(x, y, scroll) return true @@ -130,9 +130,9 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } } - protected fun getInventorySlotsRow(index: Int): EditablePanel { + protected fun getInventorySlotsRow(index: Int): EditablePanel> { return inventorySlotsRows.computeIfAbsent(index, Int2ObjectFunction { - val canvas = object : EditablePanel(this@MatteryScreen, null, width = AbstractSlotPanel.SIZE * 9f, height = AbstractSlotPanel.SIZE) { + val canvas = object : EditablePanel>(this@MatteryScreen, null, width = AbstractSlotPanel.SIZE * 9f, height = AbstractSlotPanel.SIZE) { override fun mouseScrolledInner(x: Double, y: Double, scroll: Double): Boolean { return false } @@ -145,7 +145,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit } for (i in 0 .. (8).coerceAtMost(menu.playerCombinedInventorySlots.size - offset - 1)) { - val slot = object : SlotPanel(this@MatteryScreen, canvas, menu.playerCombinedInventorySlots[offset + i]) { + val slot = object : SlotPanel, Slot>(this@MatteryScreen, canvas, menu.playerCombinedInventorySlots[offset + i]) { override fun mouseScrolledInner(x: Double, y: Double, scroll: Double): Boolean { return false } @@ -170,7 +170,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit movePanels() } - fun addPanel(panel: EditablePanel): Boolean { + fun addPanel(panel: EditablePanel>): Boolean { if (!panels.contains(panel)) { panels.addFirst(panel) return true @@ -179,7 +179,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit return false } - fun removePanel(panel: EditablePanel): Boolean { + fun removePanel(panel: EditablePanel>): Boolean { val indexOf = panels.indexOf(panel) if (indexOf != -1) { @@ -195,7 +195,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit * * @param panel panel to be pushed up */ - fun popup(panel: EditablePanel) { + fun popup(panel: EditablePanel>) { val indexOf = panels.indexOf(panel) require(indexOf != -1) { "No such panel $panel" } @@ -215,7 +215,7 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit * * @return FramePanel created, or null */ - protected open fun makeMainFrame(): FramePanel? { + protected open fun makeMainFrame(): FramePanel>? { return FramePanel(this, null, 0f, 0f, DEFAULT_FRAME_WIDTH, DEFAULT_FRAME_HEIGHT, getTitle()) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.kt index 1e9ea4887..9ef311ae5 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PatternStorageScreen.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.client.screen.widget.PatternGaugePanel class PatternStorageScreen(p_97741_: PatternStorageMenu, p_97742_: Inventory, p_97743_: Component) : MatteryScreen(p_97741_, p_97742_, p_97743_) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! val m = PatternGaugePanel(this, frame, menu.storedThis, LEFT_MARGIN, GAUGE_TOP_WITHOUT_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PlatePressScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PlatePressScreen.kt index 746235eac..24cbe87d0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PlatePressScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/PlatePressScreen.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.menu.PlatePressMenu class PlatePressScreen(menu: PlatePressMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageBusScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageBusScreen.kt index ce186d984..5425256a0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageBusScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageBusScreen.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.menu.StorageBusMenu class StorageBusScreen(menu: StorageBusMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageExporterScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageExporterScreen.kt index 12fadc33e..3ffded024 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageExporterScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageExporterScreen.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.menu.StorageExporterMenu class StorageExporterScreen(menu: StorageExporterMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageImporterScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageImporterScreen.kt index 866f259f6..eccb87be7 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageImporterScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StorageImporterScreen.kt @@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.menu.StorageImporterMenu class StorageImporterScreen(menu: StorageImporterMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = super.makeMainFrame()!! WidePowerGaugePanel(this, frame, menu.powerWidget, LEFT_MARGIN, GAUGE_TOP_WITH_SLOT) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StoragePowerSupplierScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StoragePowerSupplierScreen.kt index 4f0a44c30..34b515144 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StoragePowerSupplierScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/StoragePowerSupplierScreen.kt @@ -11,7 +11,7 @@ import ru.dbotthepony.mc.otm.menu.StoragePowerSupplierMenu class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inventory, title: Component) : MatteryScreen(menu, inventory, title) { - override fun makeMainFrame(): FramePanel { + override fun makeMainFrame(): FramePanel> { val frame = FramePanel(this, width = 200f, height = 60f, title) HorizontalPowerGaugePanel(this, frame, menu.powerWidget).also { @@ -33,7 +33,7 @@ class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inve labels.dock = Dock.FILL - object : Label(this@StoragePowerSupplierScreen, labels) { + object : Label(this@StoragePowerSupplierScreen, labels) { init { dock = Dock.TOP } @@ -48,7 +48,7 @@ class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inve } } - object : Label(this@StoragePowerSupplierScreen, labels) { + object : Label(this@StoragePowerSupplierScreen, labels) { init { dock = Dock.TOP } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.kt index 04da77a37..3c79a7c41 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/AbstractSlotPanel.kt @@ -2,6 +2,8 @@ package ru.dbotthepony.mc.otm.client.screen.panels import com.mojang.blaze3d.systems.RenderSystem import com.mojang.blaze3d.vertex.PoseStack +import net.minecraft.client.gui.screens.Screen +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen import net.minecraft.client.renderer.GameRenderer import net.minecraft.network.chat.Component import net.minecraft.world.item.ItemStack @@ -12,17 +14,15 @@ import ru.dbotthepony.mc.otm.client.render.* import ru.dbotthepony.mc.otm.client.screen.MatteryScreen import ru.dbotthepony.mc.otm.core.RGBAColor -abstract class AbstractSlotPanel @JvmOverloads constructor( - screen: MatteryScreen<*>, - parent: EditablePanel?, +abstract class AbstractSlotPanel> @JvmOverloads constructor( + screen: S, + parent: EditablePanel<*>?, x: Float = 0f, y: Float = 0f, width: Float = SIZE, height: Float = SIZE, open val noItemIcon: SkinElement? = null -) : EditablePanel( - screen, parent, x, y, width, height -) { +) : EditablePanel(screen, parent, x, y, width, height) { protected open fun renderSlotBackground(stack: PoseStack, mouseX: Float, mouseY: Float, partialTick: Float) { SLOT_BACKGROUND.render(stack, width = width, height = height) } 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 index 65f4c1225..b48c3606a 100644 --- 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 @@ -1,19 +1,21 @@ package ru.dbotthepony.mc.otm.client.screen.panels import com.mojang.blaze3d.vertex.PoseStack +import net.minecraft.client.gui.screens.Screen +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen 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?, +open class BackgroundPanel( + screen: S, + parent: EditablePanel<*>?, x: Float = 0f, y: Float = 0f, width: Float = 10f, height: Float = 10f, -) : EditablePanel(screen, parent, x, y, width, height) { +) : EditablePanel(screen, parent, x, y, width, height) { init { dockPadding = DockProperty(3f, 3f, 3f, 3f) } @@ -23,18 +25,18 @@ open class BackgroundPanel( } companion object { - fun padded( - screen: MatteryScreen<*>, - parent: EditablePanel?, + fun padded( + screen: S, + 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?, + fun paddedCenter( + screen: S, + parent: EditablePanel<*>?, x: Float = 0f, y: Float = 0f, width: Float = 10f, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt index b89cf86fe..0f5cdf21f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/ButtonPanel.kt @@ -5,6 +5,7 @@ import com.mojang.blaze3d.vertex.PoseStack import net.minecraft.ChatFormatting import net.minecraft.client.gui.components.Button import net.minecraft.client.gui.components.Button.OnPress +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen import net.minecraft.network.chat.Component import ru.dbotthepony.mc.otm.client.playGuiClickSound import ru.dbotthepony.mc.otm.core.TextComponent @@ -16,19 +17,19 @@ import java.util.* import kotlin.collections.ArrayList import kotlin.reflect.KMutableProperty0 -open class ButtonPanel( - screen: MatteryScreen<*>, - parent: EditablePanel?, +open class ButtonPanel>( + screen: S, + parent: EditablePanel<*>?, x: Float = 0f, y: Float = 0f, width: Float = 40f, height: Float = HEIGHT, label: Component -) : MinecraftWidgetPanel