diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-12-19 15:27:23 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-12-19 15:28:56 +0800 |
commit | a7932307432867082db98956e23535d38fae6084 (patch) | |
tree | 46868914107418b10aae981f37cb5d5528b69c85 /src/main/java/de/hysky/skyblocker/events/DungeonEvents.java | |
parent | f50e9a7fa0cb333f126c8d3faab61838fc111327 (diff) | |
download | Skyblocker-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.java | 30 |
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); + } +} |