diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin')
4 files changed, 36 insertions, 33 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java index c3f3c895a..d51fb0798 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultBrewingCategory.java @@ -19,6 +19,7 @@ import java.awt.*; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.function.Supplier; public class DefaultBrewingCategory implements IRecipeCategory<DefaultBrewingDisplay> { @@ -40,7 +41,7 @@ public class DefaultBrewingCategory implements IRecipeCategory<DefaultBrewingDis } @Override - public List<IWidget> setupDisplay(IMixinGuiContainer containerGui, DefaultBrewingDisplay recipeDisplay, Rectangle bounds) { + public List<IWidget> setupDisplay(Supplier<DefaultBrewingDisplay> recipeDisplaySupplier, Rectangle bounds) { Point startPoint = new Point((int) bounds.getCenterX() - 52, (int) bounds.getCenterY() - 29); List<IWidget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) { @Override @@ -54,32 +55,32 @@ public class DefaultBrewingCategory implements IRecipeCategory<DefaultBrewingDis drawTexturedModalRect(startPoint.x + 44, startPoint.y + 28, 103, 163, width, 4); } })); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, containerGui, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, Arrays.asList(new ItemStack(Items.BLAZE_POWDER)), false, true, true)); + widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplaySupplier.get().getInput().get(0), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.brewing.input")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplaySupplier.get().getInput().get(1), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.brewing.reactant")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplaySupplier.get().getOutput(0), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.brewing.result")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplaySupplier.get().getOutput(1), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.brewing.result")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplaySupplier.get().getOutput(2), false, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.brewing.result")); diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java index a856ed13d..32eda67c4 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultCraftingCategory.java @@ -5,7 +5,6 @@ import me.shedaniel.rei.api.IRecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; -import me.shedaniel.rei.listeners.IMixinGuiContainer; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; @@ -18,6 +17,7 @@ import java.awt.*; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.function.Supplier; public class DefaultCraftingCategory implements IRecipeCategory<DefaultCraftingDisplay> { @@ -39,7 +39,7 @@ public class DefaultCraftingCategory implements IRecipeCategory<DefaultCraftingD } @Override - public List<IWidget> setupDisplay(IMixinGuiContainer containerGui, DefaultCraftingDisplay recipeDisplay, Rectangle bounds) { + public List<IWidget> setupDisplay(Supplier<DefaultCraftingDisplay> recipeDisplaySupplier, Rectangle bounds) { Point startPoint = new Point((int) bounds.getCenterX() - 58, (int) bounds.getCenterY() - 27); List<IWidget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) { @Override @@ -51,20 +51,20 @@ public class DefaultCraftingCategory implements IRecipeCategory<DefaultCraftingD drawTexturedModalRect(startPoint.x, startPoint.y, 0, 0, 116, 54); } })); - List<List<ItemStack>> input = recipeDisplay.getInput(); + List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput(); List<ItemSlotWidget> slots = Lists.newArrayList(); for(int y = 0; y < 3; y++) for(int x = 0; x < 3; x++) - slots.add(new ItemSlotWidget(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, Lists.newArrayList(), true, true, containerGui, true)); + slots.add(new ItemSlotWidget(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, Lists.newArrayList(), true, true, true)); for(int i = 0; i < input.size(); i++) { - if (recipeDisplay instanceof DefaultShapedDisplay) { + if (recipeDisplaySupplier.get() instanceof DefaultShapedDisplay) { if (!input.get(i).isEmpty()) - slots.get(getSlotWithSize(recipeDisplay, i)).setItemList(input.get(i)); + slots.get(getSlotWithSize(recipeDisplaySupplier.get(), i)).setItemList(input.get(i)); } else if (!input.get(i).isEmpty()) slots.get(i).setItemList(input.get(i)); } widgets.addAll(slots); - widgets.add(new ItemSlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplay.getOutput(), false, true, containerGui, true) { + widgets.add(new ItemSlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true) { @Override protected String getItemCountOverlay(ItemStack currentStack) { if (currentStack.getCount() == 1) diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 4b0ed8cf9..6fa88d2e0 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -33,27 +33,27 @@ public class DefaultPlugin implements IRecipePlugin { @Override public void registerPluginCategories() { - RecipeHelper.registerCategory(new DefaultCraftingCategory()); - RecipeHelper.registerCategory(new DefaultSmeltingCategory()); - RecipeHelper.registerCategory(new DefaultBrewingCategory()); + RecipeHelper.getInstance().registerCategory(new DefaultCraftingCategory()); + RecipeHelper.getInstance().registerCategory(new DefaultSmeltingCategory()); + RecipeHelper.getInstance().registerCategory(new DefaultBrewingCategory()); } @Override public void registerRecipes() { - for(IRecipe value : RecipeHelper.getRecipeManager().getRecipes()) + for(IRecipe value : RecipeHelper.getInstance().getRecipeManager().getRecipes()) if (value instanceof ShapelessRecipe) - RecipeHelper.registerRecipe(CRAFTING, new DefaultShapelessDisplay((ShapelessRecipe) value)); + RecipeHelper.getInstance().registerRecipe(CRAFTING, new DefaultShapelessDisplay((ShapelessRecipe) value)); else if (value instanceof ShapedRecipe) - RecipeHelper.registerRecipe(CRAFTING, new DefaultShapedDisplay((ShapedRecipe) value)); + RecipeHelper.getInstance().registerRecipe(CRAFTING, new DefaultShapedDisplay((ShapedRecipe) value)); else if (value instanceof FurnaceRecipe) - RecipeHelper.registerRecipe(SMELTING, new DefaultSmeltingDisplay((FurnaceRecipe) value)); - BREWING_DISPLAYS.forEach(display -> RecipeHelper.registerRecipe(BREWING, display)); + RecipeHelper.getInstance().registerRecipe(SMELTING, new DefaultSmeltingDisplay((FurnaceRecipe) value)); + BREWING_DISPLAYS.forEach(display -> RecipeHelper.getInstance().registerRecipe(BREWING, display)); } @Override public void registerSpeedCraft() { - RecipeHelper.registerSpeedCraftButtonArea(DefaultPlugin.BREWING, null); - RecipeHelper.registerSpeedCraftFunctional(DefaultPlugin.CRAFTING, new SpeedCraftFunctional<DefaultCraftingDisplay>() { + RecipeHelper.getInstance().registerSpeedCraftButtonArea(DefaultPlugin.BREWING, null); + RecipeHelper.getInstance().registerSpeedCraftFunctional(DefaultPlugin.CRAFTING, new SpeedCraftFunctional<DefaultCraftingDisplay>() { @Override public Class[] getFunctioningFor() { return new Class[]{GuiInventory.class, GuiCrafting.class}; @@ -65,7 +65,8 @@ public class DefaultPlugin implements IRecipePlugin { ((IMixinRecipeBookGui) (((GuiCrafting) gui).func_194310_f())).getGhostRecipe().clear(); else if (gui.getClass().isAssignableFrom(GuiInventory.class)) ((IMixinRecipeBookGui) (((GuiInventory) gui).func_194310_f())).getGhostRecipe().clear(); - else return false; + else + return false; Minecraft.getInstance().playerController.func_203413_a(Minecraft.getInstance().player.openContainer.windowId, recipe.getRecipe(), GuiScreen.isShiftKeyDown()); return true; } @@ -75,7 +76,7 @@ public class DefaultPlugin implements IRecipePlugin { return gui instanceof GuiCrafting || (gui instanceof GuiInventory && recipe.getHeight() < 3 && recipe.getWidth() < 3); } }); - RecipeHelper.registerSpeedCraftFunctional(DefaultPlugin.SMELTING, new SpeedCraftFunctional<DefaultSmeltingDisplay>() { + RecipeHelper.getInstance().registerSpeedCraftFunctional(DefaultPlugin.SMELTING, new SpeedCraftFunctional<DefaultSmeltingDisplay>() { @Override public Class[] getFunctioningFor() { return new Class[]{GuiFurnace.class}; @@ -85,7 +86,8 @@ public class DefaultPlugin implements IRecipePlugin { public boolean performAutoCraft(Gui gui, DefaultSmeltingDisplay recipe) { if (gui instanceof GuiFurnace) ((IMixinRecipeBookGui) (((GuiFurnace) gui).func_194310_f())).getGhostRecipe().clear(); - else return false; + else + return false; Minecraft.getInstance().playerController.func_203413_a(Minecraft.getInstance().player.openContainer.windowId, recipe.getRecipe(), GuiScreen.isShiftKeyDown()); return true; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java index ae3b56e50..3fd37a356 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultSmeltingCategory.java @@ -4,7 +4,6 @@ import me.shedaniel.rei.api.IRecipeCategory; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.ItemSlotWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; -import me.shedaniel.rei.listeners.IMixinGuiContainer; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; @@ -18,6 +17,7 @@ import java.awt.*; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.function.Supplier; public class DefaultSmeltingCategory implements IRecipeCategory<DefaultSmeltingDisplay> { @@ -39,7 +39,7 @@ public class DefaultSmeltingCategory implements IRecipeCategory<DefaultSmeltingD } @Override - public List<IWidget> setupDisplay(IMixinGuiContainer containerGui, DefaultSmeltingDisplay recipeDisplay, Rectangle bounds) { + public List<IWidget> setupDisplay(Supplier<DefaultSmeltingDisplay> recipeDisplaySupplier, Rectangle bounds) { Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); List<IWidget> widgets = new LinkedList<>(Arrays.asList(new RecipeBaseWidget(bounds) { @Override @@ -55,15 +55,15 @@ public class DefaultSmeltingCategory implements IRecipeCategory<DefaultSmeltingD drawTexturedModalRect(startPoint.x + 24, startPoint.y + 19, 82, 92, width, 17); } })); - List<List<ItemStack>> input = recipeDisplay.getInput(); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, containerGui, true)); - widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplay.getFuel(), true, true, containerGui, true) { + List<List<ItemStack>> input = recipeDisplaySupplier.get().getInput(); + widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 1, input.get(0), true, true, true)); + widgets.add(new ItemSlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) { @Override protected List<String> getExtraToolTips(ItemStack stack) { return Arrays.asList(I18n.format("category.rei.smelting.fuel")); } }); - widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplay.getOutput(), false, true, containerGui, true)); + widgets.add(new ItemSlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true)); return widgets; } |
