aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-01 13:37:19 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-01 13:37:19 +0800
commit430ff25e1bbfce2fe90e69044439cc3ea179dbf1 (patch)
tree5b5a186dd65552bdd5a38d0f4fa7505660064d02 /src/main/java
parent620d77c53f37c2e96720e29b76346c5aa6b1ec0d (diff)
downloadRoughlyEnoughItems-430ff25e1bbfce2fe90e69044439cc3ea179dbf1.tar.gz
RoughlyEnoughItems-430ff25e1bbfce2fe90e69044439cc3ea179dbf1.tar.bz2
RoughlyEnoughItems-430ff25e1bbfce2fe90e69044439cc3ea179dbf1.zip
Config Draft
Diffstat (limited to 'src/main/java')
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java51
-rw-r--r--src/main/java/me/shedaniel/config/REIConfig.java16
-rwxr-xr-xsrc/main/java/me/shedaniel/library/KeyBindManager.java1
-rw-r--r--src/main/java/me/shedaniel/plugin/RandomRecipe.java33
-rw-r--r--src/main/java/me/shedaniel/plugin/TestRandomCategory.java69
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/VanillaPlugin.java12
6 files changed, 61 insertions, 121 deletions
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index f2f5c5541..55a7c879f 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/src/main/java/me/shedaniel/Core.java
@@ -1,8 +1,7 @@
package me.shedaniel;
-import me.shedaniel.library.KeyBindManager;
+import me.shedaniel.config.REIConfig;
import me.shedaniel.listenerdefinitions.IEvent;
-import me.shedaniel.listenerdefinitions.KeybindHandler;
import me.shedaniel.listenerdefinitions.PacketAdder;
import me.shedaniel.listeners.DrawContainerListener;
import me.shedaniel.listeners.ResizeListener;
@@ -10,13 +9,11 @@ import me.shedaniel.network.CheatPacket;
import me.shedaniel.network.DeletePacket;
import me.shedaniel.plugin.VanillaPlugin;
import net.fabricmc.api.ClientModInitializer;
-import net.fabricmc.api.ModInitializer;
-import net.fabricmc.fabric.events.client.SpriteEvent;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.settings.KeyBinding;
+import net.fabricmc.loader.FabricLoader;
import net.minecraft.network.NetworkSide;
-import org.apache.commons.lang3.ArrayUtils;
+import java.io.*;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@@ -46,10 +43,17 @@ public class Core implements PacketAdder, ClientModInitializer {
}
private static List<IEvent> events = new LinkedList<>();
+ public static final File configFile = new File(FabricLoader.INSTANCE.getConfigDirectory(), "rei.json");
+ public static REIConfig config;
@Override
public void onInitializeClient() {
registerEvents();
+ try {
+ loadConfig();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
private void registerEvents() {
@@ -71,4 +75,37 @@ public class Core implements PacketAdder, ClientModInitializer {
});
return list;
}
+
+ public static void loadConfig() throws IOException {
+ if (!configFile.exists())
+ loadDefaultConfig();
+ boolean failed = false;
+ try {
+ InputStream in = Files.newInputStream(configFile.toPath());
+ config = REIConfig.GSON.fromJson(new InputStreamReader(in), REIConfig.class);
+ } catch (Exception e){
+ failed = true;
+ }
+ if (failed || config == null) {
+ System.out.println("[REI] Failed to load config! Overwriting with default config.");
+ config = new REIConfig();
+ }
+ saveConfig();
+ }
+
+ public static void loadDefaultConfig() throws IOException {
+ config = new REIConfig();
+ saveConfig();
+ }
+
+ public static void saveConfig() throws IOException {
+ configFile.getParentFile().mkdirs();
+ if (configFile.exists())
+ configFile.delete();
+ try (PrintWriter writer = new PrintWriter(configFile)) {
+ REIConfig.GSON.toJson(config, writer);
+ writer.close();
+ }
+ }
+
}
diff --git a/src/main/java/me/shedaniel/config/REIConfig.java b/src/main/java/me/shedaniel/config/REIConfig.java
new file mode 100644
index 000000000..4acaa102a
--- /dev/null
+++ b/src/main/java/me/shedaniel/config/REIConfig.java
@@ -0,0 +1,16 @@
+package me.shedaniel.config;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import java.awt.event.KeyEvent;
+
+public class REIConfig {
+
+ public static Gson GSON = new GsonBuilder().setPrettyPrinting().create();
+
+ public int recipeKeyBind = KeyEvent.VK_R;
+ public int usageKeyBind = KeyEvent.VK_U;
+ public int hideKeyBind = KeyEvent.VK_O;
+
+}
diff --git a/src/main/java/me/shedaniel/library/KeyBindManager.java b/src/main/java/me/shedaniel/library/KeyBindManager.java
index bbce1b3f6..5a923ad38 100755
--- a/src/main/java/me/shedaniel/library/KeyBindManager.java
+++ b/src/main/java/me/shedaniel/library/KeyBindManager.java
@@ -27,4 +27,5 @@ public class KeyBindManager {
}
return false;
}
+
}
diff --git a/src/main/java/me/shedaniel/plugin/RandomRecipe.java b/src/main/java/me/shedaniel/plugin/RandomRecipe.java
deleted file mode 100644
index 4a33c8be1..000000000
--- a/src/main/java/me/shedaniel/plugin/RandomRecipe.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package me.shedaniel.plugin;
-
-import me.shedaniel.api.IRecipe;
-import net.minecraft.block.Blocks;
-import net.minecraft.item.ItemStack;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-public class RandomRecipe implements IRecipe<ItemStack> {
-
- private String id;
-
- public RandomRecipe(String id) {
- this.id = id;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public List<ItemStack> getOutput() {
- return new LinkedList<>(Arrays.asList(new ItemStack[]{new ItemStack(Blocks.BEETROOTS.getItem())}));
- }
-
- @Override
- public List<List<ItemStack>> getInput() {
- return new LinkedList<>(Arrays.asList(new LinkedList<>(Arrays.asList(new ItemStack[]{new ItemStack(Blocks.OAK_LOG.getItem())}))));
- }
-}
diff --git a/src/main/java/me/shedaniel/plugin/TestRandomCategory.java b/src/main/java/me/shedaniel/plugin/TestRandomCategory.java
deleted file mode 100644
index 877e9c3fd..000000000
--- a/src/main/java/me/shedaniel/plugin/TestRandomCategory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package me.shedaniel.plugin;
-
-import me.shedaniel.api.IDisplayCategory;
-import me.shedaniel.gui.widget.Control;
-import me.shedaniel.gui.widget.REISlot;
-import net.minecraft.item.ItemStack;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-public class TestRandomCategory implements IDisplayCategory<RandomRecipe> {
-
- private String id;
- private List<RandomRecipe> recipes;
- private ItemStack item;
-
- public TestRandomCategory(String id, ItemStack item) {
- this.id = id;
- this.item = item;
- }
-
- @Override
- public String getId() {
- return id;
- }
-
- @Override
- public String getDisplayName() {
- return id;
- }
-
- @Override
- public void addRecipe(RandomRecipe recipe) {
- if (this.recipes == null)
- this.recipes = new ArrayList<>();
- this.recipes.add(recipe);
- }
-
- @Override
- public void resetRecipes() {
- this.recipes = new ArrayList<>();
- }
-
- @Override
- public List<REISlot> setupDisplay(int number) {
- return new LinkedList<>();
- }
-
- @Override
- public boolean canDisplay(RandomRecipe recipe) {
- return false;
- }
-
- @Override
- public void drawExtras() {
-
- }
-
- @Override
- public void addWidget(List<Control> controls, int number) {
-
- }
-
- @Override
- public ItemStack getCategoryIcon() {
- return item;
- }
-}
diff --git a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
index 940d9c779..74b734761 100755
--- a/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
+++ b/src/main/java/me/shedaniel/plugin/VanillaPlugin.java
@@ -47,13 +47,6 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
REIRecipeManager.instance().addDisplayAdapter(new VanillaCraftingCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaFurnaceCategory());
REIRecipeManager.instance().addDisplayAdapter(new VanillaPotionCategory());
- REIRecipeManager.instance().addDisplayAdapter(new VanillaSmokerCategory());
- REIRecipeManager.instance().addDisplayAdapter(new VanillaBlastFurnaceCategory());
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("a", new ItemStack(Blocks.ACACIA_BUTTON.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("b", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("c", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("d", new ItemStack(Blocks.ACACIA_LOG.asItem())));
-// REIRecipeManager.instance().addDisplayAdapter(new TestRandomCategory("e", new ItemStack(Blocks.ACACIA_LOG.asItem())));
for(Recipe recipe : REIRecipeManager.instance().recipeManager.values()) {
if (recipe instanceof ShapelessRecipe) {
@@ -87,11 +80,6 @@ public class VanillaPlugin implements IREIPlugin, PotionCraftingAdder {
REIRecipeManager.instance().addRecipe("smoker", smokerRecipes);
REIRecipeManager.instance().addRecipe("potion", potionRecipes.stream().distinct().collect(Collectors.toList()));
REIRecipeManager.instance().addRecipe("blastingfurnace", blastFurnaceRecipes);
-// REIRecipeManager.instance().addPotionRecipe("a", new RandomRecipe("a"));
-// REIRecipeManager.instance().addPotionRecipe("b", new RandomRecipe("b"));
-// REIRecipeManager.instance().addPotionRecipe("c", new RandomRecipe("c"));
-// REIRecipeManager.instance().addPotionRecipe("d", new RandomRecipe("d"));
-// REIRecipeManager.instance().addPotionRecipe("e", new RandomRecipe("e"));
}