diff options
| author | Hazem <79111320+7azeemm@users.noreply.github.com> | 2024-12-23 03:46:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-23 10:46:07 +0800 |
| commit | c4f9bc4dd7631021af74726adec54e56f9b49b0e (patch) | |
| tree | 71aa9404a67acf2523a59af72e32c3441f6f3b65 /src/main | |
| parent | 6177e513494fe66feabd830a3b8307fb8587ef67 (diff) | |
| download | Skyblocker-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')
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 |
