aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-09 18:49:17 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-09 18:49:17 +0800
commite01283e9900ecdb874636f1b364f0b5584618d4f (patch)
tree8eb83a049fff44ff9a93e798a5a5f7c5312458e3 /src/main/java
parentde3c58b1e140ba3e3a450c01df226e650ec4a391 (diff)
downloadRoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.tar.gz
RoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.tar.bz2
RoughlyEnoughItems-e01283e9900ecdb874636f1b364f0b5584618d4f.zip
1.5.1 Backport
Diffstat (limited to 'src/main/java')
-rwxr-xr-xsrc/main/java/me/shedaniel/ClientListener.java14
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java38
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IDisplayCategory.java2
-rw-r--r--src/main/java/me/shedaniel/api/IDisplayCategoryCraftable.java17
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IDisplayHelper.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IDrawable.java4
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IREIPlugin.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IRecipe.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IRecipeManager.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/api/TriBooleanSupplier.java (renamed from src/main/java/me/shedaniel/api/TriBooleanProducer.java)2
-rw-r--r--src/main/java/me/shedaniel/config/REIConfig.java7
-rw-r--r--src/main/java/me/shedaniel/config/REIItemListOrdering.java21
-rw-r--r--src/main/java/me/shedaniel/config/REIRuntimeConfig.java8
-rw-r--r--src/main/java/me/shedaniel/gui/ConfigGui.java72
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/Drawable.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/GuiItemList.java184
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/REIRenderHelper.java14
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/RecipeContainer.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/RecipeGui.java37
-rw-r--r--src/main/java/me/shedaniel/gui/SearchArgument.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Button.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Control.java5
-rw-r--r--src/main/java/me/shedaniel/gui/widget/CraftableToggleButton.java73
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/IFocusable.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/REISlot.java3
-rw-r--r--src/main/java/me/shedaniel/gui/widget/SmallButton.java72
-rw-r--r--src/main/java/me/shedaniel/gui/widget/Tab.java5
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/WidgetArrow.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/impl/REIRecipeManager.java122
-rw-r--r--src/main/java/me/shedaniel/library/KeyBindFunction.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/library/Sink.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/CharInput.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/DoneLoading.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/DrawContainer.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/GuiClick.java (renamed from src/main/java/me/shedaniel/listenerdefinitions/GuiCickListener.java)4
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/GuiKeyDown.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/GuiMouseScroll.java (renamed from src/main/java/me/shedaniel/listenerdefinitions/MouseScrollListener.java)4
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/IMixinGuiContainer.java1
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/IMixinGuiRecipeBook.java9
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/MinecraftResize.java2
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/PotionCraftingAdder.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/RecipeLoadListener.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listeners/DrawContainerListener.java3
-rwxr-xr-xsrc/main/java/me/shedaniel/listeners/InitListener.java5
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinDoneLoading.java8
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinGuiContainer.java4
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java4
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinGuiRecipeBook.java22
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinKeyboardListener.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinRecipeManager.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/network/CheatPacket.java1
-rwxr-xr-xsrc/main/java/me/shedaniel/network/DeletePacket.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/VanillaPlugin.java26
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java47
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingRecipe.java9
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java44
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java15
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/potion/VanillaPotionRecipe.java9
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();
}