aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-08-06 22:35:12 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-08-06 22:35:12 +0800
commit70417f41613ae30582cd48708fe43ce9a3e6ae86 (patch)
tree7a0b8286005568237e894662a9c40bfdb42550d7 /src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
parentcbf03f9c2625b0f336ae86a916fe77db2ee4a420 (diff)
downloadRoughlyEnoughItems-70417f41613ae30582cd48708fe43ce9a3e6ae86.tar.gz
RoughlyEnoughItems-70417f41613ae30582cd48708fe43ce9a3e6ae86.tar.bz2
RoughlyEnoughItems-70417f41613ae30582cd48708fe43ce9a3e6ae86.zip
These days are great days to completely scrap an api
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
index bae81875c..62412c3c9 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
@@ -5,7 +5,7 @@
package me.shedaniel.rei.gui.widget;
-import me.shedaniel.rei.api.AutoCraftingHandler;
+import me.shedaniel.rei.api.AutoTransferHandler;
import me.shedaniel.rei.api.RecipeDisplay;
import me.shedaniel.rei.api.RecipeHelper;
import me.shedaniel.rei.client.ScreenHelper;
@@ -22,6 +22,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
private final Supplier<RecipeDisplay> displaySupplier;
private String extraTooltip;
+ private String errorTooltip;
private AbstractContainerScreen<?> containerScreen;
public AutoCraftingButtonWidget(Rectangle rectangle, String text, Supplier<RecipeDisplay> displaySupplier) {
@@ -34,14 +35,15 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
@Override
public void onPressed() {
- for (AutoCraftingHandler autoCraftingHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler())
- if (autoCraftingHandler.canHandle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay()))
- try {
- if (autoCraftingHandler.handle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay()))
- return;
- } catch (Exception e) {
- e.printStackTrace();
- }
+ AutoTransferHandler.Context context = AutoTransferHandler.Context.create(true, containerScreen, displaySupplier.get());
+ for (AutoTransferHandler autoTransferHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler())
+ try {
+ AutoTransferHandler.Result result = autoTransferHandler.handle(context);
+ if (result.isSuccessful())
+ return;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
minecraft.openScreen(containerScreen);
ScreenHelper.getLastOverlay().init();
}
@@ -49,24 +51,32 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
@Override
public void render(int mouseX, int mouseY, float delta) {
this.enabled = false;
- for (AutoCraftingHandler autoCraftingHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler())
- if (autoCraftingHandler.canHandle(displaySupplier, minecraft, minecraft.currentScreen, containerScreen, ScreenHelper.getLastOverlay())) {
+ String error = null;
+ AutoTransferHandler.Context context = AutoTransferHandler.Context.create(false, containerScreen, displaySupplier.get());
+ for (AutoTransferHandler autoTransferHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler()) {
+ AutoTransferHandler.Result result = autoTransferHandler.handle(context);
+ if (result.isSuccessful()) {
enabled = true;
+ error = null;
break;
+ } else if (error == null) {
+ error = result.getErrorKey();
}
+ }
+ errorTooltip = error;
super.render(mouseX, mouseY, delta);
}
@Override
public Optional<String> getTooltips() {
if (this.minecraft.options.advancedItemTooltips)
- if (enabled)
+ if (errorTooltip == null)
return Optional.ofNullable(I18n.translate("text.auto_craft.move_items") + extraTooltip);
else
- return Optional.ofNullable(I18n.translate("text.auto_craft.failed_move_items") + extraTooltip);
- if (enabled)
+ return Optional.ofNullable("§c" + I18n.translate(errorTooltip) + extraTooltip);
+ if (errorTooltip == null)
return Optional.ofNullable(I18n.translate("text.auto_craft.move_items"));
else
- return Optional.ofNullable(I18n.translate("text.auto_craft.failed_move_items"));
+ return Optional.ofNullable("§c" + I18n.translate(errorTooltip));
}
}