aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-12-19 15:48:26 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-12-19 16:37:37 +0800
commitb5b1e509d23fbe1e9127110416ea1f467ebb5380 (patch)
treebd646b5ebd179594b66714f1cc9a7ceedf6da03b /src/main/java/de/hysky/skyblocker
parenta7932307432867082db98956e23535d38fae6084 (diff)
downloadSkyblocker-b5b1e509d23fbe1e9127110416ea1f467ebb5380.tar.gz
Skyblocker-b5b1e509d23fbe1e9127110416ea1f467ebb5380.tar.bz2
Skyblocker-b5b1e509d23fbe1e9127110416ea1f467ebb5380.zip
Migrate blaze and tic-tac-toe puzzles
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonBlaze.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/TicTacToe.java15
3 files changed, 27 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index ad5e442f..5558217f 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -124,7 +124,6 @@ public class SkyblockerMod implements ClientModInitializer {
statusBarTracker.init();
Scheduler.INSTANCE.scheduleCyclic(Utils::update, 20);
Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 200);
- Scheduler.INSTANCE.scheduleCyclic(TicTacToe::tick, 4);
Scheduler.INSTANCE.scheduleCyclic(LividColor::update, 10);
Scheduler.INSTANCE.scheduleCyclic(BackpackPreview::tick, 50);
Scheduler.INSTANCE.scheduleCyclic(DwarvenHud::update, 40);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonBlaze.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonBlaze.java
index f49a2f2e..aabef183 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonBlaze.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonBlaze.java
@@ -1,10 +1,12 @@
package de.hysky.skyblocker.skyblock.dungeon;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.events.DungeonEvents;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
import it.unimi.dsi.fastutil.objects.ObjectIntPair;
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.client.MinecraftClient;
@@ -29,20 +31,30 @@ public class DungeonBlaze {
private static final float[] GREEN_COLOR_COMPONENTS = {0.0F, 1.0F, 0.0F};
private static final float[] WHITE_COLOR_COMPONENTS = {1.0f, 1.0f, 1.0f};
+ private static boolean inBlaze;
private static ArmorStandEntity highestBlaze = null;
private static ArmorStandEntity lowestBlaze = null;
private static ArmorStandEntity nextHighestBlaze = null;
private static ArmorStandEntity nextLowestBlaze = null;
public static void init() {
+ DungeonEvents.PUZZLE_MATCHED.register(room -> {
+ if (room.getName().startsWith("blaze-room")) {
+ inBlaze = true;
+ }
+ });
Scheduler.INSTANCE.scheduleCyclic(DungeonBlaze::update, 4);
WorldRenderEvents.BEFORE_DEBUG_RENDER.register(DungeonBlaze::blazeRenderer);
+ ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> inBlaze = false);
}
/**
* Updates the state of Blaze entities and triggers the rendering process if necessary.
*/
public static void update() {
+ if (!inBlaze) {
+ return;
+ }
ClientWorld world = MinecraftClient.getInstance().world;
ClientPlayerEntity player = MinecraftClient.getInstance().player;
if (world == null || player == null || !Utils.isInDungeons()) return;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/TicTacToe.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/TicTacToe.java
index 7f249e7d..2bb3e4e0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/TicTacToe.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/TicTacToe.java
@@ -1,9 +1,12 @@
package de.hysky.skyblocker.skyblock.dungeon;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.events.DungeonEvents;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import de.hysky.skyblocker.utils.scheduler.Scheduler;
import de.hysky.skyblocker.utils.tictactoe.TicTacToeUtils;
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
import net.minecraft.block.Block;
@@ -28,13 +31,25 @@ import java.util.List;
public class TicTacToe {
private static final Logger LOGGER = LoggerFactory.getLogger(TicTacToe.class);
private static final float[] RED_COLOR_COMPONENTS = {1.0F, 0.0F, 0.0F};
+ private static boolean inTicTacToe;
private static Box nextBestMoveToMake = null;
public static void init() {
+ DungeonEvents.PUZZLE_MATCHED.register(room -> {
+ if (room.getName().startsWith("tic-tac-toe")) {
+ inTicTacToe = true;
+ }
+ });
+ Scheduler.INSTANCE.scheduleCyclic(TicTacToe::tick, 4);
WorldRenderEvents.BEFORE_DEBUG_RENDER.register(TicTacToe::solutionRenderer);
+ ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> inTicTacToe = false);
}
public static void tick() {
+ if (!inTicTacToe) {
+ return;
+ }
+
MinecraftClient client = MinecraftClient.getInstance();
ClientWorld world = client.world;
ClientPlayerEntity player = client.player;