diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api')
4 files changed, 71 insertions, 4 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..f397b15c0 --- /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.areItemStacksEqual(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..836cd3e6f --- /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.ResourceLocation; + +public interface IPluginDisabler { + + default public void disablePluginFunctions(ResourceLocation plugin, PluginFunction... functions) { + for(PluginFunction function : functions) + disablePluginFunction(plugin, function); + } + + default public void enablePluginFunctions(ResourceLocation plugin, PluginFunction... functions) { + for(PluginFunction function : functions) + enablePluginFunction(plugin, function); + } + + public void disablePluginFunction(ResourceLocation plugin, PluginFunction function); + + public void enablePluginFunction(ResourceLocation plugin, PluginFunction function); + + public boolean isFunctionEnabled(ResourceLocation 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 13b7518bf..6ba6c70e7 100644 --- a/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java +++ b/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java @@ -1,14 +1,18 @@ package me.shedaniel.rei.api; +import me.shedaniel.rei.client.RecipeHelper; + public interface IRecipePlugin { - default public void onFirstLoad() {} + default public void onFirstLoad(IPluginDisabler pluginDisabler) {} + + public void registerItems(IItemRegisterer itemRegisterer); - public void registerPluginCategories(); + 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; +} |
