aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorHazem <79111320+7azeemm@users.noreply.github.com>2024-12-23 03:46:07 +0100
committerGitHub <noreply@github.com>2024-12-23 10:46:07 +0800
commitc4f9bc4dd7631021af74726adec54e56f9b49b0e (patch)
tree71aa9404a67acf2523a59af72e32c3441f6f3b65 /src/main
parent6177e513494fe66feabd830a3b8307fb8587ef67 (diff)
downloadSkyblocker-c4f9bc4dd7631021af74726adec54e56f9b49b0e.tar.gz
Skyblocker-c4f9bc4dd7631021af74726adec54e56f9b49b0e.tar.bz2
Skyblocker-c4f9bc4dd7631021af74726adec54e56f9b49b0e.zip
Slayer System rework (#1040)
* Added Slayer HUD Added Boss slain time Added Personal Best slain time Added Boss and MiniBoss spawn alert Added Mute Enderman sounds Added Lazer phase Timer * Narrowen the startRiding method injection because it was failing * Change instanceof checks to type equality check for better intellisense * Fix TITLE related crash * Fix filled outline glow * pattern changes * Translation keys sorting * mixins * more mixins changes * .. * more translatable text mixins changes shows now previous personalBest and more * compatible with Slayer XP Buff (Aatrox perk) * fixed title spam * imporved logic * Fixed BossBar bug * Fixed Vampire slayer entity not being highlighted * HUD improvements Fixed BossBar not working with rev t5 * .. * ... * resolved conflicts Fixed crash when player starts slayer quest in private island * Refactor slayer code * Fix internationalization * Refactor slayer glow * Rewrite slayer detection * Clean up * fixed some crashes so i could test it * fixed mob detection * refactor * fixed sound checks * LazerTimer rewrite * .. * more improvements * Refactor guard clauses * Refactor SlayerManager * Clean up ClientPlayNetworkHandlerMixin * Update slayer hud * Make it actually compile... * some changes * locations * fixed locations * changes * removed extended class * Inject after forceMainThread * .. * small change * bug fixes * null check * Fix slayer hud config screen * tabs * Fix slayer hud enabled * Don't render everywhere --------- Co-authored-by: Rime <81419447+Emirlol@users.noreply.github.com> Co-authored-by: Kevin <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/SlayersCategory.java395
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/OtherLocationsConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/SlayersConfig.java147
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java136
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/EntityMixin.java60
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/WorldRendererMixin.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/FishingHelper.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/SecretWaypoint.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsChestHighlighter.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/TheEnd.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java31
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/rift/TheRift.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerBossBars.java136
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerEntitiesGlow.java174
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerManager.java392
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerTier.java31
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerTimer.java117
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/SlayerType.java64
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/demonlord/AttunementColors.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/AttunementColors.java)8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/demonlord/FirePillarAnnouncer.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/FirePillarAnnouncer.java)9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/vampire/ManiaIndicator.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/rift/ManiaIndicator.java)12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/vampire/StakeIndicator.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/rift/StakeIndicator.java)10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/vampire/TwinClawsIndicator.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/rift/TwinClawsIndicator.java)14
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/voidgloom/BeaconHighlighter.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/end/BeaconHighlighter.java)2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/boss/voidgloom/LazerTimer.java60
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/slayers/hud/SlayerHudWidget.java87
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/SlayerUtils.java116
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Utils.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/title/TitleContainer.java2
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json25
37 files changed, 1365 insertions, 748 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
index c578bdc2..259e91d9 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
@@ -140,6 +140,13 @@ public class OtherLocationsCategory {
TheEnd.eyes = 0;
})
.build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.otherLocations.end.muteEndermanSounds"))
+ .binding(defaults.otherLocations.end.muteEndermanSounds,
+ () -> config.otherLocations.end.muteEndermanSounds,
+ newValue -> config.otherLocations.end.muteEndermanSounds = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
.build())
//Spider's Den
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/SlayersCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/SlayersCategory.java
index 14f5c244..e67b2264 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/SlayersCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/SlayersCategory.java
@@ -3,45 +3,46 @@ package de.hysky.skyblocker.config.categories;
import de.hysky.skyblocker.config.ConfigUtils;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.configs.SlayersConfig;
-import dev.isxander.yacl3.api.ConfigCategory;
-import dev.isxander.yacl3.api.Option;
-import dev.isxander.yacl3.api.OptionDescription;
-import dev.isxander.yacl3.api.OptionGroup;
+import de.hysky.skyblocker.skyblock.slayers.hud.SlayerHudWidget;
+import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen;
+import de.hysky.skyblocker.utils.Location;
+import dev.isxander.yacl3.api.*;
import dev.isxander.yacl3.api.controller.FloatFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
public class SlayersCategory {
- public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
- return ConfigCategory.createBuilder()
- .name(Text.translatable("skyblocker.config.slayer"))
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
+ return ConfigCategory.createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer"))
- //General Slayers Options
- .option(Option.<SlayersConfig.HighlightSlayerEntities>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.highlightMinis"))
- .description(OptionDescription.of(
- Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[0]"),
- Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[1]"),
- Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[2]")))
- .binding(defaults.slayers.highlightMinis,
- () -> config.slayers.highlightMinis,
- newValue -> config.slayers.highlightMinis = newValue)
- .controller(ConfigUtils::createEnumCyclingListController)
- .build())
- .option(Option.<SlayersConfig.HighlightSlayerEntities>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.highlightBosses"))
- .description(OptionDescription.of(
- Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[0]"),
- Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[1]"),
- Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[2]"),
- Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[3]")))
- .binding(defaults.slayers.highlightBosses,
- () -> config.slayers.highlightBosses,
- newValue -> config.slayers.highlightBosses = newValue)
- .controller(ConfigUtils::createEnumCyclingListController)
- .build())
+ //General Slayers Options
+ .option(Option.<SlayersConfig.HighlightSlayerEntities>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.highlightMinis"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[0]"),
+ Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[1]"),
+ Text.translatable("skyblocker.config.slayer.highlightMinis.@Tooltip[2]")))
+ .binding(defaults.slayers.highlightMinis,
+ () -> config.slayers.highlightMinis,
+ newValue -> config.slayers.highlightMinis = newValue)
+ .controller(ConfigUtils::createEnumCyclingListController)
+ .build())
+ .option(Option.<SlayersConfig.HighlightSlayerEntities>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.highlightBosses"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[0]"),
+ Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[1]"),
+ Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[2]"),
+ Text.translatable("skyblocker.config.slayer.highlightBosses.@Tooltip[3]")))
+ .binding(defaults.slayers.highlightBosses,
+ () -> config.slayers.highlightBosses,
+ newValue -> config.slayers.highlightBosses = newValue)
+ .controller(ConfigUtils::createEnumCyclingListController)
+ .build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.slayer.bossbar"))
.description(OptionDescription.of(
@@ -51,150 +52,198 @@ public class SlayersCategory {
newValue -> config.slayers.displayBossbar = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.bossSpawnAlert"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.bossSpawnAlert.@Tooltip")))
+ .binding(defaults.slayers.bossSpawnAlert,
+ () -> config.slayers.bossSpawnAlert,
+ newValue -> config.slayers.bossSpawnAlert = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.minibossSpawnAlert"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.minibossSpawnAlert.@Tooltip")))
+ .binding(defaults.slayers.miniBossSpawnAlert,
+ () -> config.slayers.miniBossSpawnAlert,
+ newValue -> config.slayers.miniBossSpawnAlert = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.slainTime"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.slainTime.@Tooltip")))
+ .binding(defaults.slayers.slainTime,
+ () -> config.slayers.slainTime,
+ newValue -> config.slayers.slainTime = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.enableHud"))
+ .description(OptionDescription.of(
+ Text.translatable("skyblocker.config.slayer.enableHud.@Tooltip")))
+ .binding(defaults.slayers.enableHud,
+ () -> config.slayers.enableHud,
+ newValue -> config.slayers.enableHud = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(ButtonOption.createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.enableHud"))
+ .text(Text.translatable("text.skyblocker.open"))
+ .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.HUB, SlayerHudWidget.getInstance().getInternalID(), screen)))
+ .build())
- //Enderman Slayer
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.endermanSlayer"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.enableYangGlyphsNotification"))
- .binding(defaults.slayers.endermanSlayer.enableYangGlyphsNotification,
- () -> config.slayers.endermanSlayer.enableYangGlyphsNotification,
- newValue -> config.slayers.endermanSlayer.enableYangGlyphsNotification = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.highlightBeacons"))
- .binding(defaults.slayers.endermanSlayer.highlightBeacons,
- () -> config.slayers.endermanSlayer.highlightBeacons,
- newValue -> config.slayers.endermanSlayer.highlightBeacons = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.highlightNukekubiHeads"))
- .binding(defaults.slayers.endermanSlayer.highlightNukekubiHeads,
- () -> config.slayers.endermanSlayer.highlightNukekubiHeads,
- newValue -> config.slayers.endermanSlayer.highlightNukekubiHeads = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .build())
+ //Enderman Slayer
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.endermanSlayer"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.enableYangGlyphsNotification"))
+ .binding(defaults.slayers.endermanSlayer.enableYangGlyphsNotification,
+ () -> config.slayers.endermanSlayer.enableYangGlyphsNotification,
+ newValue -> config.slayers.endermanSlayer.enableYangGlyphsNotification = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.highlightBeacons"))
+ .binding(defaults.slayers.endermanSlayer.highlightBeacons,
+ () -> config.slayers.endermanSlayer.highlightBeacons,
+ newValue -> config.slayers.endermanSlayer.highlightBeacons = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.highlightNukekubiHeads"))
+ .binding(defaults.slayers.endermanSlayer.highlightNukekubiHeads,
+ () -> config.slayers.endermanSlayer.highlightNukekubiHeads,
+ newValue -> config.slayers.endermanSlayer.highlightNukekubiHeads = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.endermanSlayer.lazerTimer"))
+ .binding(defaults.slayers.endermanSlayer.lazerTimer,
+ () -> config.slayers.endermanSlayer.lazerTimer,
+ newValue -> config.slayers.endermanSlayer.lazerTimer = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
- //Vampire Slayer
- .group(OptionGroup.createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer"))
- .collapsed(true)
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableEffigyWaypoints"))
- .binding(defaults.slayers.vampireSlayer.enableEffigyWaypoints,
- () -> config.slayers.vampireSlayer.enableEffigyWaypoints,
- newValue -> config.slayers.vampireSlayer.enableEffigyWaypoints = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.compactEffigyWaypoints"))
- .binding(defaults.slayers.vampireSlayer.compactEffigyWaypoints,
- () -> config.slayers.vampireSlayer.compactEffigyWaypoints,
- newValue -> config.slayers.vampireSlayer.compactEffigyWaypoints = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Integer>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.effigyUpdateFrequency"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.effigyUpdateFrequency.@Tooltip")))
- .binding(defaults.slayers.vampireSlayer.effigyUpdateFrequency,
- () -> config.slayers.vampireSlayer.effigyUpdateFrequency,
- newValue -> config.slayers.vampireSlayer.effigyUpdateFrequency = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableHolyIceIndicator"))
- .binding(defaults.slayers.vampireSlayer.enableHolyIceIndicator,
- () -> config.slayers.vampireSlayer.enableHolyIceIndicator,
- newValue -> config.slayers.vampireSlayer.enableHolyIceIndicator = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Integer>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceIndicatorTickDelay"))
- .binding(defaults.slayers.vampireSlayer.holyIceIndicatorTickDelay,
- () -> config.slayers.vampireSlayer.holyIceIndicatorTickDelay,
- newValue -> config.slayers.vampireSlayer.holyIceIndicatorTickDelay = newValue)
- .controller(IntegerFieldControllerBuilder::create)
- .build())
- .option(Option.<Integer>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceUpdateFrequency"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceUpdateFrequency.@Tooltip")))
- .binding(defaults.slayers.vampireSlayer.holyIceUpdateFrequency,
- () -> config.slayers.vampireSlayer.holyIceUpdateFrequency,
- newValue -> config.slayers.vampireSlayer.holyIceUpdateFrequency = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableHealingMelonIndicator"))
- .binding(defaults.slayers.vampireSlayer.enableHealingMelonIndicator,
- () -> config.slayers.vampireSlayer.enableHealingMelonIndicator,
- newValue -> config.slayers.vampireSlayer.enableHealingMelonIndicator = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Float>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.healingMelonHealthThreshold"))
- .binding(defaults.slayers.vampireSlayer.healingMelonHealthThreshold,
- () -> config.slayers.vampireSlayer.healingMelonHealthThreshold,
- newValue -> config.slayers.vampireSlayer.healingMelonHealthThreshold = newValue)
- .controller(FloatFieldControllerBuilder::create)
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableSteakStakeIndicator"))
- .binding(defaults.slayers.vampireSlayer.enableSteakStakeIndicator,
- () -> config.slayers.vampireSlayer.enableSteakStakeIndicator,
- newValue -> config.slayers.vampireSlayer.enableSteakStakeIndicator = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Integer>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.steakStakeUpdateFrequency"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.steakStakeUpdateFrequency.@Tooltip")))
- .binding(defaults.slayers.vampireSlayer.steakStakeUpdateFrequency,
- () -> config.slayers.vampireSlayer.steakStakeUpdateFrequency,
- newValue -> config.slayers.vampireSlayer.steakStakeUpdateFrequency = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
- .build())
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableManiaIndicator"))
- .binding(defaults.slayers.vampireSlayer.enableManiaIndicator,
- () -> config.slayers.vampireSlayer.enableManiaIndicator,
- newValue -> config.slayers.vampireSlayer.enableManiaIndicator = newValue)
- .controller(ConfigUtils::createBooleanController)
- .build())
- .option(Option.<Integer>createBuilder()
- .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.maniaUpdateFrequency"))
- .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.maniaUpdateFrequency.@Tooltip")))
- .binding(defaults.slayers.vampireSlayer.maniaUpdateFrequency,
- () -> config.slayers.vampireSlayer.maniaUpdateFrequency,
- newValue -> config.slayers.vampireSlayer.maniaUpdateFrequency = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
- .build())
- .build())
+ //Vampire Slayer
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer"))
+ .collapsed(true)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableEffigyWaypoints"))
+ .binding(defaults.slayers.vampireSlayer.enableEffigyWaypoints,
+ () -> config.slayers.vampireSlayer.enableEffigyWaypoints,
+ newValue -> config.slayers.vampireSlayer.enableEffigyWaypoints = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.compactEffigyWaypoints"))
+ .binding(defaults.slayers.vampireSlayer.compactEffigyWaypoints,
+ () -> config.slayers.vampireSlayer.compactEffigyWaypoints,
+ newValue -> config.slayers.vampireSlayer.compactEffigyWaypoints = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Integer>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.effigyUpdateFrequency"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.effigyUpdateFrequency.@Tooltip")))
+ .binding(defaults.slayers.vampireSlayer.effigyUpdateFrequency,
+ () -> config.slayers.vampireSlayer.effigyUpdateFrequency,
+ newValue -> config.slayers.vampireSlayer.effigyUpdateFrequency = newValue)
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableHolyIceIndicator"))
+ .binding(defaults.slayers.vampireSlayer.enableHolyIceIndicator,
+ () -> config.slayers.vampireSlayer.enableHolyIceIndicator,
+ newValue -> config.slayers.vampireSlayer.enableHolyIceIndicator = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Integer>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceIndicatorTickDelay"))
+ .binding(defaults.slayers.vampireSlayer.holyIceIndicatorTickDelay,
+ () -> config.slayers.vampireSlayer.holyIceIndicatorTickDelay,
+ newValue -> config.slayers.vampireSlayer.holyIceIndicatorTickDelay = newValue)
+ .controller(IntegerFieldControllerBuilder::create)
+ .build())
+ .option(Option.<Integer>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceUpdateFrequency"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.holyIceUpdateFrequency.@Tooltip")))
+ .binding(defaults.slayers.vampireSlayer.holyIceUpdateFrequency,
+ () -> config.slayers.vampireSlayer.holyIceUpdateFrequency,
+ newValue -> config.slayers.vampireSlayer.holyIceUpdateFrequency = newValue)
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableHealingMelonIndicator"))
+ .binding(defaults.slayers.vampireSlayer.enableHealingMelonIndicator,
+ () -> config.slayers.vampireSlayer.enableHealingMelonIndicator,
+ newValue -> config.slayers.vampireSlayer.enableHealingMelonIndicator = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Float>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.healingMelonHealthThreshold"))
+ .binding(defaults.slayers.vampireSlayer.healingMelonHealthThreshold,
+ () -> config.slayers.vampireSlayer.healingMelonHealthThreshold,
+ newValue -> config.slayers.vampireSlayer.healingMelonHealthThreshold = newValue)
+ .controller(FloatFieldControllerBuilder::create)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.enableSteakStakeIndicator"))
+ .binding(defaults.slayers.vampireSlayer.enableSteakStakeIndicator,
+ () -> config.slayers.vampireSlayer.enableSteakStakeIndicator,
+ newValue -> config.slayers.vampireSlayer.enableSteakStakeIndicator = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Integer>createBuilder()
+ .name(Text.translatable("skyblocker.config.slayer.vampireSlayer.steakStakeUpdateFrequency"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.slayer.vampireSlayer.steakStakeUpdateFrequency.@Tooltip")))
+ .binding(defaults.slayers.vampireSlayer.steakStakeUpdateFrequency,
+ () -> config.slayers.vampireSlayer.steakStakeUpdateFrequency,
+ newValue -> config.slayers.vampireSlayer.steakStakeUpdateFrequency = newValue)
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 10).step(1))
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name