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/RoughlyEnoughItemsCore.java | 22 +++---- .../shedaniel/rei/RoughlyEnoughItemsPlugins.java | 6 +- .../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 +-- .../java/me/shedaniel/rei/client/ClientHelper.java | 10 +-- .../shedaniel/rei/client/ItemRegistererImpl.java | 53 ---------------- .../me/shedaniel/rei/client/ItemRegistryImpl.java | 53 ++++++++++++++++ .../me/shedaniel/rei/client/RecipeHelperImpl.java | 58 ++++++++--------- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 1 - .../me/shedaniel/rei/gui/RecipeViewingScreen.java | 39 +++++++----- .../rei/gui/widget/RecipeChoosePageWidget.java | 1 - .../rei/gui/widget/SpeedCraftingButtonWidget.java | 6 +- .../mixin/MixinCreativePlayerInventoryScreen.java | 9 +++ .../rei/plugin/DefaultBlastingCategory.java | 4 +- .../rei/plugin/DefaultBlastingDisplay.java | 4 +- .../rei/plugin/DefaultBrewingCategory.java | 4 +- .../rei/plugin/DefaultBrewingDisplay.java | 4 +- .../rei/plugin/DefaultCampfireCategory.java | 4 +- .../rei/plugin/DefaultCampfireDisplay.java | 4 +- .../rei/plugin/DefaultCraftingCategory.java | 4 +- .../rei/plugin/DefaultCraftingDisplay.java | 4 +- .../me/shedaniel/rei/plugin/DefaultPlugin.java | 10 +-- .../rei/plugin/DefaultSmeltingCategory.java | 4 +- .../rei/plugin/DefaultSmeltingDisplay.java | 4 +- .../rei/plugin/DefaultSmokingCategory.java | 4 +- .../rei/plugin/DefaultSmokingDisplay.java | 5 +- .../rei/plugin/DefaultStoneCuttingCategory.java | 4 +- .../rei/plugin/DefaultStoneCuttingDisplay.java | 4 +- src/main/resources/pack.png | Bin 0 -> 44764 bytes 42 files changed, 358 insertions(+), 360 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 delete mode 100644 src/main/java/me/shedaniel/rei/client/ItemRegistererImpl.java create mode 100644 src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java create mode 100644 src/main/resources/pack.png (limited to 'src/main') diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 5c194ab14..5402a3861 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -1,9 +1,9 @@ package me.shedaniel.rei; import com.google.common.collect.Maps; -import me.shedaniel.rei.api.ItemRegisterer; -import me.shedaniel.rei.api.IRecipePlugin; +import me.shedaniel.rei.api.ItemRegistry; import me.shedaniel.rei.api.PluginDisabler; +import me.shedaniel.rei.api.REIPlugin; import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.client.*; import me.shedaniel.rei.plugin.DefaultPlugin; @@ -32,10 +32,10 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer, ModInitiali public static final Logger LOGGER = LogManager.getFormatterLogger("REI"); public static final Identifier DELETE_ITEMS_PACKET = new Identifier("roughlyenoughitems", "delete_item"); public static final Identifier CREATE_ITEMS_PACKET = new Identifier("roughlyenoughitems", "create_item"); - private static final RecipeHelperImpl RECIPE_HELPER = new RecipeHelperImpl(); - private static final PluginDisablerImpl PLUGIN_DISABLER = new PluginDisablerImpl(); - private static final ItemRegistererImpl ITEM_REGISTERER = new ItemRegistererImpl(); - private static final Map plugins = Maps.newHashMap(); + private static final RecipeHelper RECIPE_HELPER = new RecipeHelperImpl(); + private static final PluginDisabler PLUGIN_DISABLER = new PluginDisablerImpl(); + private static final ItemRegistry ITEM_REGISTRY = new ItemRegistryImpl(); + private static final Map plugins = Maps.newHashMap(); private static ConfigHelper configHelper; public static RecipeHelper getRecipeHelper() { @@ -46,26 +46,26 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer, ModInitiali return configHelper; } - public static ItemRegisterer getItemRegisterer() { - return ITEM_REGISTERER; + public static ItemRegistry getItemRegisterer() { + return ITEM_REGISTRY; } public static PluginDisabler getPluginDisabler() { return PLUGIN_DISABLER; } - public static IRecipePlugin registerPlugin(Identifier identifier, IRecipePlugin plugin) { + public static REIPlugin registerPlugin(Identifier identifier, REIPlugin plugin) { plugins.put(identifier, plugin); RoughlyEnoughItemsCore.LOGGER.info("REI: Registered plugin %s from %s", identifier.toString(), plugin.getClass().getSimpleName()); plugin.onFirstLoad(getPluginDisabler()); return plugin; } - public static List getPlugins() { + public static List getPlugins() { return new LinkedList<>(plugins.values()); } - public static Optional getPluginIdentifier(IRecipePlugin plugin) { + public static Optional getPluginIdentifier(REIPlugin plugin) { for(Identifier identifier : plugins.keySet()) if (identifier != null && plugins.get(identifier).equals(plugin)) return Optional.of(identifier); diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java index 0b7bc19c0..0dabfcda9 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsPlugins.java @@ -3,7 +3,7 @@ package me.shedaniel.rei; import info.tehnut.pluginloader.LoaderCreator; import info.tehnut.pluginloader.PluginLoaderBuilder; import info.tehnut.pluginloader.ValidationStrategy; -import me.shedaniel.rei.api.IRecipePlugin; +import me.shedaniel.rei.api.REIPlugin; import net.fabricmc.loader.language.LanguageAdapter; import net.fabricmc.loader.language.LanguageAdapterException; import net.minecraft.util.Identifier; @@ -14,10 +14,10 @@ public class RoughlyEnoughItemsPlugins implements LoaderCreator { public void createLoaders() { LanguageAdapter.Options instantiationOptions = new LanguageAdapter.Options(); - new PluginLoaderBuilder("roughlyenoughitems").withValidator(ValidationStrategy.hasInterface(IRecipePlugin.class)).withInitializer((aClass, container) -> { + new PluginLoaderBuilder("roughlyenoughitems").withValidator(ValidationStrategy.hasInterface(REIPlugin.class)).withInitializer((aClass, container) -> { Identifier id = new Identifier(container.getOwner().getInfo().getId(), container.getInfo().getId()); try { - IRecipePlugin plugin = (IRecipePlugin) container.getOwner().getAdapter().createInstance(aClass, instantiationOptions); + REIPlugin plugin = (REIPlugin) container.getOwner().getAdapter().createInstance(aClass, instantiationOptions); RoughlyEnoughItemsCore.registerPlugin(id, plugin); } catch (LanguageAdapterException e) { RoughlyEnoughItemsCore.LOGGER.error("REI: Error loading plugin %s", id, e); 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); - + } diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java index d93b32844..277802679 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java @@ -3,8 +3,8 @@ package me.shedaniel.rei.client; import com.google.common.collect.ImmutableList; import io.netty.buffer.Unpooled; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import me.shedaniel.rei.api.IRecipeCategory; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeCategory; +import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.RecipeViewingScreen; @@ -111,14 +111,14 @@ public class ClientHelper implements ClientModInitializer { } public static boolean executeRecipeKeyBind(ContainerScreenOverlay overlay, ItemStack stack) { - Map> map = RecipeHelper.getInstance().getRecipesFor(stack); + Map> map = RecipeHelper.getInstance().getRecipesFor(stack); if (map.keySet().size() > 0) MinecraftClient.getInstance().openScreen(new RecipeViewingScreen(MinecraftClient.getInstance().window, map)); return map.keySet().size() > 0; } public static boolean executeUsageKeyBind(ContainerScreenOverlay overlay, ItemStack stack) { - Map> map = RecipeHelper.getInstance().getUsagesFor(stack); + Map> map = RecipeHelper.getInstance().getUsagesFor(stack); if (map.keySet().size() > 0) MinecraftClient.getInstance().openScreen(new RecipeViewingScreen(MinecraftClient.getInstance().window, map)); return map.keySet().size() > 0; @@ -139,7 +139,7 @@ public class ClientHelper implements ClientModInitializer { } public static boolean executeViewAllRecipesKeyBind(ContainerScreenOverlay lastOverlay) { - Map> map = RecipeHelper.getInstance().getAllRecipes(); + Map> map = RecipeHelper.getInstance().getAllRecipes(); if (map.keySet().size() > 0) MinecraftClient.getInstance().openScreen(new RecipeViewingScreen(MinecraftClient.getInstance().window, map)); return map.keySet().size() > 0; diff --git a/src/main/java/me/shedaniel/rei/client/ItemRegistererImpl.java b/src/main/java/me/shedaniel/rei/client/ItemRegistererImpl.java deleted file mode 100644 index 4e1c3ef26..000000000 --- a/src/main/java/me/shedaniel/rei/client/ItemRegistererImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package me.shedaniel.rei.client; - -import com.google.common.collect.Lists; -import me.shedaniel.rei.api.ItemRegisterer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.DefaultedList; - -import java.util.Collections; -import java.util.List; -import java.util.TreeSet; -import java.util.stream.Collectors; - -public class ItemRegistererImpl implements ItemRegisterer { - - private final List itemList = Lists.newLinkedList(); - - @Override - public List getItemList() { - return Collections.unmodifiableList(itemList); - } - - @Deprecated - @Override - public List getModifiableItemList() { - return itemList; - } - - @Override - public ItemStack[] getAllStacksFromItem(Item item) { - DefaultedList list = DefaultedList.create(); - list.add(item.getDefaultStack()); - item.appendItemsForGroup(item.getItemGroup(), list); - TreeSet stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet((p1, p2) -> ItemStack.areEqual(p1, p2) ? 0 : 1))); - return Lists.newArrayList(stackSet).toArray(new ItemStack[0]); - } - - @Override - public void registerItemStack(Item afterItem, ItemStack stack) { - if (!stack.isEmpty() && !alreadyContain(stack)) - if (afterItem == null || afterItem.equals(Items.AIR)) - itemList.add(stack); - else { - int last = itemList.size(); - for(int i = 0; i < itemList.size(); i++) - if (itemList.get(i).getItem().equals(afterItem)) - last = i + 1; - itemList.add(last, stack); - } - } - -} diff --git a/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java b/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java new file mode 100644 index 000000000..f61c3d063 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java @@ -0,0 +1,53 @@ +package me.shedaniel.rei.client; + +import com.google.common.collect.Lists; +import me.shedaniel.rei.api.ItemRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.util.DefaultedList; + +import java.util.Collections; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +public class ItemRegistryImpl implements ItemRegistry { + + private final List itemList = Lists.newLinkedList(); + + @Override + public List getItemList() { + return Collections.unmodifiableList(itemList); + } + + @Deprecated + @Override + public List getModifiableItemList() { + return itemList; + } + + @Override + public ItemStack[] getAllStacksFromItem(Item item) { + DefaultedList list = DefaultedList.create(); + list.add(item.getDefaultStack()); + item.appendItemsForGroup(item.getItemGroup(), list); + TreeSet stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet((p1, p2) -> ItemStack.areEqual(p1, p2) ? 0 : 1))); + return Lists.newArrayList(stackSet).toArray(new ItemStack[0]); + } + + @Override + public void registerItemStack(Item afterItem, ItemStack stack) { + if (!stack.isEmpty() && !alreadyContain(stack)) + if (afterItem == null || afterItem.equals(Items.AIR)) + itemList.add(stack); + else { + int last = itemList.size(); + for(int i = 0; i < itemList.size(); i++) + if (itemList.get(i).getItem().equals(afterItem)) + last = i + 1; + itemList.add(last, stack); + } + } + +} diff --git a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java index ab0f1a1db..161f32fc9 100644 --- a/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java @@ -17,17 +17,17 @@ import java.util.stream.Collectors; public class RecipeHelperImpl implements RecipeHelper { private final AtomicInteger recipeCount = new AtomicInteger(); - private final Map> recipeCategoryListMap = Maps.newHashMap(); - private final List categories = Lists.newArrayList(); - private final Map speedCraftAreaSupplierMap = Maps.newHashMap(); + private final Map> recipeCategoryListMap = Maps.newHashMap(); + private final List categories = Lists.newArrayList(); + private final Map speedCraftAreaSupplierMap = Maps.newHashMap(); private final Map> speedCraftFunctionalMap = Maps.newHashMap(); private RecipeManager recipeManager; @Override public List findCraftableByItems(List inventoryItems) { List craftables = new ArrayList<>(); - for(List value : recipeCategoryListMap.values()) - for(IRecipeDisplay recipeDisplay : value) { + for(List value : recipeCategoryListMap.values()) + for(RecipeDisplay recipeDisplay : value) { int slotsCraftable = 0; List> requiredInput = (List>) recipeDisplay.getRequiredItems(); for(List slot : requiredInput) { @@ -54,13 +54,13 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public void registerCategory(IRecipeCategory category) { + public void registerCategory(RecipeCategory category) { categories.add(category); recipeCategoryListMap.put(category.getIdentifier(), Lists.newLinkedList()); } @Override - public void registerDisplay(Identifier categoryIdentifier, IRecipeDisplay display) { + public void registerDisplay(Identifier categoryIdentifier, RecipeDisplay display) { if (!recipeCategoryListMap.containsKey(categoryIdentifier)) return; recipeCount.incrementAndGet(); @@ -68,17 +68,17 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public Map> getRecipesFor(ItemStack stack) { - Map> categoriesMap = new HashMap<>(); + public Map> getRecipesFor(ItemStack stack) { + Map> categoriesMap = new HashMap<>(); categories.forEach(f -> categoriesMap.put(f.getIdentifier(), Lists.newArrayList())); - for(Map.Entry> entry : recipeCategoryListMap.entrySet()) { - IRecipeCategory category = getCategory(entry.getKey()); - for(IRecipeDisplay recipeDisplay : entry.getValue()) + for(Map.Entry> entry : recipeCategoryListMap.entrySet()) { + RecipeCategory category = getCategory(entry.getKey()); + for(RecipeDisplay recipeDisplay : entry.getValue()) for(ItemStack outputStack : (List) recipeDisplay.getOutput()) if (category.checkTags() ? ItemStack.areEqual(stack, outputStack) : ItemStack.areEqualIgnoreTags(stack, outputStack)) categoriesMap.get(recipeDisplay.getRecipeCategory()).add(recipeDisplay); } - Map> recipeCategoryListMap = Maps.newLinkedHashMap(); + Map> recipeCategoryListMap = Maps.newLinkedHashMap(); categories.forEach(category -> { if (categoriesMap.containsKey(category.getIdentifier()) && !categoriesMap.get(category.getIdentifier()).isEmpty()) recipeCategoryListMap.put(category, categoriesMap.get(category.getIdentifier())); @@ -86,7 +86,7 @@ public class RecipeHelperImpl implements RecipeHelper { return recipeCategoryListMap; } - private IRecipeCategory getCategory(Identifier identifier) { + private RecipeCategory getCategory(Identifier identifier) { return categories.stream().filter(category -> category.getIdentifier().equals(identifier)).findFirst().orElse(null); } @@ -96,12 +96,12 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public Map> getUsagesFor(ItemStack stack) { - Map> categoriesMap = new HashMap<>(); + public Map> getUsagesFor(ItemStack stack) { + Map> categoriesMap = new HashMap<>(); categories.forEach(f -> categoriesMap.put(f.getIdentifier(), Lists.newArrayList())); - for(Map.Entry> entry : recipeCategoryListMap.entrySet()) { - IRecipeCategory category = getCategory(entry.getKey()); - for(IRecipeDisplay recipeDisplay : entry.getValue()) { + for(Map.Entry> entry : recipeCategoryListMap.entrySet()) { + RecipeCategory category = getCategory(entry.getKey()); + for(RecipeDisplay recipeDisplay : entry.getValue()) { boolean found = false; for(List input : (List>) recipeDisplay.getInput()) { for(ItemStack itemStack : input) { @@ -116,7 +116,7 @@ public class RecipeHelperImpl implements RecipeHelper { } } } - Map> recipeCategoryListMap = Maps.newLinkedHashMap(); + Map> recipeCategoryListMap = Maps.newLinkedHashMap(); categories.forEach(category -> { if (categoriesMap.containsKey(category.getIdentifier()) && !categoriesMap.get(category.getIdentifier()).isEmpty()) recipeCategoryListMap.put(category, categoriesMap.get(category.getIdentifier())); @@ -125,24 +125,24 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public List getAllCategories() { + public List getAllCategories() { return new LinkedList<>(categories); } @Override - public Optional getSpeedCraftButtonArea(IRecipeCategory category) { + public Optional getSpeedCraftButtonArea(RecipeCategory category) { if (!speedCraftAreaSupplierMap.containsKey(category.getIdentifier())) return Optional.of(bounds -> new Rectangle((int) bounds.getMaxX() - 16, (int) bounds.getMaxY() - 16, 10, 10)); return Optional.ofNullable(speedCraftAreaSupplierMap.get(category.getIdentifier())); } @Override - public void registerSpeedCraftButtonArea(Identifier category, SpeedCraftAreaSupplier rectangle) { + public void registerSpeedCraftButtonArea(Identifier category, ButtonAreaSupplier rectangle) { speedCraftAreaSupplierMap.put(category, rectangle); } @Override - public List getSpeedCraftFunctional(IRecipeCategory category) { + public List getSpeedCraftFunctional(RecipeCategory category) { if (speedCraftFunctionalMap.get(category.getIdentifier()) == null) return Lists.newArrayList(); return speedCraftFunctionalMap.get(category.getIdentifier()); @@ -163,7 +163,7 @@ public class RecipeHelperImpl implements RecipeHelper { this.categories.clear(); this.speedCraftAreaSupplierMap.clear(); this.speedCraftFunctionalMap.clear(); - List plugins = new LinkedList<>(RoughlyEnoughItemsCore.getPlugins()); + List plugins = new LinkedList<>(RoughlyEnoughItemsCore.getPlugins()); plugins.sort((first, second) -> { return second.getPriority() - first.getPriority(); }); @@ -184,7 +184,7 @@ public class RecipeHelperImpl implements RecipeHelper { if (pluginDisabler.isFunctionEnabled(identifier, PluginFunction.REGISTER_SPEED_CRAFT)) plugin.registerSpeedCraft(this); }); - RoughlyEnoughItemsCore.LOGGER.info("Registered REI Categories: " + String.join(", ", categories.stream().map(IRecipeCategory::getCategoryName).collect(Collectors.toList()))); + RoughlyEnoughItemsCore.LOGGER.info("Registered REI Categories: " + String.join(", ", categories.stream().map(RecipeCategory::getCategoryName).collect(Collectors.toList()))); RoughlyEnoughItemsCore.LOGGER.info("Registered %d recipes for REI.", recipeCount.get()); } @@ -194,9 +194,9 @@ public class RecipeHelperImpl implements RecipeHelper { } @Override - public Map> getAllRecipes() { - Map> map = Maps.newLinkedHashMap(); - Map> tempMap = Maps.newLinkedHashMap(); + public Map> getAllRecipes() { + Map> map = Maps.newLinkedHashMap(); + Map> tempMap = Maps.newLinkedHashMap(); recipeCategoryListMap.forEach((identifier, recipeDisplays) -> tempMap.put(identifier, new LinkedList<>(recipeDisplays))); categories.forEach(category -> { if (tempMap.containsKey(category.getIdentifier())) diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index abdfb15d0..92e7e3135 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -24,7 +24,6 @@ import net.minecraft.text.TranslatableTextComponent; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; import net.minecraft.world.GameMode; -import net.minecraft.world.World; import java.awt.*; import java.util.Arrays; diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index c7750ddb3..6e78cbd4c 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -40,12 +40,12 @@ public class RecipeViewingScreen extends Screen { private List tabs; private Window window; private Rectangle bounds; - private Map> categoriesMap; - private List categories; - private IRecipeCategory selectedCategory; + private Map> categoriesMap; + private List categories; + private RecipeCategory selectedCategory; private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext; - public RecipeViewingScreen(Window window, Map> categoriesMap) { + public RecipeViewingScreen(Window window, Map> categoriesMap) { this.categoryPages = 0; this.window = window; this.widgets = Lists.newArrayList(); @@ -61,7 +61,7 @@ public class RecipeViewingScreen extends Screen { this.choosePageActivated = false; } - public static SpeedCraftFunctional getSpeedCraftFunctionalByCategory(ContainerScreen containerScreen, IRecipeCategory category) { + public static SpeedCraftFunctional getSpeedCraftFunctionalByCategory(ContainerScreen containerScreen, RecipeCategory category) { for(SpeedCraftFunctional functional : RecipeHelper.getInstance().getSpeedCraftFunctional(category)) for(Class aClass : functional.getFunctioningFor()) if (containerScreen.getClass().isAssignableFrom(aClass)) @@ -100,7 +100,7 @@ public class RecipeViewingScreen extends Screen { this.largestWidth = window.getScaledWidth() - 100; this.largestHeight = window.getScaledHeight() - 40; this.guiWidth = MathHelper.clamp(getCurrentDisplayed().stream().map(display -> selectedCategory.getDisplayWidth(display)).max(Integer::compareTo).orElse(150) + 30, 0, largestWidth); - this.guiHeight = MathHelper.floor(MathHelper.clamp((selectedCategory.getDisplayHeight() + 7) * (getRecipesPerPage() + 1) + 40f, 186f, (float) largestHeight)); + this.guiHeight = MathHelper.floor(MathHelper.clamp((selectedCategory.getDisplayHeight() + 7d) * (getRecipesPerPage() + 1d) + 40d, 186d, (double) largestHeight)); this.bounds = new Rectangle(window.getScaledWidth() / 2 - guiWidth / 2, window.getScaledHeight() / 2 - guiHeight / 2, guiWidth, guiHeight); this.page = MathHelper.clamp(page, 0, getTotalPages(selectedCategory) - 1); @@ -205,13 +205,13 @@ public class RecipeViewingScreen extends Screen { tab.setItem(categories.get(j).getCategoryIcon(), categories.get(j).getCategoryName(), tab.getId() + categoryPages * 6 == categories.indexOf(selectedCategory)); } } - Optional supplier = RecipeHelper.getInstance().getSpeedCraftButtonArea(selectedCategory); + Optional supplier = RecipeHelper.getInstance().getSpeedCraftButtonArea(selectedCategory); final SpeedCraftFunctional functional = getSpeedCraftFunctionalByCategory(GuiHelper.getLastContainerScreen(), selectedCategory); int recipeHeight = selectedCategory.getDisplayHeight(); - List currentDisplayed = getCurrentDisplayed(); + List currentDisplayed = getCurrentDisplayed(); for(int i = 0; i < currentDisplayed.size(); i++) { int finalI = i; - final Supplier displaySupplier = () -> { + final Supplier displaySupplier = () -> { return currentDisplayed.get(finalI); }; int displayWidth = selectedCategory.getDisplayWidth(displaySupplier.get()); @@ -224,23 +224,23 @@ public class RecipeViewingScreen extends Screen { recipeChoosePageWidget = new RecipeChoosePageWidget(this, page, getTotalPages(selectedCategory)); else recipeChoosePageWidget = null; - + GuiHelper.getLastOverlay().onInitialized(); listeners.addAll(tabs); listeners.add(GuiHelper.getLastOverlay()); listeners.addAll(widgets); } - public List getCurrentDisplayed() { - List list = Lists.newArrayList(); + public List getCurrentDisplayed() { + List list = Lists.newArrayList(); int recipesPerPage = getRecipesPerPage(); for(int i = 0; i <= recipesPerPage; i++) - if (recipesPerPage > 0 && page * (recipesPerPage + 1) + i < categoriesMap.get(selectedCategory).size()) + if (page * (recipesPerPage + 1) + i < categoriesMap.get(selectedCategory).size()) list.add(categoriesMap.get(selectedCategory).get(page * (recipesPerPage + 1) + i)); return list; } - public IRecipeCategory getSelectedCategory() { + public RecipeCategory getSelectedCategory() { return selectedCategory; } @@ -253,8 +253,15 @@ public class RecipeViewingScreen extends Screen { } private int getRecipesPerPage() { + if (selectedCategory.getDisplaySettings().getFixedRecipesPerPage() > 0) + return selectedCategory.getDisplaySettings().getFixedRecipesPerPage() - 1; + int height = selectedCategory.getDisplayHeight(); + return MathHelper.clamp(MathHelper.floor(((double) largestHeight - 40d) / ((double) height + 7d)) - 1, 0, Math.min(RoughlyEnoughItemsCore.getConfigHelper().getConfig().maxRecipePerPage - 1, selectedCategory.getMaximumRecipePerPage() - 1)); + } + + private int getRecipesPerPageByHeight() { int height = selectedCategory.getDisplayHeight(); - return MathHelper.clamp(MathHelper.floor(((float) largestHeight - 40f) / ((float) height + 7f)) - 1, 0, Math.min(RoughlyEnoughItemsCore.getConfigHelper().getConfig().maxRecipePerPage - 1, selectedCategory.getMaximumRecipePerPage() - 1)); + return MathHelper.clamp(MathHelper.floor(((double) guiHeight - 40d) / ((double) height + 7d)) - 1, 0, Math.min(RoughlyEnoughItemsCore.getConfigHelper().getConfig().maxRecipePerPage - 1, selectedCategory.getMaximumRecipePerPage() - 1)); } @Override @@ -288,7 +295,7 @@ public class RecipeViewingScreen extends Screen { } } - public int getTotalPages(IRecipeCategory category) { + public int getTotalPages(RecipeCategory category) { return MathHelper.ceil(categoriesMap.get(category).size() / (double) (getRecipesPerPage() + 1)); } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java index 7a0a11dee..8baa6c161 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java @@ -4,7 +4,6 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.RelativePoint; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ConfigHelper; import me.shedaniel.rei.gui.RecipeViewingScreen; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java index 93690c67d..0a2e9ae0f 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java @@ -1,6 +1,6 @@ package me.shedaniel.rei.gui.widget; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.SpeedCraftFunctional; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.GuiHelper; @@ -13,10 +13,10 @@ import java.util.function.Supplier; public class SpeedCraftingButtonWidget extends ButtonWidget { - private final Supplier displaySupplier; + private final Supplier displaySupplier; private final SpeedCraftFunctional functional; - public SpeedCraftingButtonWidget(Rectangle rectangle, String text, SpeedCraftFunctional functional, Supplier displaySupplier) { + public SpeedCraftingButtonWidget(Rectangle rectangle, String text, SpeedCraftFunctional functional, Supplier displaySupplier) { super(rectangle, text); this.displaySupplier = displaySupplier; this.functional = functional; diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java index 7d2facb8f..1cf8b3398 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java @@ -1,5 +1,6 @@ package me.shedaniel.rei.mixin; +import me.shedaniel.rei.client.GuiHelper; import me.shedaniel.rei.listeners.IMixinTabGetter; import net.minecraft.client.gui.ingame.AbstractPlayerInventoryScreen; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; @@ -59,4 +60,12 @@ public abstract class MixinCreativePlayerInventoryScreen extends AbstractPlayerI } } + @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) + public void mouseClicked(double i, double j, int k, CallbackInfoReturnable ci) { + if (GuiHelper.getLastOverlay().mouseClicked(i, j, k)) { + ci.setReturnValue(true); + ci.cancel(); + } + } + } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java index b2881f9f7..3f496d7ea 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingCategory.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.IRecipeCategory; +import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; @@ -19,7 +19,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultBlastingCategory implements IRecipeCategory { +public class DefaultBlastingCategory implements RecipeCategory { private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png"); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingDisplay.java index 669f53f16..1c1d9c81e 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBlastingDisplay.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.block.entity.FurnaceBlockEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -13,7 +13,7 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -public class DefaultBlastingDisplay implements IRecipeDisplay { +public class DefaultBlastingDisplay implements RecipeDisplay { private BlastingRecipe display; private List> input; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java index da322758c..004c83445 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.IRecipeCategory; +import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; @@ -20,7 +20,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultBrewingCategory implements IRecipeCategory { +public class DefaultBrewingCategory implements RecipeCategory { private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png"); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java index afa763d8a..b49300689 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingDisplay.java @@ -1,6 +1,6 @@ package me.shedaniel.rei.plugin; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.block.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -13,7 +13,7 @@ import java.util.Arrays; import java.util.List; import java.util.Optional; -public class DefaultBrewingDisplay implements IRecipeDisplay { +public class DefaultBrewingDisplay implements RecipeDisplay { private ItemStack input, output; private Ingredient reactant; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java index fb87875bd..a11fe1d24 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireCategory.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.IRecipeCategory; +import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; @@ -19,7 +19,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultCampfireCategory implements IRecipeCategory { +public class DefaultCampfireCategory implements RecipeCategory { private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png"); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireDisplay.java index e638008df..184f3c54a 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCampfireDisplay.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.cooking.CampfireCookingRecipe; @@ -13,7 +13,7 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -public class DefaultCampfireDisplay implements IRecipeDisplay { +public class DefaultCampfireDisplay implements RecipeDisplay { private List inputs, output; private int cookTime; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java index 460e399db..cf9bc2cf5 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java @@ -2,7 +2,7 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.IRecipeCategory; +import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; @@ -19,7 +19,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultCraftingCategory implements IRecipeCategory { +public class DefaultCraftingCategory implements RecipeCategory { private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png"); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java index 5f3f88595..97275cae5 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingDisplay.java @@ -1,10 +1,10 @@ package me.shedaniel.rei.plugin; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.recipe.Recipe; import net.minecraft.util.Identifier; -public interface DefaultCraftingDisplay extends IRecipeDisplay { +public interface DefaultCraftingDisplay extends RecipeDisplay { @Override default Identifier getRecipeCategory() { diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index cbedffe8e..0fd543ef9 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -29,7 +29,7 @@ import net.minecraft.util.registry.Registry; import java.util.*; -public class DefaultPlugin implements IRecipePlugin { +public class DefaultPlugin implements REIPlugin { public static final Identifier CRAFTING = new Identifier("roughlyenoughitems", "plugins/crafting"); public static final Identifier SMELTING = new Identifier("roughlyenoughitems", "plugins/smelting"); @@ -57,11 +57,11 @@ public class DefaultPlugin implements IRecipePlugin { } @Override - public void registerItems(ItemRegisterer itemRegisterer) { + public void registerItems(ItemRegistry itemRegistry) { Registry.ITEM.stream().forEach(item -> { - itemRegisterer.registerItemStack(item.getDefaultStack()); + itemRegistry.registerItemStack(item.getDefaultStack()); try { - itemRegisterer.registerItemStack(itemRegisterer.getAllStacksFromItem(item)); + itemRegistry.registerItemStack(itemRegistry.getAllStacksFromItem(item)); } catch (Exception e) { } }); @@ -71,7 +71,7 @@ public class DefaultPlugin implements IRecipePlugin { map.put(enchantment, i); ItemStack itemStack = new ItemStack(Items.ENCHANTED_BOOK); EnchantmentHelper.set(map, itemStack); - itemRegisterer.registerItemStack(Items.ENCHANTED_BOOK, itemStack); + itemRegistry.registerItemStack(Items.ENCHANTED_BOOK, itemStack); } }); } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java index 119c6abb6..5025efbff 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.IRecipeCategory; +import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; @@ -19,7 +19,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultSmeltingCategory implements IRecipeCategory { +public class DefaultSmeltingCategory implements RecipeCategory { private static final Identifier DISPLAY_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/display.png"); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingDisplay.java index cc4fb9fd0..044daa28f 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingDisplay.java @@ -1,7 +1,7 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; -import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.RecipeDisplay; import net.minecraft.block.entity.FurnaceBlockEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -13,7 +13,7 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -public class DefaultSmeltingDisplay implements IRecipeDisplay { +public class Defaul