diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-01-09 18:49:17 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-01-09 18:49:17 +0800 |
| commit | e01283e9900ecdb874636f1b364f0b5584618d4f (patch) | |
| tree | 8eb83a049fff44ff9a93e798a5a5f7c5312458e3 /src/main/java | |
| parent | de3c58b1e140ba3e3a450c01df226e650ec4a391 (diff) | |
| download | RoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.tar.gz RoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.tar.bz2 RoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.zip | |
1.5.1 Backport
Diffstat (limited to 'src/main/java')
60 files changed, 790 insertions, 216 deletions
diff --git a/src/main/java/me/shedaniel/ClientListener.java b/src/main/java/me/shedaniel/ClientListener.java index b6b1052bd..16b4f6f0d 100755 --- a/src/main/java/me/shedaniel/ClientListener.java +++ b/src/main/java/me/shedaniel/ClientListener.java @@ -18,9 +18,9 @@ import java.util.*; public class ClientListener implements DoneLoading, RecipeLoadListener { - public static KeyBindFunction recipeKeybind; - public static KeyBindFunction hideKeybind; - public static KeyBindFunction useKeybind; + public static KeyBindFunction recipeKeyBind; + public static KeyBindFunction hideKeyBind; + public static KeyBindFunction useKeyBind; public static List<KeyBindFunction> keyBinds = new ArrayList<>(); private List<IREIPlugin> plugins; @@ -38,7 +38,7 @@ public class ClientListener implements DoneLoading, RecipeLoadListener { plugins = new ArrayList<>(); stackList = new ArrayList<>(); - recipeKeybind = new KeyBindFunction(Core.config.recipeKeyBind) { + recipeKeyBind = new KeyBindFunction(Core.config.recipeKeyBind) { @Override public boolean apply(int key) { if (key == this.getKey()) @@ -46,7 +46,7 @@ public class ClientListener implements DoneLoading, RecipeLoadListener { return key == this.getKey(); } }; - hideKeybind = new KeyBindFunction(Core.config.hideKeyBind) { + hideKeyBind = new KeyBindFunction(Core.config.hideKeyBind) { @Override public boolean apply(int key) { if (key == this.getKey()) @@ -54,7 +54,7 @@ public class ClientListener implements DoneLoading, RecipeLoadListener { return key == this.getKey(); } }; - useKeybind = new KeyBindFunction(Core.config.usageKeyBind) { + useKeyBind = new KeyBindFunction(Core.config.usageKeyBind) { @Override public boolean apply(int key) { if (key == this.getKey()) @@ -62,7 +62,7 @@ public class ClientListener implements DoneLoading, RecipeLoadListener { return key == this.getKey(); } }; - keyBinds.addAll(Arrays.asList(recipeKeybind, hideKeybind, useKeybind)); + keyBinds.addAll(Arrays.asList(recipeKeyBind, hideKeyBind, useKeyBind)); buildItemList(); } diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java index 4bfbb3990..1f0464bf9 100755 --- a/src/main/java/me/shedaniel/Core.java +++ b/src/main/java/me/shedaniel/Core.java @@ -6,11 +6,14 @@ import com.google.gson.JsonObject; import com.google.gson.internal.Streams; import com.google.gson.stream.JsonWriter; import me.shedaniel.config.REIConfig; +import me.shedaniel.config.REIRuntimeConfig; import me.shedaniel.network.CheatPacket; import me.shedaniel.network.DeletePacket; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.network.EnumPacketDirection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.dimdev.rift.listener.PacketAdder; import org.dimdev.riftloader.RiftLoader; import org.dimdev.riftloader.listener.InitializationListener; @@ -44,46 +47,49 @@ public class Core implements PacketAdder, InitializationListener { public static final File configFile = new File(RiftLoader.instance.configDir, "rei.json"); public static REIConfig config; - public static boolean centreSearchBox; + public static REIRuntimeConfig runtimeConfig; + public static Logger LOGGER = LogManager.getFormatterLogger("REI"); @Override public void onInitialization() { try { loadConfig(); - centreSearchBox = config.centreSearchBox; + runtimeConfig = new REIRuntimeConfig(); } catch (IOException e) { e.printStackTrace(); } } public static void loadConfig() throws IOException { - if (!configFile.exists()) - loadDefaultConfig(); + if (!configFile.exists() || !configFile.canRead()) { + config = new REIConfig(); + saveConfig(); + return; + } boolean failed = false; try { - InputStream in = Files.newInputStream(configFile.toPath()); - config = REIConfig.GSON.fromJson(new InputStreamReader(in), REIConfig.class); - } catch (Exception e){ + config = REIConfig.GSON.fromJson(new InputStreamReader(Files.newInputStream(configFile.toPath())), REIConfig.class); + } catch (Exception e) { failed = true; } if (failed || config == null) { - System.out.println("[REI] Failed to load config! Overwriting with default config."); + Core.LOGGER.error("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)) { + if (!configFile.exists() && !configFile.createNewFile()) { + Core.LOGGER.error("REI: Failed to save config! Overwriting with default config."); + config = new REIConfig(); + return; + } + FileWriter writer = new FileWriter(configFile, false); + try { REIConfig.GSON.toJson(config, writer); + } finally { writer.close(); } } diff --git a/src/main/java/me/shedaniel/api/IDisplayCategory.java b/src/main/java/me/shedaniel/api/IDisplayCategory.java index 7e41920bd..61b0b9962 100755 --- a/src/main/java/me/shedaniel/api/IDisplayCategory.java +++ b/src/main/java/me/shedaniel/api/IDisplayCategory.java @@ -11,6 +11,7 @@ import java.util.List; * Created by James on 8/7/2018. */ public interface IDisplayCategory<T extends IRecipe> { + public String getId(); public String getDisplayName(); @@ -28,4 +29,5 @@ public interface IDisplayCategory<T extends IRecipe> { public void addWidget(List<Control> controls, int number); public ItemStack getCategoryIcon(); + } diff --git a/src/main/java/me/shedaniel/api/IDisplayCategoryCraftable.java b/src/main/java/me/shedaniel/api/IDisplayCategoryCraftable.java new file mode 100644 index 000000000..596d50307 --- /dev/null +++ b/src/main/java/me/shedaniel/api/IDisplayCategoryCraftable.java @@ -0,0 +1,17 @@ +package me.shedaniel.api; + +import me.shedaniel.gui.RecipeGui; +import me.shedaniel.gui.widget.Control; +import net.minecraft.client.gui.GuiScreen; + +import java.util.List; + +public interface IDisplayCategoryCraftable<T extends IRecipe> extends IDisplayCategory<T> { + + public boolean canAutoCraftHere(Class<? extends GuiScreen> guiClass, T recipe); + + public boolean performAutoCraft(GuiScreen gui, T recipe); + + public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, GuiScreen parentGui, T recipe, int number); + +} diff --git a/src/main/java/me/shedaniel/api/IDisplayHelper.java b/src/main/java/me/shedaniel/api/IDisplayHelper.java deleted file mode 100755 index 6f230d3b5..000000000 --- a/src/main/java/me/shedaniel/api/IDisplayHelper.java +++ /dev/null @@ -1,7 +0,0 @@ -package me.shedaniel.api; - -/** - * Created by James on 8/7/2018. - */ -public interface IDisplayHelper { -} diff --git a/src/main/java/me/shedaniel/api/IDrawable.java b/src/main/java/me/shedaniel/api/IDrawable.java index 102b7e1c5..48294bea7 100755 --- a/src/main/java/me/shedaniel/api/IDrawable.java +++ b/src/main/java/me/shedaniel/api/IDrawable.java @@ -4,7 +4,9 @@ package me.shedaniel.api; * Created by James on 8/7/2018. */ public interface IDrawable { + public void draw(); - + public boolean isHighlighted(); + } diff --git a/src/main/java/me/shedaniel/api/IREIPlugin.java b/src/main/java/me/shedaniel/api/IREIPlugin.java index 98060163d..bde5f0d71 100755 --- a/src/main/java/me/shedaniel/api/IREIPlugin.java +++ b/src/main/java/me/shedaniel/api/IREIPlugin.java @@ -5,5 +5,10 @@ package me.shedaniel.api; */ public interface IREIPlugin { - public void register(); + public void registerCategories(); + + public void registerRecipes(); + + public void registerSpecialGuiExclusion(); + } diff --git a/src/main/java/me/shedaniel/api/IRecipe.java b/src/main/java/me/shedaniel/api/IRecipe.java index 6359c351a..32def1b7e 100755 --- a/src/main/java/me/shedaniel/api/IRecipe.java +++ b/src/main/java/me/shedaniel/api/IRecipe.java @@ -1,15 +1,20 @@ package me.shedaniel.api; +import net.minecraft.item.ItemStack; + import java.util.List; /** * Created by James on 7/27/2018. */ public interface IRecipe<T> { - + public String getId(); - + public List<T> getOutput(); - + public List<List<T>> getInput(); + + public List<List<ItemStack>> getRecipeRequiredInput(); + } diff --git a/src/main/java/me/shedaniel/api/IRecipeManager.java b/src/main/java/me/shedaniel/api/IRecipeManager.java index 355a1cd4d..82135bf3f 100755 --- a/src/main/java/me/shedaniel/api/IRecipeManager.java +++ b/src/main/java/me/shedaniel/api/IRecipeManager.java @@ -17,4 +17,5 @@ public interface IRecipeManager { public void addDisplayAdapter(IDisplayCategory adapter); public Map<IDisplayCategory, List<IRecipe>> getRecipesFor(ItemStack stack); + } diff --git a/src/main/java/me/shedaniel/api/TriBooleanProducer.java b/src/main/java/me/shedaniel/api/TriBooleanSupplier.java index 0925fee75..241307740 100755 --- a/src/main/java/me/shedaniel/api/TriBooleanProducer.java +++ b/src/main/java/me/shedaniel/api/TriBooleanSupplier.java @@ -3,6 +3,6 @@ package me.shedaniel.api; /** * Created by James on 8/4/2018. */ -public interface TriBooleanProducer { +public interface TriBooleanSupplier { public boolean accept(int first, int second, int third); } diff --git a/src/main/java/me/shedaniel/config/REIConfig.java b/src/main/java/me/shedaniel/config/REIConfig.java index 9e6b3d36f..c9e2efe47 100644 --- a/src/main/java/me/shedaniel/config/REIConfig.java +++ b/src/main/java/me/shedaniel/config/REIConfig.java @@ -7,11 +7,16 @@ import java.awt.event.KeyEvent; public class REIConfig { - public static Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + 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; public boolean centreSearchBox = false; + public REIItemListOrdering itemListOrdering = REIItemListOrdering.REGISTRY; + public boolean isAscending = true; + public boolean enableCraftableOnlyButton = false; } diff --git a/src/main/java/me/shedaniel/config/REIItemListOrdering.java b/src/main/java/me/shedaniel/config/REIItemListOrdering.java new file mode 100644 index 000000000..f0a6b5356 --- /dev/null +++ b/src/main/java/me/shedaniel/config/REIItemListOrdering.java @@ -0,0 +1,21 @@ +package me.shedaniel.config; + +import com.google.gson.annotations.SerializedName; + +public enum REIItemListOrdering { + + @SerializedName("registry") REGISTRY("ordering.rei.registry"), + @SerializedName("name") NAME("ordering.rei.name"), + @SerializedName("item_groups") ITEM_GROUPS("ordering.rei.item_groups"); + + private String nameTranslationKey; + + REIItemListOrdering(String nameTranslationKey) { + this.nameTranslationKey = nameTranslationKey; + } + + public String getNameTranslationKey() { + return nameTranslationKey; + } + +} diff --git a/src/main/java/me/shedaniel/config/REIRuntimeConfig.java b/src/main/java/me/shedaniel/config/REIRuntimeConfig.java new file mode 100644 index 000000000..b13a72bfb --- /dev/null +++ b/src/main/java/me/shedaniel/config/REIRuntimeConfig.java @@ -0,0 +1,8 @@ +package me.shedaniel.config; + +public class REIRuntimeConfig { + + public boolean craftableOnly = false; + public boolean centreSearchBox = false; + +} diff --git a/src/main/java/me/shedaniel/gui/ConfigGui.java b/src/main/java/me/shedaniel/gui/ConfigGui.java index b7426af30..bdf679768 100644 --- a/src/main/java/me/shedaniel/gui/ConfigGui.java +++ b/src/main/java/me/shedaniel/gui/ConfigGui.java @@ -2,12 +2,13 @@ package me.shedaniel.gui; import me.shedaniel.ClientListener; import me.shedaniel.Core; +import me.shedaniel.config.REIItemListOrdering; import me.shedaniel.gui.widget.KeyBindButton; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; -import net.minecraft.client.util.InputMappings; import java.io.IOException; import java.util.Arrays; @@ -24,7 +25,7 @@ public class ConfigGui extends GuiScreen { protected void initGui() { addButton(new KeyBindButton(997, parent.width / 2 - 20, 30, 80, 20, Core.config.recipeKeyBind, key -> { Core.config.recipeKeyBind = key; - ClientListener.recipeKeybind.setKey(key); + ClientListener.recipeKeyBind.setKey(key); try { Core.saveConfig(); } catch (IOException e) { @@ -33,7 +34,7 @@ public class ConfigGui extends GuiScreen { })); addButton(new KeyBindButton(998, parent.width / 2 - 20, 60, 80, 20, Core.config.usageKeyBind, key -> { Core.config.usageKeyBind = key; - ClientListener.useKeybind.setKey(key); + ClientListener.useKeyBind.setKey(key); try { Core.saveConfig(); } |
