aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/util/customgui
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-10-02 16:44:25 +0200
committerLinnea Gräf <nea@nea.moe>2024-10-02 16:44:25 +0200
commit67dd2f68d68ae48d7b9881a34502d6c25e335745 (patch)
treef950229b5a927cdc6912e0dbea8186220bde150a /src/main/kotlin/util/customgui
parenta4eac70118fc25334c9352712fe3c7944b8bed1d (diff)
downloadFirmament-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.kt109
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
+ }
}