diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api')
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; +} |
