From 2f95b698dee3368666cefe8890a015eb098dd77b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 31 Jan 2019 15:32:33 +0800 Subject: Update to v2.2.0.15 & Fix Optifine Fix #16 --- .../rei/gui/widget/SpeedCraftingButtonWidget.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java (limited to 'src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java') diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java new file mode 100644 index 000000000..aefca5018 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/gui/widget/SpeedCraftingButtonWidget.java @@ -0,0 +1,42 @@ +package me.shedaniel.rei.gui.widget; + +import me.shedaniel.rei.api.IRecipeDisplay; +import me.shedaniel.rei.api.SpeedCraftFunctional; +import me.shedaniel.rei.client.ClientHelper; +import me.shedaniel.rei.client.GuiHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; + +import java.awt.*; +import java.util.Arrays; +import java.util.function.Supplier; + +public class SpeedCraftingButtonWidget extends ButtonWidget { + + private final Supplier displaySupplier; + private final SpeedCraftFunctional functional; + + public SpeedCraftingButtonWidget(Rectangle rectangle, String text, SpeedCraftFunctional functional, Supplier displaySupplier) { + super(rectangle, text); + this.displaySupplier = displaySupplier; + this.functional = functional; + } + + @Override + public void onPressed(int button, double mouseX, double mouseY) { + Minecraft.getInstance().displayGuiScreen(GuiHelper.getLastGuiContainer()); + functional.performAutoCraft(GuiHelper.getLastGuiContainer(), displaySupplier.get()); + } + + @Override + public void draw(int mouseX, int mouseY, float partialTicks) { + this.enabled = functional != null && functional.acceptRecipe(GuiHelper.getLastGuiContainer(), displaySupplier.get()); + super.draw(mouseX, mouseY, partialTicks); + if (getBounds().contains(mouseX, mouseY)) + if (enabled) + GuiHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.format("text.speed_craft.move_items")))); + else + GuiHelper.getLastOverlay().addTooltip(new QueuedTooltip(ClientHelper.getMouseLocation(), Arrays.asList(I18n.format("text.speed_craft.failed_move_items")))); + } + +} -- cgit