aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/events')
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/ClientTickEvent.kt9
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/InventoryKeyPressEvent.kt5
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/SlotRenderEvent.kt29
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/WidgetInitEvent.kt24
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/WorldLoadEvent.kt8
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/base/CancellableEvent.kt25
-rw-r--r--src/main/kotlin/com/dulkirfabric/events/base/Event.kt9
7 files changed, 71 insertions, 38 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/events/ClientTickEvent.kt b/src/main/kotlin/com/dulkirfabric/events/ClientTickEvent.kt
index f24fdf7..d8184f1 100644
--- a/src/main/kotlin/com/dulkirfabric/events/ClientTickEvent.kt
+++ b/src/main/kotlin/com/dulkirfabric/events/ClientTickEvent.kt
@@ -1,8 +1,5 @@
package com.dulkirfabric.events
-object ClientTickEvent {
- @JvmStatic
- fun get(): ClientTickEvent {
- return this
- }
-} \ No newline at end of file
+import com.dulkirfabric.events.base.Event
+
+object ClientTickEvent: Event() \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/InventoryKeyPressEvent.kt b/src/main/kotlin/com/dulkirfabric/events/InventoryKeyPressEvent.kt
new file mode 100644
index 0000000..f4f9e13
--- /dev/null
+++ b/src/main/kotlin/com/dulkirfabric/events/InventoryKeyPressEvent.kt
@@ -0,0 +1,5 @@
+package com.dulkirfabric.events
+
+import com.dulkirfabric.events.base.CancellableEvent
+
+data class InventoryKeyPressEvent(val keyCode: Int, val scanCode: Int, val modifiers: Int): CancellableEvent() \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/SlotRenderEvent.kt b/src/main/kotlin/com/dulkirfabric/events/SlotRenderEvent.kt
new file mode 100644
index 0000000..3670998
--- /dev/null
+++ b/src/main/kotlin/com/dulkirfabric/events/SlotRenderEvent.kt
@@ -0,0 +1,29 @@
+package com.dulkirfabric.events
+
+import com.dulkirfabric.events.base.CancellableEvent
+import net.minecraft.client.gui.DrawContext
+import net.minecraft.screen.slot.Slot
+
+interface SlotRenderEvent {
+ val context: DrawContext
+ val slot: Slot
+ val mouseX: Int
+ val mouseY: Int
+ val delta: Float
+
+ data class Before(
+ override val context: DrawContext, override val slot: Slot,
+ override val mouseX: Int,
+ override val mouseY: Int,
+ override val delta: Float
+ ) : CancellableEvent(),
+ SlotRenderEvent
+
+ data class After(
+ override val context: DrawContext, override val slot: Slot,
+ override val mouseX: Int,
+ override val mouseY: Int,
+ override val delta: Float
+ ) : CancellableEvent(),
+ SlotRenderEvent
+} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/WidgetInitEvent.kt b/src/main/kotlin/com/dulkirfabric/events/WidgetInitEvent.kt
deleted file mode 100644
index 9a6eebb..0000000
--- a/src/main/kotlin/com/dulkirfabric/events/WidgetInitEvent.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * If it is not possible or desirable to put the notice in a particular
- * file, then You may include the notice in a location (such as a LICENSE
- * file in a relevant directory) where a recipient would be likely to look
- * for such a notice.
- *
- * You may add additional accurate notices of copyright ownership.
- */
-
-package com.dulkirfabric.events
-
-object WidgetInitEvent {
- var initialized = false
-
- @JvmStatic
- fun get(initialized: Boolean): WidgetInitEvent {
- this.initialized = initialized
- return this
- }
-} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/WorldLoadEvent.kt b/src/main/kotlin/com/dulkirfabric/events/WorldLoadEvent.kt
deleted file mode 100644
index 99039a8..0000000
--- a/src/main/kotlin/com/dulkirfabric/events/WorldLoadEvent.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.dulkirfabric.events
-
-object WorldLoadEvent {
- @JvmStatic
- fun get(): WorldLoadEvent {
- return this
- }
-} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/base/CancellableEvent.kt b/src/main/kotlin/com/dulkirfabric/events/base/CancellableEvent.kt
new file mode 100644
index 0000000..1c1ddcd
--- /dev/null
+++ b/src/main/kotlin/com/dulkirfabric/events/base/CancellableEvent.kt
@@ -0,0 +1,25 @@
+package com.dulkirfabric.events.base
+
+import com.dulkirfabric.DulkirModFabric
+import meteordevelopment.orbit.ICancellable
+
+abstract class CancellableEvent: ICancellable {
+
+ var cancelled: Boolean = false
+
+ override fun isCancelled(): Boolean {
+ return cancelled
+ }
+
+ override fun setCancelled(cancelled: Boolean) {
+ this.cancelled = cancelled
+ }
+
+ /**
+ * Posts a given event to the bus and returns whether the user wishes to cancel it
+ */
+ fun post(): Boolean {
+ DulkirModFabric.EVENT_BUS.post(this)
+ return cancelled
+ }
+} \ No newline at end of file
diff --git a/src/main/kotlin/com/dulkirfabric/events/base/Event.kt b/src/main/kotlin/com/dulkirfabric/events/base/Event.kt
new file mode 100644
index 0000000..7671199
--- /dev/null
+++ b/src/main/kotlin/com/dulkirfabric/events/base/Event.kt
@@ -0,0 +1,9 @@
+package com.dulkirfabric.events.base
+
+import com.dulkirfabric.DulkirModFabric
+
+abstract class Event {
+ fun post() {
+ DulkirModFabric.EVENT_BUS.post(this)
+ }
+} \ No newline at end of file