aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/events/DungeonEvents.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/BatEntityMixin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java)20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonMapUtils.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java38
7 files changed, 37 insertions, 36 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index 5558217f..d1aa3153 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -6,7 +6,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.debug.Debug;
import de.hysky.skyblocker.skyblock.*;
import de.hysky.skyblocker.skyblock.dungeon.*;
-import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonSecrets;
+import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.skyblock.dungeon.secrets.SecretsTracker;
import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud;
import de.hysky.skyblocker.skyblock.item.*;
@@ -96,7 +96,7 @@ public class SkyblockerMod implements ClientModInitializer {
FishingHelper.init();
TabHud.init();
DungeonMap.init();
- DungeonSecrets.init();
+ DungeonManager.init();
DungeonBlaze.init();
ChestValue.init();
FireFreezeStaffTimer.init();
diff --git a/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java b/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
index 9efa3607..bf7ba2b2 100644
--- a/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
+++ b/src/main/java/de/hysky/skyblocker/events/DungeonEvents.java
@@ -7,6 +7,7 @@ import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
public class DungeonEvents {
+ // TODO Some rooms such as creeper beam and water board does not get matched
public static final Event<RoomMatched> PUZZLE_MATCHED = EventFactory.createArrayBacked(RoomMatched.class, callbacks -> room -> {
for (RoomMatched callback : callbacks) {
callback.onRoomMatched(room);
diff --git a/src/main/java/de/hysky/skyblocker/mixin/BatEntityMixin.java b/src/main/java/de/hysky/skyblocker/mixin/BatEntityMixin.java
index dc2fa673..fa97e546 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/BatEntityMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/BatEntityMixin.java
@@ -1,6 +1,6 @@
package de.hysky.skyblocker.mixin;
-import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonSecrets;
+import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.mob.AmbientEntity;
import net.minecraft.entity.passive.BatEntity;
@@ -16,6 +16,6 @@ public abstract class BatEntityMixin extends AmbientEntity {
@Override
public void onRemoved() {
super.onRemoved();
- DungeonSecrets.onBatRemoved(this);
+ DungeonManager.onBatRemoved(this);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
index f177d2f8..7f1320c8 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java
@@ -3,8 +3,8 @@ package de.hysky.skyblocker.mixin;
import com.llamalad7.mixinextras.injector.WrapWithCondition;
import com.llamalad7.mixinextras.sugar.Local;
import de.hysky.skyblocker.skyblock.FishingHelper;
+import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.skyblock.waypoint.MythologicalRitual;
-import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonSecrets;
import de.hysky.skyblocker.utils.Utils;
import dev.cbyrne.betterinject.annotations.Inject;
import net.minecraft.client.MinecraftClient;
@@ -28,7 +28,7 @@ public abstract class ClientPlayNetworkHandlerMixin {
@ModifyVariable(method = "onItemPickupAnimation", at = @At(value = "STORE", ordinal = 0))
private ItemEntity skyblocker$onItemPickup(ItemEntity itemEntity, @Local LivingEntity collector) {
- DungeonSecrets.onItemPickup(itemEntity, collector, collector == MinecraftClient.getInstance().player);
+ DungeonManager.onItemPickup(itemEntity, collector, collector == MinecraftClient.getInstance().player);
return itemEntity;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java
index b9e149c6..7705ca46 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java
@@ -75,8 +75,8 @@ import java.util.zip.InflaterInputStream;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.argument;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal;
-public class DungeonSecrets {
- protected static final Logger LOGGER = LoggerFactory.getLogger(DungeonSecrets.class);
+public class DungeonManager {
+ protected static final Logger LOGGER = LoggerFactory.getLogger(DungeonManager.class);
private static final String DUNGEONS_PATH = "dungeons";
private static final Path CUSTOM_WAYPOINTS_DIR = SkyblockerMod.CONFIG_DIR.resolve("custom_secret_waypoints.json");
private static final Pattern KEY_FOUND = Pattern.compile("^(?:\\[.+] )?(?<name>\\w+) has obtained (?<type>Wither|Blood) Key!$");
@@ -199,21 +199,21 @@ public class DungeonSecrets {
return;
}
// Execute with MinecraftClient as executor since we need to wait for MinecraftClient#resourceManager to be set
- CompletableFuture.runAsync(DungeonSecrets::load, MinecraftClient.getInstance()).exceptionally(e -> {
+ CompletableFuture.runAsync(DungeonManager::load, MinecraftClient.getInstance()).exceptionally(e -> {
LOGGER.error("[Skyblocker Dungeon Secrets] Failed to load dungeon secrets", e);
return null;
});
- ClientLifecycleEvents.CLIENT_STOPPING.register(DungeonSecrets::saveCustomWaypoints);
- Scheduler.INSTANCE.scheduleCyclic(DungeonSecrets::update, 10);
- WorldRenderEvents.AFTER_TRANSLUCENT.register(DungeonSecrets::render);
- ClientReceiveMessageEvents.GAME.register(DungeonSecrets::onChatMessage);
- ClientReceiveMessageEvents.GAME_CANCELED.register(DungeonSecrets::onChatMessage);
+ ClientLifecycleEvents.CLIENT_STOPPING.register(DungeonManager::saveCustomWaypoints);
+ Scheduler.INSTANCE.scheduleCyclic(DungeonManager::update, 10);
+ WorldRenderEvents.AFTER_TRANSLUCENT.register(DungeonManager::render);
+ ClientReceiveMessageEvents.GAME.register(DungeonManager::onChatMessage);
+ ClientReceiveMessageEvents.GAME_CANCELED.register(DungeonManager::onChatMessage);
UseBlockCallback.EVENT.register((player, world, hand, hitResult) -> onUseBlock(world, hitResult));
ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(literal(SkyblockerMod.NAMESPACE).then(literal("dungeons").then(literal("secrets")
.then(literal("markAsFound").then(markSecretsCommand(true)))
.then(literal("markAsMissing").then(markSecretsCommand(false)))
- .then(literal("getRelativePos").executes(DungeonSecrets::getRelativePos))
- .then(literal("getRelativeTargetPos").executes(DungeonSecrets::getRelativeTargetPos))
+ .then(literal("getRelativePos").executes(DungeonManager::getRelativePos))
+ .then(literal("getRelativeTargetPos").executes(DungeonManager::getRelativeTargetPos))
.then(literal("addWaypoint").then(addCustomWaypointCommand(false)))
.then(literal("addWaypointRelatively").then(addCustomWaypointCommand(true)))
.then(literal("removeWaypoint").then(removeCustomWaypointCommand(false)))
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonMapUtils.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonMapUtils.java
index 01f2c9fc..516c3bad 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonMapUtils.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonMapUtils.java
@@ -271,7 +271,7 @@ public class DungeonMapUtils {
queue.add(newMapPos);
}
}
- DungeonSecrets.LOGGER.debug("[Skyblocker] Found dungeon room segments: {}", Arrays.toString(segments.toArray()));
+ DungeonManager.LOGGER.debug("[Skyblocker] Found dungeon room segments: {}", Arrays.toString(segments.toArray()));
return segments.toArray(Vector2ic[]::new);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
index 0d3c6a87..fffe1bd2 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
@@ -103,7 +103,7 @@ public class Room {
IntSortedSet segmentsX = IntSortedSets.unmodifiable(new IntRBTreeSet(segments.stream().mapToInt(Vector2ic::x).toArray()));
IntSortedSet segmentsY = IntSortedSets.unmodifiable(new IntRBTreeSet(segments.stream().mapToInt(Vector2ic::y).toArray()));
shape = getShape(segmentsX, segmentsY);
- roomsData = DungeonSecrets.ROOMS_DATA.getOrDefault("catacombs", Collections.emptyMap()).getOrDefault(shape.shape.toLowerCase(), Collections.emptyMap());
+ roomsData = DungeonManager.ROOMS_DATA.getOrDefault("catacombs", Collections.emptyMap()).getOrDefault(shape.shape.toLowerCase(), Collections.emptyMap());
possibleRooms = getPossibleRooms(segmentsX, segmentsY);
}
@@ -191,7 +191,7 @@ public class Room {
}
/**
- * Adds a custom waypoint relative to this room to {@link DungeonSecrets#customWaypoints} and all existing instances of this room.
+ * Adds a custom waypoint relative to this room to {@link DungeonManager#customWaypoints} and all existing instances of this room.
*
* @param secretIndex the index of the secret waypoint
* @param category the category of the secret waypoint
@@ -201,8 +201,8 @@ public class Room {
@SuppressWarnings("JavadocReference")
private void addCustomWaypoint(int secretIndex, SecretWaypoint.Category category, Text waypointName, BlockPos pos) {
SecretWaypoint waypoint = new SecretWaypoint(secretIndex, category, waypointName, pos);
- DungeonSecrets.addCustomWaypoint(name, waypoint);
- DungeonSecrets.getRoomsStream().filter(r -> name.equals(r.getName())).forEach(r -> r.addCustomWaypoint(waypoint));
+ DungeonManager.addCustomWaypoint(name, waypoint);
+ DungeonManager.getRoomsStream().filter(r -> name.equals(r.getName())).forEach(r -> r.addCustomWaypoint(waypoint));
}
/**
@@ -228,7 +228,7 @@ public class Room {
}
/**
- * Removes a custom waypoint relative to this room from {@link DungeonSecrets#customWaypoints} and all existing instances of this room.
+ * Removes a custom waypoint relative to this room from {@link DungeonManager#customWaypoints} and all existing instances of this room.
*
* @param pos the position of the secret waypoint relative to this room
* @return the removed secret waypoint or {@code null} if there was no secret waypoint at the given position
@@ -236,9 +236,9 @@ public class Room {
@SuppressWarnings("JavadocReference")
@Nullable
private SecretWaypoint removeCustomWaypoint(BlockPos pos) {
- SecretWaypoint waypoint = DungeonSecrets.removeCustomWaypoint(name, pos);
+ SecretWaypoint waypoint = DungeonManager.removeCustomWaypoint(name, pos);
if (waypoint != null) {
- DungeonSecrets.getRoomsStream().filter(r -> name.equals(r.getName())).forEach(r -> r.removeCustomWaypoint(waypoint.secretIndex, pos));
+ DungeonManager.getRoomsStream().filter(r -> name.equals(r.getName())).forEach(r -> r.removeCustomWaypoint(waypoint.secretIndex, pos));
}
return waypoint;
}
@@ -290,7 +290,7 @@ public class Room {
// Room scanning and matching
// Logical AND has higher precedence than logical OR
- if (!type.needsScanning() || matchState != MatchState.MATCHING && matchState != MatchState.DOUBLE_CHECKING || !DungeonSecrets.isRoomsLoaded() || findRoom != null && !findRoom.isDone()) {
+ if (!type.needsScanning() || matchState != MatchState.MATCHING && matchState != MatchState.DOUBLE_CHECKING || !DungeonManager.isRoomsLoaded() || findRoom != null && !findRoom.isDone()) {
return;
}
ClientPlayerEntity player = client.player;
@@ -304,7 +304,7 @@ public class Room {
}
}
}).exceptionally(e -> {
- DungeonSecrets.LOGGER.error("[Skyblocker Dungeon Secrets] Encountered an unknown exception while matching room {}", this, e);
+ DungeonManager.LOGGER.error("[Skyblocker Dungeon Secrets] Encountered an unknown exception while matching room {}", this, e);
return null;
});
}
@@ -323,7 +323,7 @@ public class Room {
* <p></p>
* This method:
* <ul>
- * <li> Checks if the block type is included in the dungeon rooms data. See {@link DungeonSecrets#NUMERIC_ID}. </li>
+ * <li> Checks if the block type is included in the dungeon rooms data. See {@link DungeonManager#NUMERIC_ID}. </li>
* <li> For each possible direction: </li>
* <ul>
* <li> Rotate and convert the position to a relative position. See {@link DungeonMapUtils#actualToRelative(Direction, Vector2ic, BlockPos)}. </li>
@@ -364,7 +364,7 @@ public class Room {
* @return whether room matching should end. Either a match is found or there are no valid rooms left
*/
private boolean checkBlock(ClientWorld world, BlockPos pos) {
- byte id = DungeonSecrets.NUMERIC_ID.getByte(Registries.BLOCK.getId(world.getBlockState(pos).getBlock()).toString());
+ byte id = DungeonManager.NUMERIC_ID.getByte(Registries.BLOCK.getId(world.getBlockState(pos).getBlock()).toString());
if (id == 0) {
return false;
}
@@ -383,7 +383,7 @@ public class Room {
if (matchingRoomsSize == 0) {
// If no rooms match, reset the fields and scan again after 50 ticks.
matchState = MatchState.FAILED;
- DungeonSecrets.LOGGER.warn("[Skyblocker Dungeon Secrets] No dungeon room matched after checking {} block(s) including double checking {} block(s)", checkedBlocks.size(), doubleCheckBlocks);
+ DungeonManager.LOGGER.warn("[Skyblocker Dungeon Secrets] No dungeon room matched after checking {} block(s) including double checking {} block(s)", checkedBlocks.size(), doubleCheckBlocks);
Scheduler.INSTANCE.schedule(() -> matchState = MatchState.MATCHING, 50);
reset();
return true;
@@ -394,20 +394,20 @@ public class Room {
name = directionRoom.getRight().get(0);
direction = directionRoom.getLeft();
physicalCornerPos = directionRoom.getMiddle();
- DungeonSecrets.LOGGER.info("[Skyblocker Dungeon Secrets] Room {} matched after checking {} block(s), starting double checking", name, checkedBlocks.size());
+ DungeonManager.LOGGER.info("[Skyblocker Dungeon Secrets] Room {} matched after checking {} block(s), starting double checking", name, checkedBlocks.size());
roomMatched();
return false;
} else if (matchState == MatchState.DOUBLE_CHECKING && ++doubleCheckBlocks >= 10) {
// If double-checked, set state to matched and discard the no longer needed fields.
matchState = MatchState.MATCHED;
DungeonEvents.ROOM_MATCHED.invoker().onRoomMatched(this);
- DungeonSecrets.LOGGER.info("[Skyblocker Dungeon Secrets] Room {} confirmed after checking {} block(s) including double checking {} block(s)", name, checkedBlocks.size(), doubleCheckBlocks);
+ DungeonManager.LOGGER.info("[Skyblocker Dungeon Secrets] Room {} confirmed after checking {} block(s) including double checking {} block(s)", name, checkedBlocks.size(), doubleCheckBlocks);
discard();
return true;
}
return false;
} else {
- DungeonSecrets.LOGGER.debug("[Skyblocker Dungeon Secrets] {} room(s) remaining after checking {} block(s)", matchingRoomsSize, checkedBlocks.size());
+ DungeonManager.LOGGER.debug("[Skyblocker Dungeon Secrets] {} room(s) remaining after checking {} block(s)", matchingRoomsSize, checkedBlocks.size());
return false;
}
}
@@ -424,7 +424,7 @@ public class Room {
}
/**
- * Loads the secret waypoints for the room from {@link DungeonSecrets#waypointsJson} once it has been matched
+ * Loads the secret waypoints for the room from {@link DungeonManager#waypointsJson} once it has been matched
* and sets {@link #matchState} to {@link MatchState#DOUBLE_CHECKING}.
*
* @param directionRooms the direction, position, and name of the room
@@ -432,7 +432,7 @@ public class Room {
@SuppressWarnings("JavadocReference")
private void roomMatched() {
secretWaypoints = HashBasedTable.create();
- for (JsonElement waypointElement : DungeonSecrets.getRoomWaypoints(name)) {
+ for (JsonElement waypointElement : DungeonManager.getRoomWaypoints(name)) {
JsonObject waypoint = waypointElement.getAsJsonObject();
String secretName = waypoint.get("secretName").getAsString();
Matcher secretIndexMatcher = SECRET_INDEX.matcher(secretName);
@@ -440,7 +440,7 @@ public class Room {
BlockPos pos = DungeonMapUtils.relativeToActual(direction, physicalCornerPos, waypoint);
secretWaypoints.put(secretIndex, pos, new SecretWaypoint(secretIndex, waypoint, secretName, pos));
}
- DungeonSecrets.getCustomWaypoints(name).values().forEach(this::addCustomWaypoint);
+ DungeonManager.getCustomWaypoints(name).values().forEach(this::addCustomWaypoint);
matchState = MatchState.DOUBLE_CHECKING;
}
@@ -586,7 +586,7 @@ public class Room {
*/
private void onSecretFound(SecretWaypoint secretWaypoint, String msg, Object... args) {
secretWaypoints.row(secretWaypoint.secretIndex).values().forEach(SecretWaypoint::setFound);
- DungeonSecrets.LOGGER.info(msg, args);
+ DungeonManager.LOGGER.info(msg, args);
}
protected boolean markSecrets(int secretIndex, boolean found) {