aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-08-08 16:53:46 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-08-08 16:53:46 +0800
commit10fa4cea1da644efe5b3045d3159a3eebdb8c0a8 (patch)
tree0e8f504b66391d6762d526c0e7cdd94c3cb6022f /src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java
parent6464acb0a7fe98ab30f9419e6aa95bdd1e92bc74 (diff)
downloadRoughlyEnoughItems-10fa4cea1da644efe5b3045d3159a3eebdb8c0a8.tar.gz
RoughlyEnoughItems-10fa4cea1da644efe5b3045d3159a3eebdb8c0a8.tar.bz2
RoughlyEnoughItems-10fa4cea1da644efe5b3045d3159a3eebdb8c0a8.zip
Using fiber as a config lib
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java')
-rw-r--r--src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java307
1 files changed, 307 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java b/src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java
new file mode 100644
index 000000000..8fac22090
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/client/ConfigObjectImpl.java
@@ -0,0 +1,307 @@
+/*
+ * Roughly Enough Items by Danielshe.
+ * Licensed under the MIT License.
+ */
+
+package me.shedaniel.rei.client;
+
+import me.shedaniel.rei.api.ConfigObject;
+import me.shedaniel.rei.gui.config.ItemCheatingMode;
+import me.shedaniel.rei.gui.config.ItemListOrdering;
+import me.shedaniel.rei.gui.config.ItemListOrderingConfig;
+import me.shedaniel.rei.gui.config.RecipeScreenType;
+import me.zeroeightsix.fiber.exception.FiberException;
+import me.zeroeightsix.fiber.tree.ConfigNode;
+import me.zeroeightsix.fiber.tree.ConfigValue;
+import me.zeroeightsix.fiber.tree.Node;
+
+public class ConfigObjectImpl implements ConfigObject {
+
+ public ConfigNode configNode = new ConfigNode();
+
+ private Node general = configNode.fork("!general");
+ private Node appearance = configNode.fork("appearance");
+ private Node modules = configNode.fork("modules");
+ private Node technical = configNode.fork("technical");
+
+ private ConfigValue<Boolean> cheating = ConfigValue.builder(Boolean.class)
+ .withParent(general)
+ .withDefaultValue(false)
+ .withComment("Declares whether cheating mode is on.")
+ .withName("cheating")
+ .build();
+
+ private ConfigValue<ItemListOrderingConfig> itemListOrdering = ConfigValue.builder(ItemListOrderingConfig.class)
+ .withParent(appearance)
+ .withDefaultValue(ItemListOrderingConfig.REGISTRY_ASCENDING)
+ .withComment("The ordering of the items on the item panel.")
+ .withName("itemListOrdering")
+ .build();
+
+ private ConfigValue<Boolean> darkTheme = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares the appearance of REI windows.")
+ .withName("darkTheme")
+ .build();
+
+ private ConfigValue<RecipeScreenType> recipeScreenType = ConfigValue.builder(RecipeScreenType.class)
+ .withParent(appearance)
+ .withDefaultValue(RecipeScreenType.UNSET)
+ .withComment("The ordering of the items on the item panel.")
+ .withName("recipeScreenType")
+ .build();
+
+ private ConfigValue<Boolean> loadDefaultPlugin = ConfigValue.builder(Boolean.class)
+ .withParent(technical)
+ .withDefaultValue(true)
+ .withComment("To disable REI's default plugin.\nDon't change this unless you understand what you are doing")
+ .withName("loadDefaultPlugin")
+ .build();
+
+ private ConfigValue<Boolean> sideSearchField = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares the position of the search field.")
+ .withName("sideSearchField")
+ .build();
+
+ private ConfigValue<Boolean> mirrorItemPanel = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares the position of the item list panel.")
+ .withName("mirrorItemPanel")
+ .build();
+
+ private ConfigValue<Boolean> enableCraftableOnlyButton = ConfigValue.builder(Boolean.class)
+ .withParent(modules)
+ .withDefaultValue(true)
+ .withComment("Declares whether the craftable filter button is enabled.")
+ .withName("enableCraftableOnlyButton")
+ .build();
+
+ private ConfigValue<String> gamemodeCommand = ConfigValue.builder(String.class)
+ .withParent(technical)
+ .withDefaultValue("/gamemode {gamemode}")
+ .withComment("Declares the command used to change gamemode.")
+ .withName("gamemodeCommand")
+ .build();
+
+ private ConfigValue<String> giveCommand = ConfigValue.builder(String.class)
+ .withParent(technical)
+ .withDefaultValue("/give {player_name} {item_identifier}{nbt} {count}")
+ .withComment("Declares the command used in servers to cheat items.")
+ .withName("giveCommand")
+ .build();
+
+ private ConfigValue<String> weatherCommand = ConfigValue.builder(String.class)
+ .withParent(technical)
+ .withDefaultValue("/weather {weather}")
+ .withComment("Declares the command used to change weather.")
+ .withName("weatherCommand")
+ .build();
+
+ private ConfigValue<Integer> maxRecipePerPage = ConfigValue.builder(Integer.class)
+ .withParent(appearance)
+ .withDefaultValue(3)
+ .withComment("Declares the maximum amount of recipes displayed in a page if possible.")
+ .withName("maxRecipePerPage")
+ .constraints()
+ .minNumerical(2)
+ .maxNumerical(99)
+ .finish()
+ .build();
+
+ private ConfigValue<Boolean> showUtilsButtons = ConfigValue.builder(Boolean.class)
+ .withParent(modules)
+ .withDefaultValue(false)
+ .withComment("Declares whether the utils buttons are shown.")
+ .withName("showUtilsButtons")
+ .build();
+
+ private ConfigValue<Boolean> disableRecipeBook = ConfigValue.builder(Boolean.class)
+ .withParent(modules)
+ .withDefaultValue(false)
+ .withComment("Declares whether REI should remove the recipe book.")
+ .withName("disableRecipeBook")
+ .build();
+
+ private ConfigValue<Boolean> clickableRecipeArrows = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(true)
+ .withName("clickableRecipeArrows")
+ .build();
+
+ private ConfigValue<ItemCheatingMode> itemCheatingMode = ConfigValue.builder(ItemCheatingMode.class)
+ .withParent(appearance)
+ .withDefaultValue(ItemCheatingMode.REI_LIKE)
+ .withName("itemCheatingMode")
+ .build();
+
+ private ConfigValue<Boolean> lightGrayRecipeBorder = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares the appearance of recipe's border.")
+ .withName("lightGrayRecipeBorder")
+ .build();
+
+ private ConfigValue<Boolean> appendModNames = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares whether REI should append mod names to item stacks.")
+ .withName("appendModNames")
+ .build();
+
+ private ConfigValue<Boolean> villagerScreenPermanentScrollBar = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(false)
+ .withComment("Declares how the scrollbar in villager screen act.")
+ .withName("villagerScreenPermanentScrollBar")
+ .build();
+
+ private ConfigValue<Boolean> registerRecipesInAnotherThread = ConfigValue.builder(Boolean.class)
+ .withParent(technical)
+ .withDefaultValue(true)
+ .withName("registerRecipesInAnotherThread")
+ .build();
+
+ private ConfigValue<RelativePoint> choosePageDialogPoint = ConfigValue.builder(RelativePoint.class)
+ .withParent(technical)
+ .withDefaultValue(new RelativePoint(.5, .5))
+ .withName("choosePageDialogPoint")
+ .build();
+
+ public ConfigObjectImpl() throws FiberException {
+
+ }
+
+ @Override
+ public ConfigNode getConfigNode() {
+ return configNode;
+ }
+
+ @Override
+ public boolean isCheating() {
+ return cheating.getValue();
+ }
+
+ @Override
+ public void setCheating(boolean cheating) {
+ this.cheating.setValue(cheating);
+ }
+
+ @Override
+ public ItemListOrdering getItemListOrdering() {
+ return itemListOrdering.getValue().getOrdering();
+ }
+
+ @Override
+ public boolean isItemListAscending() {
+ return itemListOrdering.getValue().isAscending();
+ }
+
+ @Override
+ public boolean isUsingDarkTheme() {
+ return darkTheme.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean shouldAppendModNames() {
+ return appendModNames.getValue().booleanValue();
+ }
+
+ @Override
+ public RecipeScreenType getRecipeScreenType() {
+ return recipeScreenType.getValue();
+ }
+
+ @Override
+ public void setRecipeScreenType(RecipeScreenType recipeScreenType) {
+ this.recipeScreenType.setValue(recipeScreenType);
+ }
+
+ @Override
+ public boolean isLoadingDefaultPlugin() {
+ return loadDefaultPlugin.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean isSideSearchField() {
+ return sideSearchField.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean isLeftHandSidePanel() {
+ return mirrorItemPanel.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean isCraftableFilterEnabled() {
+ return enableCraftableOnlyButton.getValue().booleanValue();
+ }
+
+ @Override
+ public String getGamemodeCommand() {
+ return gamemodeCommand.getValue();
+ }
+
+ @Override
+ public String getGiveCommand() {
+ return giveCommand.getValue();
+ }
+
+ @Override
+ public String getWeatherCommand() {
+ return weatherCommand.getValue();
+ }
+
+ @Override
+ public int getMaxRecipePerPage() {
+ return maxRecipePerPage.getValue().intValue();
+ }
+
+ @Override
+ public boolean doesShowUtilsButtons() {
+ return showUtilsButtons.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean doesDisableRecipeBook() {
+ return disableRecipeBook.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean areClickableRecipeArrowsEnabled() {
+ return clickableRecipeArrows.getValue().booleanValue();
+ }
+
+ @Override
+ public ItemCheatingMode getItemCheatingMode() {
+ return itemCheatingMode.getValue();
+ }
+
+ @Override
+ public boolean isUsingLightGrayRecipeBorder() {
+ return lightGrayRecipeBorder.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean doesVillagerScreenHavePermanentScrollBar() {
+ return villagerScreenPermanentScrollBar.getValue().booleanValue();
+ }
+
+ @Override
+ public boolean doesRegisterRecipesInAnotherThread() {
+ return registerRecipesInAnotherThread.getValue().booleanValue();
+ }
+
+ @Override
+ public RelativePoint getChoosePageDialogPoint() {
+ return choosePageDialogPoint.getValue();
+ }
+
+ @Override
+ public void setChoosePageDialogPoint(RelativePoint choosePageDialogPoint) {
+ this.choosePageDialogPoint.setValue(choosePageDialogPoint);
+ }
+}