aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt b/src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt
new file mode 100644
index 0000000..fe16868
--- /dev/null
+++ b/src/main/kotlin/moe/nea/firmament/events/EntityInteractionEvent.kt
@@ -0,0 +1,34 @@
+/*
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+package moe.nea.firmament.events
+
+import net.minecraft.entity.Entity
+import net.minecraft.util.Hand
+
+data class EntityInteractionEvent(
+ val kind: InteractionKind,
+ val entity: Entity,
+ val hand: Hand,
+) : FirmamentEvent() {
+ companion object : FirmamentEventBus<EntityInteractionEvent>()
+ enum class InteractionKind {
+ /**
+ * Is sent when left-clicking an entity
+ */
+ ATTACK,
+
+ /**
+ * Is a fallback when [INTERACT_AT_LOCATION] fails
+ */
+ INTERACT,
+
+ /**
+ * Is tried first on right click
+ */
+ INTERACT_AT_LOCATION,
+ }
+}