aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-12-19 15:27:23 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-12-19 15:28:56 +0800
commita7932307432867082db98956e23535d38fae6084 (patch)
tree46868914107418b10aae981f37cb5d5528b69c85 /src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
parentf50e9a7fa0cb333f126c8d3faab61838fc111327 (diff)
downloadSkyblocker-a7932307432867082db98956e23535d38fae6084.tar.gz
Skyblocker-a7932307432867082db98956e23535d38fae6084.tar.bz2
Skyblocker-a7932307432867082db98956e23535d38fae6084.zip
Add support for puzzle detection through room matching
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/events/DungeonEvents.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/events/DungeonEvents.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java b/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
new file mode 100644
index 00000000..9efa3607
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
@@ -0,0 +1,30 @@
+package de.hysky.skyblocker.events;
+
+import de.hysky.skyblocker.skyblock.dungeon.secrets.Room;
+import net.fabricmc.api.EnvType;
+import net.fabricmc.api.Environment;
+import net.fabricmc.fabric.api.event.Event;
+import net.fabricmc.fabric.api.event.EventFactory;
+
+public class DungeonEvents {
+ public static final Event<RoomMatched> PUZZLE_MATCHED = EventFactory.createArrayBacked(RoomMatched.class, callbacks -> room -> {
+ for (RoomMatched callback : callbacks) {
+ callback.onRoomMatched(room);
+ }
+ });
+
+ public static final Event<RoomMatched> ROOM_MATCHED = EventFactory.createArrayBacked(RoomMatched.class, callbacks -> room -> {
+ for (RoomMatched callback : callbacks) {
+ callback.onRoomMatched(room);
+ }
+ if (room.getType() == Room.Type.PUZZLE) {
+ PUZZLE_MATCHED.invoker().onRoomMatched(room);
+ }
+ });
+
+ @Environment(EnvType.CLIENT)
+ @FunctionalInterface
+ public interface RoomMatched {
+ void onRoomMatched(Room room);
+ }
+}