Unknown 6 éve
szülő
commit
430ff25e1b

+ 1 - 1
build.gradle

@@ -6,7 +6,7 @@ sourceCompatibility = 1.8
 targetCompatibility = 1.8
 
 archivesBaseName = "RoughlyEnoughItems"
-version = "1.1-3"
+version = "1.2-4"
 
 minecraft {
 }

+ 44 - 7
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();
+        }
+    }
+    
 }

+ 16 - 0
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;
+    
+}

+ 1 - 0
src/main/java/me/shedaniel/library/KeyBindManager.java

@@ -27,4 +27,5 @@ public class KeyBindManager {
         }
         return false;
     }
+    
 }

+ 0 - 33
src/main/java/me/shedaniel/plugin/RandomRecipe.java

@@ -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())}))));
-    }
-}

+ 0 - 69
src/main/java/me/shedaniel/plugin/TestRandomCategory.java

@@ -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;
-    }
-}

+ 0 - 12
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"));
     }
     
     

+ 1 - 1
src/main/resources/fabric.mod.json

@@ -2,7 +2,7 @@
   "id": "roughlyenoughitems",
   "name": "RoughlyEnoughItems",
   "description": "To allow players to view items and recipes.",
-  "version": "1.1-SNAPSHOT",
+  "version": "1.2",
   "side": "client",
   "authors": [
     "Danielshe"