aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-05-19 11:45:42 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-07-10 15:42:29 -0400
commite1b951f6124c28a5cc1ec9d9ca3416f5104b27b3 (patch)
tree339cf2339cea0faab7b61849e027a2ef7957f7d5 /src
parentd3ca54c64fffc34fa0f100a2f51dbe5314b7b3e1 (diff)
downloadSkyblocker-e1b951f6124c28a5cc1ec9d9ca3416f5104b27b3.tar.gz
Skyblocker-e1b951f6124c28a5cc1ec9d9ca3416f5104b27b3.tar.bz2
Skyblocker-e1b951f6124c28a5cc1ec9d9ca3416f5104b27b3.zip
Simon Says Solver
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java1220
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/DungeonsConfig.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/device/SimonSays.java124
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java10
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json4
7 files changed, 771 insertions, 608 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index f1eb4321..5366daf7 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -14,6 +14,7 @@ import de.hysky.skyblocker.skyblock.chocolatefactory.TimeTowerReminder;
import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager;
import de.hysky.skyblocker.skyblock.crimson.kuudra.Kuudra;
import de.hysky.skyblocker.skyblock.dungeon.*;
+import de.hysky.skyblocker.skyblock.dungeon.device.SimonSays;
import de.hysky.skyblocker.skyblock.dungeon.partyfinder.PartyFinderScreen;
import de.hysky.skyblocker.skyblock.dungeon.puzzle.*;
import de.hysky.skyblocker.skyblock.dungeon.puzzle.boulder.Boulder;
@@ -151,6 +152,7 @@ public class SkyblockerMod implements ClientModInitializer {
Silverfish.init();
IceFill.init();
DungeonScore.init();
+ SimonSays.init();
PartyFinderScreen.initClass();
ChestValue.init();
FireFreezeStaffTimer.init();
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
index 28ace441..36999778 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java
@@ -15,619 +15,633 @@ import net.minecraft.util.Formatting;
public class DungeonsCategory {
- public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
- return ConfigCategory.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons"))
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
+ return ConfigCategory.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons"))
- //Ungrouped Options
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.fancyPartyFinder"))
- .binding(defaults.dungeons.fancyPartyFinder,
- () -> config.dungeons.fancyPartyFinder,
- newValue -> config.dungeons.fancyPartyFinder = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.croesusHelper"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.croesusHelper.@Tooltip")))
- .binding(defaults.dungeons.croesusHelper,
- () -> config.dungeons.croesusHelper,
- newValue -> config.dungeons.croesusHelper = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker.@Tooltip")))
- .binding(defaults.dungeons.playerSecretsTracker,
- () -> config.dungeons.playerSecretsTracker,
- newValue -> config.dungeons.playerSecretsTracker = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.starredMobGlow"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.starredMobGlow.@Tooltip")))
- .binding(defaults.dungeons.starredMobGlow,
- () -> config.dungeons.starredMobGlow,
- newValue -> config.dungeons.starredMobGlow = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes.@Tooltip")))
- .binding(defaults.dungeons.starredMobBoundingBoxes,
- () -> config.dungeons.starredMobBoundingBoxes,
- newValue -> config.dungeons.starredMobBoundingBoxes = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems.@Tooltip")))
- .binding(defaults.dungeons.allowDroppingProtectedItems,
- () -> config.dungeons.allowDroppingProtectedItems,
- newValue -> config.dungeons.allowDroppingProtectedItems = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls.@Tooltip")))
- .binding(defaults.dungeons.hideSoulweaverSkulls,
- () -> config.dungeons.hideSoulweaverSkulls,
- newValue -> config.dungeons.hideSoulweaverSkulls = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
+ //Ungrouped Options
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.fancyPartyFinder"))
+ .binding(defaults.dungeons.fancyPartyFinder,
+ () -> config.dungeons.fancyPartyFinder,
+ newValue -> config.dungeons.fancyPartyFinder = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.croesusHelper"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.croesusHelper.@Tooltip")))
+ .binding(defaults.dungeons.croesusHelper,
+ () -> config.dungeons.croesusHelper,
+ newValue -> config.dungeons.croesusHelper = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.playerSecretsTracker.@Tooltip")))
+ .binding(defaults.dungeons.playerSecretsTracker,
+ () -> config.dungeons.playerSecretsTracker,
+ newValue -> config.dungeons.playerSecretsTracker = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.starredMobGlow"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.starredMobGlow.@Tooltip")))
+ .binding(defaults.dungeons.starredMobGlow,
+ () -> config.dungeons.starredMobGlow,
+ newValue -> config.dungeons.starredMobGlow = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.starredMobBoundingBoxes.@Tooltip")))
+ .binding(defaults.dungeons.starredMobBoundingBoxes,
+ () -> config.dungeons.starredMobBoundingBoxes,
+ newValue -> config.dungeons.starredMobBoundingBoxes = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.allowDroppingProtectedItems.@Tooltip")))
+ .binding(defaults.dungeons.allowDroppingProtectedItems,
+ () -> config.dungeons.allowDroppingProtectedItems,
+ newValue -> config.dungeons.allowDroppingProtectedItems = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.hideSoulweaverSkulls.@Tooltip")))
+ .binding(defaults.dungeons.hideSoulweaverSkulls,
+ () -> config.dungeons.hideSoulweaverSkulls,
+ newValue -> config.dungeons.hideSoulweaverSkulls = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
- // Map
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.enableMap"))
- .binding(defaults.dungeons.dungeonMap.enableMap,
- () -> config.dungeons.dungeonMap.enableMap,
- newValue -> config.dungeons.dungeonMap.enableMap = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Float>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.mapScaling"))
- .binding(defaults.dungeons.dungeonMap.mapScaling,
- () -> config.dungeons.dungeonMap.mapScaling,
- newValue -> config.dungeons.dungeonMap.mapScaling = newValue)
- .controller(FloatFieldControllerBuilder::create)
- .build())
- .option(ButtonOption.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.map.mapScreen"))
- .text(Text.translatable("text.skyblocker.open"))
- .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new DungeonMapConfigScreen(screen)))
- .build())
- .build())
+ // Map
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.enableMap"))
+ .binding(defaults.dungeons.dungeonMap.enableMap,
+ () -> config.dungeons.dungeonMap.enableMap,
+ newValue -> config.dungeons.dungeonMap.enableMap = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Float>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.mapScaling"))
+ .binding(defaults.dungeons.dungeonMap.mapScaling,
+ () -> config.dungeons.dungeonMap.mapScaling,
+ newValue -> config.dungeons.dungeonMap.mapScaling = newValue)
+ .controller(FloatFieldControllerBuilder::create)
+ .build())
+ .option(ButtonOption.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.map.mapScreen"))
+ .text(Text.translatable("text.skyblocker.open"))
+ .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new DungeonMapConfigScreen(screen)))
+ .build())
+ .build())
- // Puzzle Solver
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe.@Tooltip")))
- .binding(defaults.dungeons.puzzleSolvers.solveTicTacToe,
- () -> config.dungeons.puzzleSolvers.solveTicTacToe,
- newValue -> config.dungeons.puzzleSolvers.solveTicTacToe = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveThreeWeirdos"))
- .binding(defaults.dungeons.puzzleSolvers.solveThreeWeirdos,
- () -> config.dungeons.puzzleSolvers.solveThreeWeirdos,
- newValue -> config.dungeons.puzzleSolvers.solveThreeWeirdos = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver.@Tooltip")))
- .binding(defaults.dungeons.puzzleSolvers.creeperSolver,
- () -> config.dungeons.puzzleSolvers.creeperSolver,
- newValue -> config.dungeons.puzzleSolvers.creeperSolver = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard.@Tooltip")))
- .binding(defaults.dungeons.puzzleSolvers.solveWaterboard,
- () -> config.dungeons.puzzleSolvers.solveWaterboard,
- newValue -> config.dungeons.puzzleSolvers.solveWaterboard = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver.@Tooltip")))
- .binding(defaults.dungeons.puzzleSolvers.blazeSolver,
- () -> config.dungeons.puzzleSolvers.blazeSolver,
- newValue -> config.dungeons.puzzleSolvers.blazeSolver = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder.@Tooltip")))
- .binding(defaults.dungeons.puzzleSolvers.solveBoulder,
- () -> config.dungeons.puzzleSolvers.solveBoulder,
- newValue -> config.dungeons.puzzleSolvers.solveBoulder = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveIceFill"))
- .binding(defaults.dungeons.puzzleSolvers.solveIceFill,
- () -> config.dungeons.puzzleSolvers.solveIceFill,
- newValue -> config.dungeons.puzzleSolvers.solveIceFill = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveSilverfish"))
- .binding(defaults.dungeons.puzzleSolvers.solveSilverfish,
- () -> config.dungeons.puzzleSolvers.solveSilverfish,
- newValue -> config.dungeons.puzzleSolvers.solveSilverfish = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTrivia"))
- .binding(defaults.dungeons.puzzleSolvers.solveTrivia,
- () -> config.dungeons.puzzleSolvers.solveTrivia,
- newValue -> config.dungeons.puzzleSolvers.solveTrivia = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .build())
+ // Puzzle Solver
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveTicTacToe.@Tooltip")))
+ .binding(defaults.dungeons.puzzleSolvers.solveTicTacToe,
+ () -> config.dungeons.puzzleSolvers.solveTicTacToe,
+ newValue -> config.dungeons.puzzleSolvers.solveTicTacToe = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveThreeWeirdos"))
+ .binding(defaults.dungeons.puzzleSolvers.solveThreeWeirdos,
+ () -> config.dungeons.puzzleSolvers.solveThreeWeirdos,
+ newValue -> config.dungeons.puzzleSolvers.solveThreeWeirdos = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.creeperSolver.@Tooltip")))
+ .binding(defaults.dungeons.puzzleSolvers.creeperSolver,
+ () -> config.dungeons.puzzleSolvers.creeperSolver,
+ newValue -> config.dungeons.puzzleSolvers.creeperSolver = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveWaterboard.@Tooltip")))
+ .binding(defaults.dungeons.puzzleSolvers.solveWaterboard,
+ () -> config.dungeons.puzzleSolvers.solveWaterboard,
+ newValue -> config.dungeons.puzzleSolvers.solveWaterboard = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.blazeSolver.@Tooltip")))
+ .binding(defaults.dungeons.puzzleSolvers.blazeSolver,
+ () -> config.dungeons.puzzleSolvers.blazeSolver,
+ newValue -> config.dungeons.puzzleSolvers.blazeSolver = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.puzzle.solveBoulder.@Tooltip")))
+ .binding(defaults.dungeons.puzzleSolvers.solveBoulder,
+ () -> config.dungeons.puzzleSolvers.solveBoulder,
+ newValue -> config.dungeons.puzzleSolvers.solveBoulder = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveIceFill"))
+ .binding(defaults.dungeons.puzzleSolvers.solveIceFill,
+ () -> config.dungeons.puzzleSolvers.solveIceFill,
+ newValue -> config.dungeons.puzzleSolvers.solveIceFill = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveSilverfish"))
+ .binding(defaults.dungeons.puzzleSolvers.solveSilverfish,
+ () -> config.dungeons.puzzleSolvers.solveSilverfish,
+ newValue -> config.dungeons.puzzleSolvers.solveSilverfish = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.puzzle.solveTrivia"))
+ .binding(defaults.dungeons.puzzleSolvers.solveTrivia,
+ () -> config.dungeons.puzzleSolvers.solveTrivia,
+ newValue -> config.dungeons.puzzleSolvers.solveTrivia = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
- // The Professor (F3/M3)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer.@Tooltip")))
- .binding(defaults.dungeons.theProfessor.fireFreezeStaffTimer,
- () -> config.dungeons.theProfessor.fireFreezeStaffTimer,
- newValue -> config.dungeons.theProfessor.fireFreezeStaffTimer = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay.@Tooltip")))
- .binding(defaults.dungeons.theProfessor.floor3GuardianHealthDisplay,
- () -> config.dungeons.theProfessor.floor3GuardianHealthDisplay,
- newValue -> config.dungeons.theProfessor.floor3GuardianHealthDisplay = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .build())
+ // The Professor (F3/M3)
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.professor.fireFreezeStaffTimer.@Tooltip")))
+ .binding(defaults.dungeons.theProfessor.fireFreezeStaffTimer,
+ () -> config.dungeons.theProfessor.fireFreezeStaffTimer,
+ newValue -> config.dungeons.theProfessor.fireFreezeStaffTimer = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.professor.floor3GuardianHealthDisplay.@Tooltip")))
+ .binding(defaults.dungeons.theProfessor.floor3GuardianHealthDisplay,
+ () -> config.dungeons.theProfessor.floor3GuardianHealthDisplay,
+ newValue -> config.dungeons.theProfessor.floor3GuardianHealthDisplay = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
- // Livid (F5/M5)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow.@Tooltip")))
- .binding(defaults.dungeons.livid.enableLividColorGlow,
- () -> config.dungeons.livid.enableLividColorGlow,
- newValue -> config.dungeons.livid.enableLividColorGlow = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText.@Tooltip")))
- .binding(defaults.dungeons.livid.enableLividColorText,
- () -> config.dungeons.livid.enableLividColorText,
- newValue -> config.dungeons.livid.enableLividColorText = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle.@Tooltip")))
- .binding(defaults.dungeons.livid.enableLividColorTitle,
- () -> config.dungeons.livid.enableLividColorTitle,
- newValue -> config.dungeons.livid.enableLividColorTitle = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<String>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.livid.lividColorText"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.lividColorText.@Tooltip")))
- .binding(defaults.dungeons.livid.lividColorText,
- () -> config.dungeons.livid.lividColorText,
- newValue -> config.dungeons.livid.lividColorText = newValue)
- .controller(StringControllerBuilder::create)
- .build())
- .build())
+ // Livid (F5/M5)
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorGlow.@Tooltip")))
+ .binding(defaults.dungeons.livid.enableLividColorGlow,
+ () -> config.dungeons.livid.enableLividColorGlow,
+ newValue -> config.dungeons.livid.enableLividColorGlow = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorText.@Tooltip")))
+ .binding(defaults.dungeons.livid.enableLividColorText,
+ () -> config.dungeons.livid.enableLividColorText,
+ newValue -> config.dungeons.livid.enableLividColorText = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.enableLividColorTitle.@Tooltip")))
+ .binding(defaults.dungeons.livid.enableLividColorTitle,
+ () -> config.dungeons.livid.enableLividColorTitle,
+ newValue -> config.dungeons.livid.enableLividColorTitle = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<String>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.livid.lividColorText"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.livid.lividColorText.@Tooltip")))
+ .binding(defaults.dungeons.livid.lividColorText,
+ () -> config.dungeons.livid.lividColorText,
+ newValue -> config.dungeons.livid.lividColorText = newValue)
+ .controller(StringControllerBuilder::create)
+ .build())
+ .build())
- // Terminal (F7/M7)
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveColor"))
- .binding(defaults.dungeons.terminals.solveColor,
- () -> config.dungeons.terminals.solveColor,
- newValue -> config.dungeons.terminals.solveColor = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveOrder"))
- .binding(defaults.dungeons.terminals.solveOrder,
- () -> config.dungeons.terminals.solveOrder,
- newValue -> config.dungeons.terminals.solveOrder = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.solveStartsWith"))
- .binding(defaults.dungeons.terminals.solveStartsWith,
- () -> config.dungeons.terminals.solveStartsWith,
- newValue -> config.dungeons.terminals.solveStartsWith = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.terminals.blockIncorrectClicks"))
- .binding(defaults.dungeons.terminals.blockIncorrectClicks,
- () -> config.dungeons.terminals.blockIncorrectClicks,
- newValue -> config.dungeons.terminals.blockIncorrectClicks = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .build())
+ // Terminal (F7/M7)
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.terminals"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.terminals.solveColor"))
+ .binding(defaults.dungeons.terminals.solveColor,
+ () -> config.dungeons.terminals.solveColor,
+ newValue -> config.dungeons.terminals.solveColor = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.terminals.solveOrder"))
+ .binding(defaults.dungeons.terminals.solveOrder,
+ () -> config.dungeons.terminals.solveOrder,
+ newValue -> config.dungeons.terminals.solveOrder = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.terminals.solveStartsWith"))
+ .binding(defaults.dungeons.terminals.solveStartsWith,
+ () -> config.dungeons.terminals.solveStartsWith,
+ newValue -> config.dungeons.terminals.solveStartsWith = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.dungeons.terminals.blockIncorrectClicks"))
+ .binding(defaults.dungeons.terminals.blockIncorrectClicks,
+ () -> config.dungeons.terminals.blockIncorrectClicks,
+ newValue -> config.dungeons.terminals.blockIncorrectClicks = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
- // Dungeon Secret Waypoints
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableRoomMatching"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableRoomMatching.@Tooltip")))
- .binding(defaults.dungeons.secretWaypoints.enableRoomMatching,
- () -> config.dungeons.secretWaypoints.enableRoomMatching,
- newValue -> config.dungeons.secretWaypoints.enableRoomMatching = newValue)
- .controller(ConfigUtils::createBooleanController)
- .flag(OptionFlag.GAME_RESTART)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableSecretWaypoints"))
- .binding(defaults.dungeons.secretWaypoints.enableSecretWaypoints,
- () -> config.dungeons.secretWaypoints.enableSecretWaypoints,
- newValue -> config.dungeons.secretWaypoints.enableSecretWaypoints = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Type>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.waypointType"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.dungeons.secretWaypoints.waypointType.@Tooltip"),
- Text.translatable("skyblocker.config.dungeons.secretWaypoints.waypointType.generalNote")))
- .binding(defaults.dungeons.secretWaypoints.waypointType,
- () -> config.dungeons.secretWaypoints.waypointType,
- newValue -> config.dungeons.secretWaypoints.waypointType = newValue)
- .controller(ConfigUtils::createEnumCyclingListController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.showSecretText"))
- .binding(defaults.dungeons.secretWaypoints.showSecretText,
- () -> config.dungeons.secretWaypoints.showSecretText,
- newValue -> config.dungeons.secretWaypoints.showSecretText = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableEntranceWaypoints"))
- .binding(defaults.dungeons.secretWaypoints.enableEntranceWaypoints,
- () -> config.dungeons.secretWaypoints.enableEntranceWaypoints,
- newValue -> config.dungeons.secretWaypoints.enableEntranceWaypoints = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableSuperboomWaypoints"))
- .binding(defaults.dungeons.secretWaypoints.enableSuperboomWaypoints,
- () -> config.dungeons.secretWaypoints.enableSuperboomWaypoints,
- newValue -> config.dungeons.secretWaypoints.enableSuperboomWaypoints = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.dungeons.secretWaypoints.enableChestWaypoints"))
- .bindi