aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch')
-rw-r--r--patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch86
1 files changed, 86 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch b/patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch
new file mode 100644
index 0000000000..a9a8c24aa0
--- /dev/null
+++ b/patch-remap/og/net/minecraft/world/item/crafting/ShapedRecipes.patch
@@ -0,0 +1,86 @@
+--- a/net/minecraft/world/item/crafting/ShapedRecipes.java
++++ b/net/minecraft/world/item/crafting/ShapedRecipes.java
+@@ -10,6 +10,14 @@
+ import net.minecraft.world.item.ItemStack;
+ import net.minecraft.world.level.World;
+
++// CraftBukkit start
++import org.bukkit.NamespacedKey;
++import org.bukkit.craftbukkit.inventory.CraftItemStack;
++import org.bukkit.craftbukkit.inventory.CraftRecipe;
++import org.bukkit.craftbukkit.inventory.CraftShapedRecipe;
++import org.bukkit.inventory.RecipeChoice;
++// CraftBukkit end
++
+ public class ShapedRecipes implements RecipeCrafting {
+
+ final ShapedRecipePattern pattern;
+@@ -30,6 +38,68 @@
+ this(s, craftingbookcategory, shapedrecipepattern, itemstack, true);
+ }
+
++ // CraftBukkit start
++ @Override
++ public org.bukkit.inventory.ShapedRecipe toBukkitRecipe(NamespacedKey id) {
++ CraftItemStack result = CraftItemStack.asCraftMirror(this.result);
++ CraftShapedRecipe recipe = new CraftShapedRecipe(id, result, this);
++ recipe.setGroup(this.group);
++ recipe.setCategory(CraftRecipe.getCategory(this.category()));
++
++ switch (this.pattern.height()) {
++ case 1:
++ switch (this.pattern.width()) {
++ case 1:
++ recipe.shape("a");
++ break;
++ case 2:
++ recipe.shape("ab");
++ break;
++ case 3:
++ recipe.shape("abc");
++ break;
++ }
++ break;
++ case 2:
++ switch (this.pattern.width()) {
++ case 1:
++ recipe.shape("a","b");
++ break;
++ case 2:
++ recipe.shape("ab","cd");
++ break;
++ case 3:
++ recipe.shape("abc","def");
++ break;
++ }
++ break;
++ case 3:
++ switch (this.pattern.width()) {
++ case 1:
++ recipe.shape("a","b","c");
++ break;
++ case 2:
++ recipe.shape("ab","cd","ef");
++ break;
++ case 3:
++ recipe.shape("abc","def","ghi");
++ break;
++ }
++ break;
++ }
++ char c = 'a';
++ for (RecipeItemStack list : this.pattern.ingredients()) {
++ RecipeChoice choice = CraftRecipe.toBukkit(list);
++ if (choice != null) {
++ recipe.setIngredient(c, choice);
++ }
++
++ c++;
++ }
++ return recipe;
++ }
++ // CraftBukkit end
++
+ @Override
+ public RecipeSerializer<?> getSerializer() {
+ return RecipeSerializer.SHAPED_RECIPE;