diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-06-07 22:31:22 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-06-07 22:31:22 +0800 |
| commit | f893515dd0c8b6bd54acde91fd1000ca984a81cd (patch) | |
| tree | c3e43bcdb3cc42e8b0de68720097f22f7dd88740 /src/main/java/me/shedaniel | |
| parent | 6fdbd7b5581a1536e644517987c3ba5e631f5c1d (diff) | |
| download | RoughlyEnoughItems-f893515dd0c8b6bd54acde91fd1000ca984a81cd.tar.gz RoughlyEnoughItems-f893515dd0c8b6bd54acde91fd1000ca984a81cd.tar.bz2 RoughlyEnoughItems-f893515dd0c8b6bd54acde91fd1000ca984a81cd.zip | |
"Updated" to use the new Cloth Config
Diffstat (limited to 'src/main/java/me/shedaniel')
4 files changed, 44 insertions, 38 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java index d232c9914..ee775ec83 100644 --- a/src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java @@ -136,7 +136,7 @@ public class ConfigManagerImpl implements ConfigManager { @Override public Screen getConfigScreen(Screen parent) { - if (FabricLoader.getInstance().isModLoaded("cloth-config")) { + if (FabricLoader.getInstance().isModLoaded("cloth-config2")) { try { return Screen.class.cast(Class.forName("me.shedaniel.rei.utils.ClothScreenRegistry").getDeclaredMethod("getConfigScreen", Screen.class).invoke(null, parent)); } catch (Exception e) { diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java index d07c5c7c7..b7280e69c 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java @@ -5,7 +5,7 @@ package me.shedaniel.rei.gui.credits; -import me.shedaniel.clothconfig.gui.DynamicSmoothScrollingEntryListWidget; +import me.shedaniel.clothconfig2.gui.widget.DynamicSmoothScrollingEntryListWidget; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.network.chat.Component; diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java index f80f5c662..e54a37581 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java @@ -7,16 +7,16 @@ package me.shedaniel.rei.gui.credits; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.credits.CreditsEntryListWidget.CreditsItem; -import me.shedaniel.rei.gui.widget.ButtonWidget; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.widget.AbstractPressableButtonWidget; import net.minecraft.client.resource.language.I18n; import net.minecraft.network.chat.TextComponent; public class CreditsScreen extends Screen { private Screen parent; - private ButtonWidget buttonDone; + private AbstractPressableButtonWidget buttonDone; private CreditsEntryListWidget entryListWidget; public CreditsScreen(Screen parent) { @@ -42,9 +42,9 @@ public class CreditsScreen extends Screen { for(String line : I18n.translate("text.rei.credit.text").split("\n")) entryListWidget.creditsAddEntry(new CreditsItem(new TextComponent(line))); entryListWidget.creditsAddEntry(new CreditsItem(new TextComponent(""))); - children.add(buttonDone = new ButtonWidget(width / 2 - 100, height - 26, 200, 20, I18n.translate("gui.done")) { + children.add(buttonDone = new AbstractPressableButtonWidget(width / 2 - 100, height - 26, 200, 20, I18n.translate("gui.done")) { @Override - public void onPressed() { + public void onPress() { CreditsScreen.this.minecraft.openScreen(parent); if (parent instanceof AbstractContainerScreen) ScreenHelper.getLastOverlay().init(); diff --git a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java index 29f8e4d2f..c72916a5c 100644 --- a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java +++ b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java @@ -5,13 +5,16 @@ package me.shedaniel.rei.utils; -import me.shedaniel.cloth.api.ConfigScreenBuilder; -import me.shedaniel.cloth.gui.entries.BooleanListEntry; -import me.shedaniel.cloth.gui.entries.EnumListEntry; -import me.shedaniel.cloth.gui.entries.IntegerSliderEntry; -import me.shedaniel.cloth.gui.entries.StringListEntry; import me.shedaniel.cloth.hooks.ScreenHooks; +import me.shedaniel.clothconfig2.api.ConfigBuilder; +import me.shedaniel.clothconfig2.api.ConfigCategory; +import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; +import me.shedaniel.clothconfig2.gui.entries.BooleanListEntry; +import me.shedaniel.clothconfig2.gui.entries.EnumListEntry; +import me.shedaniel.clothconfig2.gui.entries.IntegerSliderEntry; +import me.shedaniel.clothconfig2.gui.entries.StringListEntry; import me.shedaniel.rei.RoughlyEnoughItemsCore; +import me.shedaniel.rei.api.ConfigManager; import me.shedaniel.rei.api.ItemCheatingMode; import me.shedaniel.rei.client.RecipeScreenType; import me.shedaniel.rei.client.ScreenHelper; @@ -30,18 +33,21 @@ public class ClothScreenRegistry { public static final String RESET = "text.cloth-config.reset_value"; public static Screen getConfigScreen(Screen parent) { - ConfigScreenBuilder builder = ConfigScreenBuilder.create(parent, "text.rei.config.title", savedConfig -> { + final ConfigManager configManager = RoughlyEnoughItemsCore.getConfigManager(); + ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("text.rei.config.title").setSavingRunnable(() -> { try { - RoughlyEnoughItemsCore.getConfigManager().saveConfig(); + configManager.saveConfig(); } catch (IOException e) { e.printStackTrace(); } }); - builder.addCategory("text.rei.config.general").addOption(new BooleanListEntry("text.rei.config.cheating", RoughlyEnoughItemsCore.getConfigManager().getConfig().cheating, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().cheating = bool) { + ConfigEntryBuilder entryBuilder = ConfigEntryBuilder.create(); + ConfigCategory general = builder.getOrCreateCategory("text.rei.config.general"); + general.addEntry(new BooleanListEntry("text.rei.config.cheating", configManager.getConfig().cheating, RESET, () -> false, bool -> configManager.getConfig().cheating = bool) { @Override public Optional<String[]> getTooltip() { String s = null; - if (!getObject()) + if (!getValue()) s = I18n.translate("text.rei.cheating_disabled"); else if (!RoughlyEnoughItemsCore.hasOperatorPermission()) s = I18n.translate("text.rei.cheating_enabled_no_perms"); @@ -52,40 +58,40 @@ public class ClothScreenRegistry { return Optional.ofNullable(new String[]{s}); } }); - ConfigScreenBuilder.CategoryBuilder appearance = builder.addCategory("text.rei.config.appearance"); - appearance.addOption(new BooleanListEntry("text.rei.config.dark_theme", ScreenHelper.isDarkModeEnabled(), RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().darkTheme = bool, () -> getConfigTooltip("dark_theme"))); - appearance.addOption(new EnumListEntry<>("text.rei.config.recipe_screen_type", RecipeScreenType.class, RoughlyEnoughItemsCore.getConfigManager().getConfig().screenType, RESET, () -> RecipeScreenType.UNSET, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().screenType = bool, EnumListEntry.DEFAULT_NAME_PROVIDER, () -> getConfigTooltip("recipe_screen_type"))); - appearance.addOption(new BooleanListEntry("text.rei.config.side_search_box", RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField = bool, () -> getConfigTooltip("side_search_box"))); - appearance.addOption(new EnumListEntry<>("text.rei.config.list_ordering", ItemListOrderingConfig.class, ItemListOrderingConfig.from(RoughlyEnoughItemsCore.getConfigManager().getConfig().itemListOrdering, RoughlyEnoughItemsCore.getConfigManager().getConfig().isAscending), RESET, () -> ItemListOrderingConfig.REGISTRY_ASCENDING, config -> { - RoughlyEnoughItemsCore.getConfigManager().getConfig().itemListOrdering = config.getOrdering(); - RoughlyEnoughItemsCore.getConfigManager().getConfig().isAscending = config.isAscending(); + ConfigCategory appearance = builder.getOrCreateCategory("text.rei.config.appearance"); + appearance.addEntry(entryBuilder.startBooleanToggle("text.rei.config.dark_theme", ScreenHelper.isDarkModeEnabled()).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().darkTheme = bool).setTooltipSupplier(() -> getConfigTooltip("dark_theme")).buildEntry()); + appearance.addEntry(new EnumListEntry<>("text.rei.config.recipe_screen_type", RecipeScreenType.class, configManager.getConfig().screenType, RESET, () -> RecipeScreenType.UNSET, bool -> configManager.getConfig().screenType = bool, EnumListEntry.DEFAULT_NAME_PROVIDER, () -> getConfigTooltip("recipe_screen_type"))); + appearance.addEntry(entryBuilder.startBooleanToggle("text.rei.config.side_search_box", configManager.getConfig().sideSearchField).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().sideSearchField = bool).setTooltipSupplier(() -> getConfigTooltip("side_search_box")).buildEntry()); + appearance.addEntry(new EnumListEntry<>("text.rei.config.list_ordering", ItemListOrderingConfig.class, ItemListOrderingConfig.from(configManager.getConfig().itemListOrdering, configManager.getConfig().isAscending), RESET, () -> ItemListOrderingConfig.REGISTRY_ASCENDING, config -> { + configManager.getConfig().itemListOrdering = config.getOrdering(); + configManager.getConfig().isAscending = config.isAscending(); }, EnumListEntry.DEFAULT_NAME_PROVIDER, () -> getConfigTooltip("list_ordering", ItemListOrderingConfig.REGISTRY_ASCENDING.toString()))); - appearance.addOption(new BooleanListEntry("text.rei.config.item_list_position", RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel = bool, () -> getConfigTooltip("item_list_position")) { + appearance.addEntry(new BooleanListEntry("text.rei.config.item_list_position", configManager.getConfig().mirrorItemPanel, RESET, () -> false, bool -> configManager.getConfig().mirrorItemPanel = bool, () -> getConfigTooltip("item_list_position")) { @Override public String getYesNoText(boolean bool) { return I18n.translate(bool ? "text.rei.config.item_list_position.left" : "text.rei.config.item_list_position.right"); } }); - appearance.addOption(new IntegerSliderEntry("text.rei.config.max_recipes_per_page", 2, 99, RoughlyEnoughItemsCore.getConfigManager().getConfig().maxRecipePerPage, RESET, () -> 3, i -> RoughlyEnoughItemsCore.getConfigManager().getConfig().maxRecipePerPage = i, () -> getConfigTooltip("max_recipes_per_page"))); - appearance.addOption(new BooleanListEntry("text.rei.config.light_gray_recipe_border", RoughlyEnoughItemsCore.getConfigManager().getConfig().lightGrayRecipeBorder, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().lightGrayRecipeBorder = bool, () -> getConfigTooltip("light_gray_recipe_border"))); - appearance.addOption(new BooleanListEntry("text.rei.config.villager_screen_permanent_scroll_bar", RoughlyEnoughItemsCore.getConfigManager().getConfig().villagerScreenPermanentScrollBar, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().villagerScreenPermanentScrollBar = bool, () -> getConfigTooltip("villager_screen_permanent_scroll_bar"))); - ConfigScreenBuilder.CategoryBuilder action = builder.addCategory("text.rei.config.action"); - action.addOption(new EnumListEntry<>("text.rei.config.item_cheating_mode", ItemCheatingMode.class, RoughlyEnoughItemsCore.getConfigManager().getConfig().itemCheatingMode, RESET, () -> ItemCheatingMode.REI_LIKE, i -> RoughlyEnoughItemsCore.getConfigManager().getConfig().itemCheatingMode = i, e -> { + appearance.addEntry(new IntegerSliderEntry("text.rei.config.max_recipes_per_page", 2, 99, configManager.getConfig().maxRecipePerPage, RESET, () -> 3, i -> configManager.getConfig().maxRecipePerPage = i, () -> getConfigTooltip("max_recipes_per_page"))); + appearance.addEntry(new BooleanListEntry("text.rei.config.light_gray_recipe_border", configManager.getConfig().lightGrayRecipeBorder, RESET, () -> false, bool -> configManager.getConfig().lightGrayRecipeBorder = bool, () -> getConfigTooltip("light_gray_recipe_border"))); + appearance.addEntry(new BooleanListEntry("text.rei.config.villager_screen_permanent_scroll_bar", configManager.getConfig().villagerScreenPermanentScrollBar, RESET, () -> false, bool -> configManager.getConfig().villagerScreenPermanentScrollBar = bool, () -> getConfigTooltip("villager_screen_permanent_scroll_bar"))); + ConfigCategory action = builder.getOrCreateCategory("text.rei.config.action"); + action.addEntry(new EnumListEntry<>("text.rei.config.item_cheating_mode", ItemCheatingMode.class, configManager.getConfig().itemCheatingMode, RESET, () -> ItemCheatingMode.REI_LIKE, i -> configManager.getConfig().itemCheatingMode = i, e -> { return I18n.translate("text.rei.config.item_cheating_mode." + e.name().toLowerCase()); }, () -> getConfigTooltip("item_cheating_mode"))); - action.addOption(new StringListEntry("text.rei.give_command", RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand, RESET, () -> "/give {player_name} {item_identifier}{nbt} {count}", s -> RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand = s, () -> getConfigTooltip("give_command"))); - action.addOption(new StringListEntry("text.rei.gamemode_command", RoughlyEnoughItemsCore.getConfigManager().getConfig().gamemodeCommand, RESET, () -> "/gamemode {gamemode}", s -> RoughlyEnoughItemsCore.getConfigManager().getConfig().gamemodeCommand = s, () -> getConfigTooltip("gamemode_command"))); - action.addOption(new StringListEntry("text.rei.weather_command", RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand, RESET, () -> "/weather {weather}", s -> RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand = s, () -> getConfigTooltip("weather_command"))); - action.addOption(new BooleanListEntry("text.rei.config.register_in_other_thread", RoughlyEnoughItemsCore.getConfigManager().getConfig().registerRecipesInAnotherThread, RESET, () -> true, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().registerRecipesInAnotherThread = bool, () -> getConfigTooltip("register_in_other_thread"))); - ConfigScreenBuilder.CategoryBuilder modules = builder.addCategory("text.rei.config.modules"); - modules.addOption(new BooleanListEntry("text.rei.config.enable_craftable_only", RoughlyEnoughItemsCore.getConfigManager().getConfig().enableCraftableOnlyButton, RESET, () -> true, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().enableCraftableOnlyButton = bool, () -> getConfigTooltip("enable_craftable_only"))); - modules.addOption(new BooleanListEntry("text.rei.config.enable_util_buttons", RoughlyEnoughItemsCore.getConfigManager().getConfig().showUtilsButtons, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().showUtilsButtons = bool, () -> getConfigTooltip("enable_util_buttons"))); - modules.addOption(new BooleanListEntry("text.rei.config.disable_recipe_book", RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook, RESET, () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook = bool, () -> getConfigTooltip("disable_recipe_book"))); - return builder.build(screen -> { + action.addEntry(new StringListEntry("text.rei.give_command", configManager.getConfig().giveCommand, RESET, () -> "/give {player_name} {item_identifier}{nbt} {count}", s -> configManager.getConfig().giveCommand = s, () -> getConfigTooltip("give_command"))); + action.addEntry(new StringListEntry("text.rei.gamemode_command", configManager.getConfig().gamemodeCommand, RESET, () -> "/gamemode {gamemode}", s -> configManager.getConfig().gamemodeCommand = s, () -> getConfigTooltip("gamemode_command"))); + action.addEntry(new StringListEntry("text.rei.weather_command", configManager.getConfig().weatherCommand, RESET, () -> "/weather {weather}", s -> configManager.getConfig().weatherCommand = s, () -> getConfigTooltip("weather_command"))); + action.addEntry(new BooleanListEntry("text.rei.config.register_in_other_thread", configManager.getConfig().registerRecipesInAnotherThread, RESET, () -> true, bool -> configManager.getConfig().registerRecipesInAnotherThread = bool, () -> getConfigTooltip("register_in_other_thread"))); + ConfigCategory modules = builder.getOrCreateCategory("text.rei.config.modules"); + modules.addEntry(new BooleanListEntry("text.rei.config.enable_craftable_only", configManager.getConfig().enableCraftableOnlyButton, RESET, () -> true, bool -> configManager.getConfig().enableCraftableOnlyButton = bool, () -> getConfigTooltip("enable_craftable_only"))); + modules.addEntry(new BooleanListEntry("text.rei.config.enable_util_buttons", configManager.getConfig().showUtilsButtons, RESET, () -> false, bool -> configManager.getConfig().showUtilsButtons = bool, () -> getConfigTooltip("enable_util_buttons"))); + modules.addEntry(new BooleanListEntry("text.rei.config.disable_recipe_book", configManager.getConfig().disableRecipeBook, RESET, () -> false, bool -> configManager.getConfig().disableRecipeBook = bool, () -> getConfigTooltip("disable_recipe_book"))); + return builder.setAfterInitConsumer(screen -> { ButtonWidget w = new ButtonWidget(6, 6, 60, 20, I18n.translate("text.rei.credits"), widget -> MinecraftClient.getInstance().openScreen(new CreditsScreen(MinecraftClient.getInstance().currentScreen))); ((ScreenHooks) screen).cloth_getButtonWidgets().add(0, w); ((ScreenHooks) screen).cloth_getChildren().add(0, w); - }); + }).build(); } private static Optional<String[]> getConfigTooltip(String s, Object... o) { |
