aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-20 14:08:57 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-30 22:49:56 -0400
commitf51e8de1532b7fe052fe518638f46e9e5c5fd602 (patch)
treeca2433cae45c827eaf0078cc794185cd5c89a3fe /src/main/java/me/xmrvizzy/skyblocker
parent34e4eff0c2c6bdccead09f48d7081980a2dd5da6 (diff)
downloadSkyblocker-f51e8de1532b7fe052fe518638f46e9e5c5fd602.tar.gz
Skyblocker-f51e8de1532b7fe052fe518638f46e9e5c5fd602.tar.bz2
Skyblocker-f51e8de1532b7fe052fe518638f46e9e5c5fd602.zip
Make waypoint categories toggleable
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java22
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/Room.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java34
4 files changed, 45 insertions, 19 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 8da4bb41..6ddbdf65 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -407,8 +407,8 @@ public class SkyblockerConfig implements ConfigData {
}
public static class Dungeons {
- public boolean secretWaypoints = true;
- public boolean noInitSecretWaypoints = false;
+ @ConfigEntry.Gui.CollapsibleObject
+ public SecretWaypoints secretWaypoints = new SecretWaypoints();
@ConfigEntry.Gui.Tooltip()
public boolean croesusHelper = true;
public boolean enableMap = true;
@@ -429,6 +429,24 @@ public class SkyblockerConfig implements ConfigData {
public Terminals terminals = new Terminals();
}
+ public static class SecretWaypoints {
+
+ public boolean enableSecretWaypoints = true;
+ @ConfigEntry.Gui.Tooltip()
+ public boolean noInitSecretWaypoints = false;
+ public boolean enableEntranceWaypoints = true;
+ public boolean enableSuperboomWaypoints = true;
+ public boolean enableChestWaypoints = true;
+ public boolean enableItemWaypoints = true;
+ public boolean enableBatWaypoints = true;
+ public boolean enableWitherWaypoints = true;
+ public boolean enableLeverWaypoints = true;
+ public boolean enableFairySoulWaypoints = true;
+ public boolean enableStonkWaypoints = true;
+ @ConfigEntry.Gui.Tooltip()
+ public boolean enableDefaultWaypoints = true;
+ }
+
public static class LividColor {
@ConfigEntry.Gui.Tooltip()
public boolean enableLividColor = true;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
index 889c2829..11139971 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
@@ -120,7 +120,7 @@ public class DungeonSecrets {
* Use {@link #isRoomsLoaded()} to check for completion of loading.
*/
public static void init() {
- if (SkyblockerConfig.get().locations.dungeons.noInitSecretWaypoints) {
+ if (SkyblockerConfig.get().locations.dungeons.secretWaypoints.noInitSecretWaypoints) {
return;
}
// Execute with MinecraftClient as executor since we need to wait for MinecraftClient#resourceManager to be set
@@ -210,7 +210,7 @@ public class DungeonSecrets {
*/
@SuppressWarnings("JavadocReference")
private static void update() {
- if (!SkyblockerConfig.get().locations.dungeons.secretWaypoints) {
+ if (!SkyblockerConfig.get().locations.dungeons.secretWaypoints.enableSecretWaypoints) {
return;
}
if (!Utils.isInDungeons()) {
@@ -378,7 +378,7 @@ public class DungeonSecrets {
* @return whether dungeon secrets should be processed
*/
private static boolean shouldProcess() {
- return SkyblockerConfig.get().locations.dungeons.secretWaypoints && Utils.isInDungeons();
+ return SkyblockerConfig.get().locations.dungeons.secretWaypoints.enableSecretWaypoints && Utils.isInDungeons();
}
/**
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/Room.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/Room.java
index 0904a7f1..383e246d 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/Room.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/Room.java
@@ -324,7 +324,7 @@ public class Room {
*/
protected void render(WorldRenderContext context) {
for (SecretWaypoint secretWaypoint : secretWaypoints.values()) {
- if (secretWaypoint.isMissing()) {
+ if (secretWaypoint.shouldRender()) {
secretWaypoint.render(context);
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java
index 96fd7374..73a03fbc 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java
@@ -1,6 +1,7 @@
package me.xmrvizzy.skyblocker.skyblock.dungeon.secrets;
import com.google.gson.JsonObject;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.RenderHelper;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.client.MinecraftClient;
@@ -10,6 +11,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import java.util.List;
+import java.util.function.Predicate;
public class SecretWaypoint {
static final List<String> SECRET_ITEMS = List.of("Decoy", "Defuse Kit", "Dungeon Chest Key", "Healing VIII", "Inflatable Jerry", "Spirit Leap", "Training Weights", "Trap", "Treasure Talisman");
@@ -29,8 +31,8 @@ public class SecretWaypoint {
this.missing = true;
}
- public boolean isMissing() {
- return missing;
+ public boolean shouldRender() {
+ return category.isEnabled() && missing;
}
public void setFound() {
@@ -49,19 +51,21 @@ public class SecretWaypoint {
}
enum Category {
- ENTRANCE(0, 255, 0),
- SUPERBOOM(255, 0, 0),
- CHEST(2, 213, 250),
- ITEM(2, 64, 250),
- BAT(142, 66, 0),
- WITHER(30, 30, 30),
- LEVER(250, 217, 2),
- FAIRYSOUL(255, 85, 255),
- STONK(146, 52, 235),
- DEFAULT(190, 255, 252);
+ ENTRANCE(secretWaypoints -> secretWaypoints.enableEntranceWaypoints, 0, 255, 0),
+ SUPERBOOM(secretWaypoints -> secretWaypoints.enableSuperboomWaypoints, 255, 0, 0),
+ CHEST(secretWaypoints -> secretWaypoints.enableChestWaypoints, 2, 213, 250),
+ ITEM(secretWaypoints -> secretWaypoints.enableItemWaypoints, 2, 64, 250),
+ BAT(secretWaypoints -> secretWaypoints.enableBatWaypoints, 142, 66, 0),
+ WITHER(secretWaypoints -> secretWaypoints.enableWitherWaypoints, 30, 30, 30),
+ LEVER(secretWaypoints -> secretWaypoints.enableLeverWaypoints, 250, 217, 2),
+ FAIRYSOUL(secretWaypoints -> secretWaypoints.enableFairySoulWaypoints, 255, 85, 255),
+ STONK(secretWaypoints -> secretWaypoints.enableStonkWaypoints, 146, 52, 235),
+ DEFAULT(secretWaypoints -> secretWaypoints.enableDefaultWaypoints, 190, 255, 252);
+ private final Predicate<SkyblockerConfig.SecretWaypoints> enabledPredicate;
private final float[] colorComponents;
- Category(int... intColorComponents) {
+ Category(Predicate<SkyblockerConfig.SecretWaypoints> enabledPredicate, int... intColorComponents) {
+ this.enabledPredicate = enabledPredicate;
colorComponents = new float[intColorComponents.length];
for (int i = 0; i < intColorComponents.length; i++) {
colorComponents[i] = intColorComponents[i] / 255F;
@@ -90,5 +94,9 @@ public class SecretWaypoint {
boolean needsItemPickup() {
return this == ITEM || this == BAT;
}
+
+ boolean isEnabled() {
+ return enabledPredicate.test(SkyblockerConfig.get().locations.dungeons.secretWaypoints);
+ }
}
}