summaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/mixinhooks
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-08 13:18:07 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-08 13:18:07 +0200
commit8d03bbe8535488cf1b6ea71c63e765aa7f588c9e (patch)
tree763b1aa5a448aadbc35cdff2d429cf6863ba653a /src/main/java/at/lorenz/mod/mixinhooks
parentc1add9e1afbae366d69721f317d2249aa137dc4b (diff)
downloadskyhanni-8d03bbe8535488cf1b6ea71c63e765aa7f588c9e.tar.gz
skyhanni-8d03bbe8535488cf1b6ea71c63e765aa7f588c9e.tar.bz2
skyhanni-8d03bbe8535488cf1b6ea71c63e765aa7f588c9e.zip
code cleanup
Diffstat (limited to 'src/main/java/at/lorenz/mod/mixinhooks')
-rw-r--r--src/main/java/at/lorenz/mod/mixinhooks/GuiContainerHook.kt61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/mixinhooks/GuiContainerHook.kt b/src/main/java/at/lorenz/mod/mixinhooks/GuiContainerHook.kt
new file mode 100644
index 000000000..101bb56a1
--- /dev/null
+++ b/src/main/java/at/lorenz/mod/mixinhooks/GuiContainerHook.kt
@@ -0,0 +1,61 @@
+package at.lorenz.mod.mixinhooks
+
+import at.lorenz.mod.events.GuiContainerEvent
+import at.lorenz.mod.events.GuiContainerEvent.CloseWindowEvent
+import at.lorenz.mod.events.GuiContainerEvent.SlotClickEvent
+import net.minecraft.client.gui.inventory.GuiContainer
+import net.minecraft.inventory.Slot
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo
+
+class GuiContainerHook(guiAny: Any) {
+
+ val gui: GuiContainer
+
+ init {
+ gui = guiAny as GuiContainer
+ }
+
+ fun closeWindowPressed(ci: CallbackInfo) {
+ if (CloseWindowEvent(gui, gui.inventorySlots).postAndCatch()) ci.cancel()
+ }
+
+ fun backgroundDrawn(mouseX: Int, mouseY: Int, partialTicks: Float, ci: CallbackInfo) {
+ GuiContainerEvent.BackgroundDrawnEvent(
+ gui,
+ gui.inventorySlots,
+ mouseX,
+ mouseY,
+ partialTicks
+ ).postAndCatch()
+ }
+
+ fun foregroundDrawn(mouseX: Int, mouseY: Int, partialTicks: Float, ci: CallbackInfo) {
+ GuiContainerEvent.ForegroundDrawnEvent(gui, gui.inventorySlots, mouseX, mouseY, partialTicks).postAndCatch()
+ }
+
+ fun onDrawSlot(slot: Slot, ci: CallbackInfo) {
+ if (GuiContainerEvent.DrawSlotEvent.Pre(
+ gui,
+ gui.inventorySlots,
+ slot
+ ).postAndCatch()
+ ) ci.cancel()
+ }
+
+ fun onDrawSlotPost(slot: Slot, ci: CallbackInfo) {
+ GuiContainerEvent.DrawSlotEvent.Post(gui, gui.inventorySlots, slot).postAndCatch()
+ }
+
+ fun onMouseClick(slot: Slot?, slotId: Int, clickedButton: Int, clickType: Int, ci: CallbackInfo) {
+ if (
+ SlotClickEvent(
+ gui,
+ gui.inventorySlots,
+ slot,
+ slotId,
+ clickedButton,
+ clickType
+ ).postAndCatch()
+ ) ci.cancel()
+ }
+} \ No newline at end of file