From c9ac8fccef10d968faf9ec60d116694ef511cd14 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 5 Mar 2019 22:32:29 +0800 Subject: v2.3.2 --- .../me/shedaniel/rei/api/ButtonAreaSupplier.java | 13 ++++ .../java/me/shedaniel/rei/api/DisplaySettings.java | 15 +++++ .../me/shedaniel/rei/api/IDisplaySettings.java | 11 ---- .../java/me/shedaniel/rei/api/IRecipeCategory.java | 70 ---------------------- .../rei/api/IRecipeCategoryCraftable.java | 18 ------ .../java/me/shedaniel/rei/api/IRecipeDisplay.java | 25 -------- .../java/me/shedaniel/rei/api/IRecipePlugin.java | 19 ------ .../java/me/shedaniel/rei/api/ItemRegisterer.java | 35 ----------- .../java/me/shedaniel/rei/api/ItemRegistry.java | 35 +++++++++++ src/main/java/me/shedaniel/rei/api/REIPlugin.java | 19 ++++++ .../java/me/shedaniel/rei/api/RecipeCategory.java | 69 +++++++++++++++++++++ .../java/me/shedaniel/rei/api/RecipeDisplay.java | 25 ++++++++ .../java/me/shedaniel/rei/api/RecipeHelper.java | 18 +++--- .../shedaniel/rei/api/SpeedCraftAreaSupplier.java | 13 ---- .../me/shedaniel/rei/api/SpeedCraftFunctional.java | 8 +-- 15 files changed, 189 insertions(+), 204 deletions(-) create mode 100644 src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java create mode 100644 src/main/java/me/shedaniel/rei/api/DisplaySettings.java delete mode 100644 src/main/java/me/shedaniel/rei/api/IDisplaySettings.java delete mode 100644 src/main/java/me/shedaniel/rei/api/IRecipeCategory.java delete mode 100644 src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java delete mode 100644 src/main/java/me/shedaniel/rei/api/IRecipeDisplay.java delete mode 100644 src/main/java/me/shedaniel/rei/api/IRecipePlugin.java delete mode 100644 src/main/java/me/shedaniel/rei/api/ItemRegisterer.java create mode 100644 src/main/java/me/shedaniel/rei/api/ItemRegistry.java create mode 100644 src/main/java/me/shedaniel/rei/api/REIPlugin.java create mode 100644 src/main/java/me/shedaniel/rei/api/RecipeCategory.java create mode 100644 src/main/java/me/shedaniel/rei/api/RecipeDisplay.java delete mode 100644 src/main/java/me/shedaniel/rei/api/SpeedCraftAreaSupplier.java (limited to 'src/main/java/me/shedaniel/rei/api') diff --git a/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java b/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java new file mode 100644 index 000000000..07125643c --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/ButtonAreaSupplier.java @@ -0,0 +1,13 @@ +package me.shedaniel.rei.api; + +import java.awt.*; + +public interface ButtonAreaSupplier { + + Rectangle get(Rectangle bounds); + + default String getButtonText() { + return "+"; + } + +} diff --git a/src/main/java/me/shedaniel/rei/api/DisplaySettings.java b/src/main/java/me/shedaniel/rei/api/DisplaySettings.java new file mode 100644 index 000000000..334d6cc6f --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/DisplaySettings.java @@ -0,0 +1,15 @@ +package me.shedaniel.rei.api; + +public interface DisplaySettings { + + int getDisplayHeight(RecipeCategory category); + + int getDisplayWidth(RecipeCategory category, T display); + + int getMaximumRecipePerPage(RecipeCategory category); + + default int getFixedRecipesPerPage() { + return -1; + } + +} diff --git a/src/main/java/me/shedaniel/rei/api/IDisplaySettings.java b/src/main/java/me/shedaniel/rei/api/IDisplaySettings.java deleted file mode 100644 index baf5aed79..000000000 --- a/src/main/java/me/shedaniel/rei/api/IDisplaySettings.java +++ /dev/null @@ -1,11 +0,0 @@ -package me.shedaniel.rei.api; - -public interface IDisplaySettings { - - int getDisplayHeight(IRecipeCategory category); - - int getDisplayWidth(IRecipeCategory category, T display); - - int getMaximumRecipePerPage(IRecipeCategory category); - -} diff --git a/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java b/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java deleted file mode 100644 index ad7605ac6..000000000 --- a/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java +++ /dev/null @@ -1,70 +0,0 @@ -package me.shedaniel.rei.api; - -import me.shedaniel.rei.gui.RecipeViewingScreen; -import me.shedaniel.rei.gui.widget.IWidget; -import me.shedaniel.rei.gui.widget.RecipeBaseWidget; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; - -import java.awt.*; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.function.Supplier; - - -public interface IRecipeCategory { - - Identifier getIdentifier(); - - ItemStack getCategoryIcon(); - - String getCategoryName(); - - default List setupDisplay(Supplier recipeDisplaySupplier, Rectangle bounds) { - return Collections.singletonList(new RecipeBaseWidget(bounds)); - } - - default void drawCategoryBackground(Rectangle bounds, int mouseX, int mouseY, float delta) { - new RecipeBaseWidget(bounds).draw(mouseX, mouseY, delta); - DrawableHelper.drawRect(bounds.x + 17, bounds.y + 5, bounds.x + bounds.width - 17, bounds.y + 17, RecipeViewingScreen.SUB_COLOR.getRGB()); - DrawableHelper.drawRect(bounds.x + 17, bounds.y + 21, bounds.x + bounds.width - 17, bounds.y + 33, RecipeViewingScreen.SUB_COLOR.getRGB()); - } - - default IDisplaySettings getDisplaySettings() { - return new IDisplaySettings() { - @Override - public int getDisplayHeight(IRecipeCategory category) { - return 66; - } - - @Override - public int getDisplayWidth(IRecipeCategory category, T display) { - return 150; - } - - @Override - public int getMaximumRecipePerPage(IRecipeCategory category) { - return 99; - } - }; - } - - default int getDisplayHeight() { - return getDisplaySettings().getDisplayHeight(this); - } - - default int getDisplayWidth(T display) { - return getDisplaySettings().getDisplayWidth(this, display); - } - - default int getMaximumRecipePerPage() { - return getDisplaySettings().getMaximumRecipePerPage(this); - } - - default boolean checkTags() { - return false; - } - -} diff --git a/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java b/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java deleted file mode 100644 index 696f5b229..000000000 --- a/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.shedaniel.rei.api; - -import me.shedaniel.rei.gui.widget.IWidget; -import me.shedaniel.rei.listeners.IMixinContainerScreen; -import net.minecraft.client.gui.Screen; - -import java.awt.*; -import java.util.List; - -public interface IRecipeCategoryCraftable { - - boolean canAutoCraftHere(Class screenClasses, T recipe); - - boolean performAutoCraft(Screen gui, T recipe); - - void registerAutoCraftButton(List widgets, Rectangle rectangle, IMixinContainerScreen parentScreen, T recipe); - -} diff --git a/src/main/java/me/shedaniel/rei/api/IRecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/IRecipeDisplay.java deleted file mode 100644 index df68c8486..000000000 --- a/src/main/java/me/shedaniel/rei/api/IRecipeDisplay.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.shedaniel.rei.api; - -import com.google.common.collect.Lists; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Recipe; -import net.minecraft.util.Identifier; - -import java.util.List; -import java.util.Optional; - -public interface IRecipeDisplay { - - Optional getRecipe(); - - List> getInput(); - - List getOutput(); - - default List> getRequiredItems() { - return Lists.newArrayList(); - } - - Identifier getRecipeCategory(); - -} diff --git a/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java b/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java deleted file mode 100644 index 2f351ea94..000000000 --- a/src/main/java/me/shedaniel/rei/api/IRecipePlugin.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.shedaniel.rei.api; - -public interface IRecipePlugin { - - default void onFirstLoad(PluginDisabler pluginDisabler) {} - - void registerItems(ItemRegisterer itemRegisterer); - - void registerPluginCategories(RecipeHelper recipeHelper); - - void registerRecipeDisplays(RecipeHelper recipeHelper); - - void registerSpeedCraft(RecipeHelper recipeHelper); - - default int getPriority() { - return 0; - } - -} diff --git a/src/main/java/me/shedaniel/rei/api/ItemRegisterer.java b/src/main/java/me/shedaniel/rei/api/ItemRegisterer.java deleted file mode 100644 index 6e22e2097..000000000 --- a/src/main/java/me/shedaniel/rei/api/ItemRegisterer.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.shedaniel.rei.api; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.util.List; - -public interface ItemRegisterer { - - List getItemList(); - - @Deprecated - List getModifiableItemList(); - - ItemStack[] getAllStacksFromItem(Item item); - - void registerItemStack(Item afterItem, ItemStack stack); - - default void registerItemStack(Item afterItem, ItemStack... stacks) { - for(ItemStack stack : stacks) - if (stack != null && !stack.isEmpty()) - registerItemStack(afterItem, stack); - } - - default 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/ItemRegistry.java b/src/main/java/me/shedaniel/rei/api/ItemRegistry.java new file mode 100644 index 000000000..690ca74da --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/ItemRegistry.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 ItemRegistry { + + List getItemList(); + + @Deprecated + List getModifiableItemList(); + + ItemStack[] getAllStacksFromItem(Item item); + + void registerItemStack(Item afterItem, ItemStack stack); + + default void registerItemStack(Item afterItem, ItemStack... stacks) { + for(ItemStack stack : stacks) + if (stack != null && !stack.isEmpty()) + registerItemStack(afterItem, stack); + } + + default 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/REIPlugin.java b/src/main/java/me/shedaniel/rei/api/REIPlugin.java new file mode 100644 index 000000000..8dba79269 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/REIPlugin.java @@ -0,0 +1,19 @@ +package me.shedaniel.rei.api; + +public interface REIPlugin { + + default void onFirstLoad(PluginDisabler pluginDisabler) {} + + void registerItems(ItemRegistry itemRegistry); + + void registerPluginCategories(RecipeHelper recipeHelper); + + void registerRecipeDisplays(RecipeHelper recipeHelper); + + void registerSpeedCraft(RecipeHelper recipeHelper); + + default int getPriority() { + return 0; + } + +} diff --git a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java new file mode 100644 index 000000000..79a9a0b7d --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java @@ -0,0 +1,69 @@ +package me.shedaniel.rei.api; + +import me.shedaniel.rei.gui.RecipeViewingScreen; +import me.shedaniel.rei.gui.widget.IWidget; +import me.shedaniel.rei.gui.widget.RecipeBaseWidget; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; + +import java.awt.*; +import java.util.Collections; +import java.util.List; +import java.util.function.Supplier; + + +public interface RecipeCategory { + + Identifier getIdentifier(); + + ItemStack getCategoryIcon(); + + String getCategoryName(); + + default List setupDisplay(Supplier recipeDisplaySupplier, Rectangle bounds) { + return Collections.singletonList(new RecipeBaseWidget(bounds)); + } + + default void drawCategoryBackground(Rectangle bounds, int mouseX, int mouseY, float delta) { + new RecipeBaseWidget(bounds).draw(mouseX, mouseY, delta); + DrawableHelper.drawRect(bounds.x + 17, bounds.y + 5, bounds.x + bounds.width - 17, bounds.y + 17, RecipeViewingScreen.SUB_COLOR.getRGB()); + DrawableHelper.drawRect(bounds.x + 17, bounds.y + 21, bounds.x + bounds.width - 17, bounds.y + 33, RecipeViewingScreen.SUB_COLOR.getRGB()); + } + + default DisplaySettings getDisplaySettings() { + return new DisplaySettings() { + @Override + public int getDisplayHeight(RecipeCategory category) { + return 66; + } + + @Override + public int getDisplayWidth(RecipeCategory category, T display) { + return 150; + } + + @Override + public int getMaximumRecipePerPage(RecipeCategory category) { + return 99; + } + }; + } + + default int getDisplayHeight() { + return getDisplaySettings().getDisplayHeight(this); + } + + default int getDisplayWidth(T display) { + return getDisplaySettings().getDisplayWidth(this, display); + } + + default int getMaximumRecipePerPage() { + return getDisplaySettings().getMaximumRecipePerPage(this); + } + + default boolean checkTags() { + return false; + } + +} diff --git a/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java new file mode 100644 index 000000000..109562aa2 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/RecipeDisplay.java @@ -0,0 +1,25 @@ +package me.shedaniel.rei.api; + +import com.google.common.collect.Lists; +import net.minecraft.item.ItemStack; +import net.minecraft.recipe.Recipe; +import net.minecraft.util.Identifier; + +import java.util.List; +import java.util.Optional; + +public interface RecipeDisplay { + + Optional getRecipe(); + + List> getInput(); + + List getOutput(); + + default List> getRequiredItems() { + return Lists.newArrayList(); + } + + Identifier getRecipeCategory(); + +} diff --git a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java index 3cb0e783f..ac77c241f 100644 --- a/src/main/java/me/shedaniel/rei/api/RecipeHelper.java +++ b/src/main/java/me/shedaniel/rei/api/RecipeHelper.java @@ -19,26 +19,26 @@ public interface RecipeHelper { List findCraftableByItems(List inventoryItems); - void registerCategory(IRecipeCategory category); + void registerCategory(RecipeCategory category); - void registerDisplay(Identifier categoryIdentifier, IRecipeDisplay display); + void registerDisplay(Identifier categoryIdentifier, RecipeDisplay display); - Map> getRecipesFor(ItemStack stack); + Map> getRecipesFor(ItemStack stack); RecipeManager getRecipeManager(); - List getAllCategories(); + List getAllCategories(); - Map> getUsagesFor(ItemStack stack); + Map> getUsagesFor(ItemStack stack); - Optional getSpeedCraftButtonArea(IRecipeCategory category); + Optional getSpeedCraftButtonArea(RecipeCategory category); - void registerSpeedCraftButtonArea(Identifier category, SpeedCraftAreaSupplier rectangle); + void registerSpeedCraftButtonArea(Identifier category, ButtonAreaSupplier rectangle); - List getSpeedCraftFunctional(IRecipeCategory category); + List getSpeedCraftFunctional(RecipeCategory category); void registerSpeedCraftFunctional(Identifier category, SpeedCraftFunctional functional); - Map> getAllRecipes(); + Map> getAllRecipes(); } diff --git a/src/main/java/me/shedaniel/rei/api/SpeedCraftAreaSupplier.java b/src/main/java/me/shedaniel/rei/api/SpeedCraftAreaSupplier.java deleted file mode 100644 index 685e17f77..000000000 --- a/src/main/java/me/shedaniel/rei/api/SpeedCraftAreaSupplier.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.shedaniel.rei.api; - -import java.awt.*; - -public interface SpeedCraftAreaSupplier { - - Rectangle get(Rectangle bounds); - - default String getButtonText() { - return "+"; - } - -} diff --git a/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java b/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java index cec5a9f90..fc4ffde35 100644 --- a/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java +++ b/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java @@ -2,12 +2,12 @@ package me.shedaniel.rei.api; import net.minecraft.client.gui.Screen; -public interface SpeedCraftFunctional { +public interface SpeedCraftFunctional { Class[] getFunctioningFor(); - + boolean performAutoCraft(Screen screen, T recipe); - + boolean acceptRecipe(Screen screen, T recipe); - + } -- cgit