From 3de616fcaca8e39a4d1caef6fdd4f984adb7e000 Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Fri, 21 Jun 2024 09:12:11 +0300 Subject: Change slot text to have multiple states The enum SlotTextState is very self-descriptive if you wonder what the states are --- .../skyblocker/config/categories/GeneralCategory.java | 16 ++++++++++++++-- .../hysky/skyblocker/config/configs/GeneralConfig.java | 6 +++++- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/config') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index ab674b18..abfb7c16 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -5,10 +5,12 @@ import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.configs.GeneralConfig; import de.hysky.skyblocker.skyblock.item.tooltip.adders.CraftPriceTooltip; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextState; import de.hysky.skyblocker.skyblock.shortcut.ShortcutsConfigScreen; import dev.isxander.yacl3.api.*; import dev.isxander.yacl3.api.controller.FloatSliderControllerBuilder; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.option.KeybindsScreen; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -234,13 +236,18 @@ public class GeneralCategory { .group(OptionGroup.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay")) .collapsed(true) - .option(Option.createBuilder() + .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText")) .description(OptionDescription.of(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.@Tooltip"))) .binding(defaults.general.itemInfoDisplay.slotText, () -> config.general.itemInfoDisplay.slotText, newValue -> config.general.itemInfoDisplay.slotText = newValue) - .controller(ConfigUtils::createBooleanController) + .controller(ConfigUtils::createEnumCyclingListController) + .build()) + .option(ButtonOption.createBuilder() + .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.shortcutToKeybindsSettings")) + .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new KeybindsScreen(screen, MinecraftClient.getInstance().options))) + .text(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.shortcutToKeybindsSettings.@Text")) .build()) .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.attributeShardInfo")) @@ -301,6 +308,11 @@ public class GeneralCategory { newValue -> config.general.wikiLookup.enableWikiLookup = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(ButtonOption.createBuilder() + .name(Text.translatable("skyblocker.config.shortcutToKeybindsSettings")) + .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new KeybindsScreen(screen, MinecraftClient.getInstance().options))) + .text(Text.translatable("skyblocker.config.shortcutToKeybindsSettings.@Text")) + .build()) .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.general.wikiLookup.officialWiki")) .description(OptionDescription.of(Text.translatable("skyblocker.config.general.wikiLookup.officialWiki.@Tooltip"))) diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java index 691e6f79..7ea1616e 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.config.configs; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.skyblock.item.CustomArmorAnimatedDyes; import de.hysky.skyblocker.skyblock.item.CustomArmorTrims; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextState; import dev.isxander.yacl3.config.v2.api.SerialEntry; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; @@ -164,7 +165,10 @@ public class GeneralConfig { public static class ItemInfoDisplay { @SerialEntry - public boolean slotText = true; + public SlotTextState slotText = SlotTextState.ENABLED; + + @SerialEntry + public boolean slotTextToggled = true; @SerialEntry public boolean attributeShardInfo = true; -- cgit From c6c3f30fcbacb018a6aaa8aab89395e987ca99ab Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:28:26 +0800 Subject: Add slot text config data fixer --- .../skyblocker/config/SkyblockerConfigManager.java | 2 +- .../config/datafixer/ConfigDataFixer.java | 2 ++ .../config/datafixer/ConfigFix3SlotText.java | 25 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java (limited to 'src/main/java/de/hysky/skyblocker/config') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java index f519473c..4af606ec 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java @@ -26,7 +26,7 @@ import java.lang.StackWalker.Option; import java.nio.file.Path; public class SkyblockerConfigManager { - public static final int CONFIG_VERSION = 3; + public static final int CONFIG_VERSION = 4; private static final Path CONFIG_FILE = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json"); private static final ConfigClassHandler HANDLER = ConfigClassHandler.createBuilder(SkyblockerConfig.class) .serializer(config -> GsonConfigSerializerBuilder.create(config) diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java index b887d415..f1ab23df 100644 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java @@ -68,6 +68,8 @@ public class ConfigDataFixer { builder.addFixer(new ConfigFix1(schema2, true)); Schema schema3 = builder.addSchema(3, Schema::new); builder.addFixer(new ConfigFix2QuickNav(schema3, true)); + Schema schema4 = builder.addSchema(4, Schema::new); + builder.addFixer(new ConfigFix3SlotText(schema4, true)); return builder.build().fixer(); } diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java new file mode 100644 index 00000000..1518fe92 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java @@ -0,0 +1,25 @@ +package de.hysky.skyblocker.config.datafixer; + +import com.mojang.datafixers.DSL; +import com.mojang.datafixers.TypeRewriteRule; +import com.mojang.datafixers.schemas.Schema; +import com.mojang.serialization.Dynamic; + +public class ConfigFix3SlotText extends ConfigDataFix { + public ConfigFix3SlotText(Schema outputSchema, boolean changesType) { + super(outputSchema, changesType); + } + + @Override + protected TypeRewriteRule makeRule() { + return fixTypeEverywhereTyped( + "ConfigFix3SlotText", + getInputSchema().getType(ConfigDataFixer.CONFIG_TYPE), + typed -> typed.update(DSL.remainderFinder(), this::fix) + ); + } + + private Dynamic fix(Dynamic dynamic) { + return fixVersion(dynamic).update("general", general -> general.update("itemInfoDisplay", itemInfoDisplay -> itemInfoDisplay.update("slotText", slotText -> slotText.createString(slotText.asBoolean(true) ? "ENABLED" : "DISABLED")))); + } +} -- cgit From 156e70818b2f062ebf7fcd34fa0d23017c84a720 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:19:59 +0800 Subject: Revert "Add slot text config data fixer" This reverts commit c6c3f30fcbacb018a6aaa8aab89395e987ca99ab. --- .../skyblocker/config/SkyblockerConfigManager.java | 2 +- .../config/datafixer/ConfigDataFixer.java | 2 -- .../config/datafixer/ConfigFix3SlotText.java | 25 ---------------------- 3 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java (limited to 'src/main/java/de/hysky/skyblocker/config') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java index 4af606ec..f519473c 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfigManager.java @@ -26,7 +26,7 @@ import java.lang.StackWalker.Option; import java.nio.file.Path; public class SkyblockerConfigManager { - public static final int CONFIG_VERSION = 4; + public static final int CONFIG_VERSION = 3; private static final Path CONFIG_FILE = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json"); private static final ConfigClassHandler HANDLER = ConfigClassHandler.createBuilder(SkyblockerConfig.class) .serializer(config -> GsonConfigSerializerBuilder.create(config) diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java index f1ab23df..b887d415 100644 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java +++ b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigDataFixer.java @@ -68,8 +68,6 @@ public class ConfigDataFixer { builder.addFixer(new ConfigFix1(schema2, true)); Schema schema3 = builder.addSchema(3, Schema::new); builder.addFixer(new ConfigFix2QuickNav(schema3, true)); - Schema schema4 = builder.addSchema(4, Schema::new); - builder.addFixer(new ConfigFix3SlotText(schema4, true)); return builder.build().fixer(); } diff --git a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java b/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java deleted file mode 100644 index 1518fe92..00000000 --- a/src/main/java/de/hysky/skyblocker/config/datafixer/ConfigFix3SlotText.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.hysky.skyblocker.config.datafixer; - -import com.mojang.datafixers.DSL; -import com.mojang.datafixers.TypeRewriteRule; -import com.mojang.datafixers.schemas.Schema; -import com.mojang.serialization.Dynamic; - -public class ConfigFix3SlotText extends ConfigDataFix { - public ConfigFix3SlotText(Schema outputSchema, boolean changesType) { - super(outputSchema, changesType); - } - - @Override - protected TypeRewriteRule makeRule() { - return fixTypeEverywhereTyped( - "ConfigFix3SlotText", - getInputSchema().getType(ConfigDataFixer.CONFIG_TYPE), - typed -> typed.update(DSL.remainderFinder(), this::fix) - ); - } - - private Dynamic fix(Dynamic dynamic) { - return fixVersion(dynamic).update("general", general -> general.update("itemInfoDisplay", itemInfoDisplay -> itemInfoDisplay.update("slotText", slotText -> slotText.createString(slotText.asBoolean(true) ? "ENABLED" : "DISABLED")))); - } -} -- cgit From eb2ac7c20ca00da5c8998aad291584b76186ec5f Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:41:38 +0800 Subject: Rename slot text option to slotTextMode --- .../skyblocker/config/categories/GeneralCategory.java | 14 +++++++------- .../de/hysky/skyblocker/config/configs/GeneralConfig.java | 8 ++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/config') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index abfb7c16..7669359e 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -5,7 +5,7 @@ import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.configs.GeneralConfig; import de.hysky.skyblocker.skyblock.item.tooltip.adders.CraftPriceTooltip; -import de.hysky.skyblocker.skyblock.item.slottext.SlotTextState; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextMode; import de.hysky.skyblocker.skyblock.shortcut.ShortcutsConfigScreen; import dev.isxander.yacl3.api.*; import dev.isxander.yacl3.api.controller.FloatSliderControllerBuilder; @@ -236,18 +236,18 @@ public class GeneralCategory { .group(OptionGroup.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay")) .collapsed(true) - .option(Option.createBuilder() + .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText")) .description(OptionDescription.of(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.@Tooltip"))) - .binding(defaults.general.itemInfoDisplay.slotText, - () -> config.general.itemInfoDisplay.slotText, - newValue -> config.general.itemInfoDisplay.slotText = newValue) + .binding(defaults.general.itemInfoDisplay.slotTextMode, + () -> config.general.itemInfoDisplay.slotTextMode, + newValue -> config.general.itemInfoDisplay.slotTextMode = newValue) .controller(ConfigUtils::createEnumCyclingListController) .build()) .option(ButtonOption.createBuilder() - .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.shortcutToKeybindsSettings")) + .name(Text.translatable("skyblocker.config.shortcutToKeybindsSettings")) .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new KeybindsScreen(screen, MinecraftClient.getInstance().options))) - .text(Text.translatable("skyblocker.config.general.itemInfoDisplay.slotText.shortcutToKeybindsSettings.@Text")) + .text(Text.translatable("skyblocker.config.shortcutToKeybindsSettings.@Text")) .build()) .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.general.itemInfoDisplay.attributeShardInfo")) diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java index 7ea1616e..61386452 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java @@ -3,7 +3,7 @@ package de.hysky.skyblocker.config.configs; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.skyblock.item.CustomArmorAnimatedDyes; import de.hysky.skyblocker.skyblock.item.CustomArmorTrims; -import de.hysky.skyblocker.skyblock.item.slottext.SlotTextState; +import de.hysky.skyblocker.skyblock.item.slottext.SlotTextMode; import dev.isxander.yacl3.config.v2.api.SerialEntry; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; @@ -164,8 +164,12 @@ public class GeneralConfig { } public static class ItemInfoDisplay { + @Deprecated @SerialEntry - public SlotTextState slotText = SlotTextState.ENABLED; + public boolean slotText = true; + + @SerialEntry + public SlotTextMode slotTextMode = SlotTextMode.ENABLED; @SerialEntry public boolean slotTextToggled = true; -- cgit