diff options
author | Linnea Gräf <nea@nea.moe> | 2024-10-02 16:44:25 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-10-02 16:44:25 +0200 |
commit | 67dd2f68d68ae48d7b9881a34502d6c25e335745 (patch) | |
tree | f950229b5a927cdc6912e0dbea8186220bde150a /src/main/kotlin/util/customgui | |
parent | a4eac70118fc25334c9352712fe3c7944b8bed1d (diff) | |
download | Firmament-67dd2f68d68ae48d7b9881a34502d6c25e335745.tar.gz Firmament-67dd2f68d68ae48d7b9881a34502d6c25e335745.tar.bz2 Firmament-67dd2f68d68ae48d7b9881a34502d6c25e335745.zip |
Make storage overlay scrollbar draggable
Diffstat (limited to 'src/main/kotlin/util/customgui')
-rw-r--r-- | src/main/kotlin/util/customgui/CustomGui.kt | 109 |
1 files changed, 58 insertions, 51 deletions
diff --git a/src/main/kotlin/util/customgui/CustomGui.kt b/src/main/kotlin/util/customgui/CustomGui.kt index f9094b2..5224448 100644 --- a/src/main/kotlin/util/customgui/CustomGui.kt +++ b/src/main/kotlin/util/customgui/CustomGui.kt @@ -1,4 +1,3 @@ - package moe.nea.firmament.util.customgui import me.shedaniel.math.Rectangle @@ -9,64 +8,72 @@ import moe.nea.firmament.events.HandledScreenPushREIEvent abstract class CustomGui { - abstract fun getBounds(): List<Rectangle> + abstract fun getBounds(): List<Rectangle> + + open fun moveSlot(slot: Slot) { + // TODO: return a Pair maybe? worth an investigation + } + + companion object { + @Subscribe + fun onExclusionZone(event: HandledScreenPushREIEvent) { + val customGui = event.screen.customGui ?: return + event.rectangles.addAll(customGui.getBounds()) + } + } - open fun moveSlot(slot: Slot) { - // TODO: return a Pair maybe? worth an investigation - } + open fun render( + drawContext: DrawContext, + delta: Float, + mouseX: Int, + mouseY: Int + ) { + } - companion object { - @Subscribe - fun onExclusionZone(event: HandledScreenPushREIEvent) { - val customGui = event.screen.customGui ?: return - event.rectangles.addAll(customGui.getBounds()) - } - } + open fun mouseClick(mouseX: Double, mouseY: Double, button: Int): Boolean { + return false + } - open fun render( - drawContext: DrawContext, - delta: Float, - mouseX: Int, - mouseY: Int - ) { - } + open fun afterSlotRender(context: DrawContext, slot: Slot) {} + open fun beforeSlotRender(context: DrawContext, slot: Slot) {} + open fun mouseScrolled(mouseX: Double, mouseY: Double, horizontalAmount: Double, verticalAmount: Double): Boolean { + return false + } - open fun mouseClick(mouseX: Double, mouseY: Double, button: Int): Boolean { - return false - } + open fun isClickOutsideBounds(mouseX: Double, mouseY: Double): Boolean { + return getBounds().none { it.contains(mouseX, mouseY) } + } - open fun afterSlotRender(context: DrawContext, slot: Slot) {} - open fun beforeSlotRender(context: DrawContext, slot: Slot) {} - open fun mouseScrolled(mouseX: Double, mouseY: Double, horizontalAmount: Double, verticalAmount: Double): Boolean { - return false - } + open fun isPointWithinBounds( + x: Int, + y: Int, + width: Int, + height: Int, + pointX: Double, + pointY: Double, + ): Boolean { + return getBounds().any { it.contains(pointX, pointY) } && + Rectangle(x, y, width, height).contains(pointX, pointY) + } - open fun isClickOutsideBounds(mouseX: Double, mouseY: Double): Boolean { - return getBounds().none { it.contains(mouseX, mouseY) } - } + open fun isPointOverSlot(slot: Slot, xOffset: Int, yOffset: Int, pointX: Double, pointY: Double): Boolean { + return isPointWithinBounds(slot.x + xOffset, slot.y + yOffset, 16, 16, pointX, pointY) + } - open fun isPointWithinBounds( - x: Int, - y: Int, - width: Int, - height: Int, - pointX: Double, - pointY: Double, - ): Boolean { - return getBounds().any { it.contains(pointX, pointY) } && - Rectangle(x, y, width, height).contains(pointX, pointY) - } + open fun onInit() {} + open fun shouldDrawForeground(): Boolean { + return true + } - open fun isPointOverSlot(slot: Slot, xOffset: Int, yOffset: Int, pointX: Double, pointY: Double): Boolean { - return isPointWithinBounds(slot.x + xOffset, slot.y + yOffset, 16, 16, pointX, pointY) - } + open fun onVoluntaryExit(): Boolean { + return true + } - open fun onInit() {} - open fun shouldDrawForeground(): Boolean { - return true - } + open fun mouseReleased(mouseX: Double, mouseY: Double, button: Int): Boolean { + return false + } - open fun onVoluntaryExit(): Boolean { - return true - } + open fun mouseDragged(mouseX: Double, mouseY: Double, button: Int, deltaX: Double, deltaY: Double): Boolean { + return false + } } |