aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/plugin
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-01-06 20:47:14 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-01-06 20:47:14 +0800
commit8622811b9b8cd1447d08f5ee1654d18e01098536 (patch)
treed59478a252703e752082cb774e31de32fd96654c /src/main/java/me/shedaniel/plugin
parent63fdcc76da7e2d7cbd79d327c6dd72404708f64f (diff)
downloadRoughlyEnoughItems-8622811b9b8cd1447d08f5ee1654d18e01098536.tar.gz
RoughlyEnoughItems-8622811b9b8cd1447d08f5ee1654d18e01098536.tar.bz2
RoughlyEnoughItems-8622811b9b8cd1447d08f5ee1654d18e01098536.zip
Close #6
Diffstat (limited to 'src/main/java/me/shedaniel/plugin')
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java38
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java5
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java37
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java37
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java5
7 files changed, 126 insertions, 5 deletions
diff --git a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java
index 159d274ae..48a977eb3 100755
--- a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java
+++ b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceCategory.java
@@ -1,12 +1,21 @@
package me.shedaniel.plugin.blastfurnace;
+import me.shedaniel.api.DisplayCategoryCraftable;
import me.shedaniel.api.IDisplayCategory;
+import me.shedaniel.gui.RecipeGui;
import me.shedaniel.gui.widget.Control;
import me.shedaniel.gui.widget.REISlot;
+import me.shedaniel.gui.widget.SmallButton;
import me.shedaniel.gui.widget.WidgetArrow;
+import me.shedaniel.listenerdefinitions.IMixinRecipeBookGui;
+import me.shedaniel.plugin.smoker.VanillaSmokerRecipe;
import net.minecraft.block.Blocks;
import net.minecraft.block.entity.BlastFurnaceBlockEntity;
import net.minecraft.block.entity.SmokerBlockEntity;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.container.BlastFurnaceGui;
+import net.minecraft.client.gui.container.SmokerGui;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -16,7 +25,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
-public class VanillaBlastFurnaceCategory implements IDisplayCategory<VanillaBlastFurnaceRecipe> {
+public class VanillaBlastFurnaceCategory implements DisplayCategoryCraftable<VanillaBlastFurnaceRecipe> {
private List<VanillaBlastFurnaceRecipe> recipes;
@Override
@@ -87,4 +96,31 @@ public class VanillaBlastFurnaceCategory implements IDisplayCategory<VanillaBlas
public ItemStack getCategoryIcon() {
return new ItemStack(Blocks.BLAST_FURNACE.getItem());
}
+
+ @Override
+ public boolean canAutoCraftHere(Class<? extends Gui> guiClass, VanillaBlastFurnaceRecipe recipe) {
+ return guiClass.isAssignableFrom(BlastFurnaceGui.class);
+ }
+
+ @Override
+ public boolean performAutoCraft(Gui gui, VanillaBlastFurnaceRecipe recipe) {
+ if (!gui.getClass().isAssignableFrom(BlastFurnaceGui.class))
+ return false;
+ ((IMixinRecipeBookGui) (((BlastFurnaceGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, recipe.getRecipe(), Gui.isShiftPressed());
+ return false;
+ }
+
+ @Override
+ public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, VanillaBlastFurnaceRecipe recipe, int number) {
+ SmallButton button = new SmallButton(128, 75 + 6 + 26 + number * 75, 10, 10, "+");
+ button.setOnClick(mouse -> {
+ recipeGui.close();
+ MinecraftClient.getInstance().openGui(parentGui);
+ return canAutoCraftHere(parentGui.getClass(), recipe) && performAutoCraft(parentGui, recipe);
+ });
+ button.setEnabled(canAutoCraftHere(parentGui.getClass(), recipe));
+ control.add(button);
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java
index 6554420c3..dad285c71 100755
--- a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java
@@ -44,4 +44,9 @@ public class VanillaBlastFurnaceRecipe implements IRecipe<ItemStack> {
input.add(BlastFurnaceBlockEntity.createBurnableMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
return input;
}
+
+ public BlastingRecipe getRecipe() {
+ return recipe;
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
index 2c6d48a08..50fa4ad1e 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
+++ b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
@@ -132,6 +132,7 @@ public class VanillaCraftingCategory implements DisplayCategoryCraftable<Vanilla
((IMixinRecipeBookGui) (((CraftingTableGui) gui).getRecipeBookGui())).getGhostSlots().reset();
else if (gui.getClass().isAssignableFrom(PlayerInventoryGui.class))
((IMixinRecipeBookGui) (((PlayerInventoryGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ else return false;
MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, recipe.getRecipe(), Gui.isShiftPressed());
return true;
}
@@ -140,7 +141,6 @@ public class VanillaCraftingCategory implements DisplayCategoryCraftable<Vanilla
public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, VanillaCraftingRecipe recipe, int number) {
SmallButton button = new SmallButton(78, 75 + 6 + 36 + number * 75, 10, 10, "+");
button.setOnClick(mouse -> {
- System.out.println(parentGui.getClass().getName());
recipeGui.close();
MinecraftClient.getInstance().openGui(parentGui);
return canAutoCraftHere(parentGui.getClass(), recipe) && performAutoCraft(parentGui, recipe);
diff --git a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java b/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java
index 12e7d2324..0603bb444 100755
--- a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java
+++ b/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java
@@ -1,11 +1,17 @@
package me.shedaniel.plugin.furnace;
-import me.shedaniel.api.IDisplayCategory;
+import me.shedaniel.api.DisplayCategoryCraftable;
+import me.shedaniel.gui.RecipeGui;
import me.shedaniel.gui.widget.Control;
import me.shedaniel.gui.widget.REISlot;
+import me.shedaniel.gui.widget.SmallButton;
import me.shedaniel.gui.widget.WidgetArrow;
+import me.shedaniel.listenerdefinitions.IMixinRecipeBookGui;
import net.minecraft.block.Blocks;
import net.minecraft.block.entity.FurnaceBlockEntity;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.container.FurnaceGui;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -15,7 +21,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
-public class VanillaFurnaceCategory implements IDisplayCategory<VanillaFurnaceRecipe> {
+public class VanillaFurnaceCategory implements DisplayCategoryCraftable<VanillaFurnaceRecipe> {
private List<VanillaFurnaceRecipe> recipes;
@Override
@@ -86,4 +92,31 @@ public class VanillaFurnaceCategory implements IDisplayCategory<VanillaFurnaceRe
public ItemStack getCategoryIcon() {
return new ItemStack(Blocks.FURNACE.getItem());
}
+
+ @Override
+ public boolean canAutoCraftHere(Class<? extends Gui> guiClass, VanillaFurnaceRecipe recipe) {
+ return guiClass.isAssignableFrom(FurnaceGui.class);
+ }
+
+ @Override
+ public boolean performAutoCraft(Gui gui, VanillaFurnaceRecipe recipe) {
+ if (!gui.getClass().isAssignableFrom(FurnaceGui.class))
+ return false;
+ ((IMixinRecipeBookGui) (((FurnaceGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, recipe.getRecipe(), Gui.isShiftPressed());
+ return false;
+ }
+
+ @Override
+ public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, VanillaFurnaceRecipe recipe, int number) {
+ SmallButton button = new SmallButton(128, 75 + 6 + 26 + number * 75, 10, 10, "+");
+ button.setOnClick(mouse -> {
+ recipeGui.close();
+ MinecraftClient.getInstance().openGui(parentGui);
+ return canAutoCraftHere(parentGui.getClass(), recipe) && performAutoCraft(parentGui, recipe);
+ });
+ button.setEnabled(canAutoCraftHere(parentGui.getClass(), recipe));
+ control.add(button);
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java b/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java
index 0e7d00dd5..c207c386a 100755
--- a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java
@@ -5,6 +5,7 @@ import net.minecraft.block.entity.FurnaceBlockEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.recipe.Ingredient;
+import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.smelting.SmeltingRecipe;
import java.util.Arrays;
@@ -13,6 +14,7 @@ import java.util.List;
import java.util.stream.Collectors;
public class VanillaFurnaceRecipe implements IRecipe<ItemStack> {
+
private final SmeltingRecipe recipe;
@Override
@@ -41,4 +43,9 @@ public class VanillaFurnaceRecipe implements IRecipe<ItemStack> {
input.add(FurnaceBlockEntity.createBurnableMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
return input;
}
+
+ public Recipe getRecipe() {
+ return recipe;
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java
index 477578e6a..862d5ba35 100755
--- a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java
+++ b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java
@@ -1,11 +1,19 @@
package me.shedaniel.plugin.smoker;
+import me.shedaniel.api.DisplayCategoryCraftable;
import me.shedaniel.api.IDisplayCategory;
+import me.shedaniel.gui.RecipeGui;
import me.shedaniel.gui.widget.Control;
import me.shedaniel.gui.widget.REISlot;
+import me.shedaniel.gui.widget.SmallButton;
import me.shedaniel.gui.widget.WidgetArrow;
+import me.shedaniel.listenerdefinitions.IMixinRecipeBookGui;
import net.minecraft.block.Blocks;
import net.minecraft.block.entity.SmokerBlockEntity;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.Gui;
+import net.minecraft.client.gui.container.FurnaceGui;
+import net.minecraft.client.gui.container.SmokerGui;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -15,7 +23,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
-public class VanillaSmokerCategory implements IDisplayCategory<VanillaSmokerRecipe> {
+public class VanillaSmokerCategory implements DisplayCategoryCraftable<VanillaSmokerRecipe> {
private List<VanillaSmokerRecipe> recipes;
@Override
@@ -86,4 +94,31 @@ public class VanillaSmokerCategory implements IDisplayCategory<VanillaSmokerReci
public ItemStack getCategoryIcon() {
return new ItemStack(Blocks.SMOKER.getItem());
}
+
+ @Override
+ public boolean canAutoCraftHere(Class<? extends Gui> guiClass, VanillaSmokerRecipe recipe) {
+ return guiClass.isAssignableFrom(SmokerGui.class);
+ }
+
+ @Override
+ public boolean performAutoCraft(Gui gui, VanillaSmokerRecipe recipe) {
+ if (!gui.getClass().isAssignableFrom(SmokerGui.class))
+ return false;
+ ((IMixinRecipeBookGui) (((SmokerGui) gui).getRecipeBookGui())).getGhostSlots().reset();
+ MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, recipe.getRecipe(), Gui.isShiftPressed());
+ return false;
+ }
+
+ @Override
+ public void registerAutoCraftButton(List<Control> control, RecipeGui recipeGui, Gui parentGui, VanillaSmokerRecipe recipe, int number) {
+ SmallButton button = new SmallButton(128, 75 + 6 + 26 + number * 75, 10, 10, "+");
+ button.setOnClick(mouse -> {
+ recipeGui.close();
+ MinecraftClient.getInstance().openGui(parentGui);
+ return canAutoCraftHere(parentGui.getClass(), recipe) && performAutoCraft(parentGui, recipe);
+ });
+ button.setEnabled(canAutoCraftHere(parentGui.getClass(), recipe));
+ control.add(button);
+ }
+
}
diff --git a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java
index 4eadd9db1..4ff98077a 100755
--- a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java
+++ b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java
@@ -41,4 +41,9 @@ public class VanillaSmokerRecipe implements IRecipe<ItemStack> {
input.add(SmokerBlockEntity.createBurnableMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
return input;
}
+
+ public SmokingRecipe getRecipe() {
+ return recipe;
+ }
+
}