aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api')
-rw-r--r--src/main/java/me/shedaniel/rei/api/IItemRegisterer.java35
-rw-r--r--src/main/java/me/shedaniel/rei/api/IPluginDisabler.java23
-rw-r--r--src/main/java/me/shedaniel/rei/api/IRecipePlugin.java12
-rw-r--r--src/main/java/me/shedaniel/rei/api/PluginFunction.java5
4 files changed, 72 insertions, 3 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/IItemRegisterer.java b/src/main/java/me/shedaniel/rei/api/IItemRegisterer.java
new file mode 100644
index 000000000..090e26742
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/api/IItemRegisterer.java
@@ -0,0 +1,35 @@
+package me.shedaniel.rei.api;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+import java.util.List;
+
+public interface IItemRegisterer {
+
+ public List<ItemStack> getItemList();
+
+ @Deprecated
+ public List<ItemStack> getModifiableItemList();
+
+ public ItemStack[] getAllStacksFromItem(Item item);
+
+ public void registerItemStack(Item afterItem, ItemStack stack);
+
+ default public void registerItemStack(Item afterItem, ItemStack... stacks) {
+ for(ItemStack stack : stacks)
+ if (stack != null && !stack.isEmpty())
+ registerItemStack(afterItem, stack);
+ }
+
+ default public void registerItemStack(ItemStack... stacks) {
+ for(ItemStack stack : stacks)
+ if (stack != null && !stack.isEmpty())
+ registerItemStack(null, stack);
+ }
+
+ default boolean alreadyContain(ItemStack stack) {
+ return getItemList().stream().anyMatch(stack1 -> ItemStack.areEqual(stack, stack1));
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/api/IPluginDisabler.java b/src/main/java/me/shedaniel/rei/api/IPluginDisabler.java
new file mode 100644
index 000000000..8663e76bd
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/api/IPluginDisabler.java
@@ -0,0 +1,23 @@
+package me.shedaniel.rei.api;
+
+import net.minecraft.util.Identifier;
+
+public interface IPluginDisabler {
+
+ default public void disablePluginFunctions(Identifier plugin, PluginFunction... functions) {
+ for(PluginFunction function : functions)
+ disablePluginFunction(plugin, function);
+ }
+
+ default public void enablePluginFunctions(Identifier plugin, PluginFunction... functions) {
+ for(PluginFunction function : functions)
+ enablePluginFunction(plugin, function);
+ }
+
+ public void disablePluginFunction(Identifier plugin, PluginFunction function);
+
+ public void enablePluginFunction(Identifier plugin, PluginFunction function);
+
+ public boolean isFunctionEnabled(Identifier plugin, PluginFunction function);
+
+}
diff --git a/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java b/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java
index 064f20abe..6ba6c70e7 100644
--- a/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java
+++ b/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java
@@ -1,12 +1,18 @@
package me.shedaniel.rei.api;
+import me.shedaniel.rei.client.RecipeHelper;
+
public interface IRecipePlugin {
- public void registerPluginCategories();
+ default public void onFirstLoad(IPluginDisabler pluginDisabler) {}
+
+ public void registerItems(IItemRegisterer itemRegisterer);
+
+ public void registerPluginCategories(RecipeHelper recipeHelper);
- public void registerRecipes();
+ public void registerRecipeDisplays(RecipeHelper recipeHelper);
- public void registerSpeedCraft();
+ public void registerSpeedCraft(RecipeHelper recipeHelper);
default public int getPriority() {
return 0;
diff --git a/src/main/java/me/shedaniel/rei/api/PluginFunction.java b/src/main/java/me/shedaniel/rei/api/PluginFunction.java
new file mode 100644
index 000000000..bef757db1
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/api/PluginFunction.java
@@ -0,0 +1,5 @@
+package me.shedaniel.rei.api;
+
+public enum PluginFunction {
+ REGISTER_ITEMS, REGISTER_CATEGORIES, REGISTER_RECIPE_DISPLAYS, REGISTER_SPEED_CRAFT;
+}