summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ShapedRecipes.java
diff options
context:
space:
mode:
authorCeltic Minstrel <celtic.minstrel.ca@some.place>2011-07-23 23:16:14 -0400
committerEvilSeph <evilseph@gmail.com>2012-02-21 04:24:24 -0500
commit326091c130657294157d137895663ad2924c0b95 (patch)
treecffe921828633ddb7a2da5b0dc209740380cd32a /src/main/java/net/minecraft/server/ShapedRecipes.java
parent84ecdb5439ef5633c44b1ea0581174bf581b4969 (diff)
downloadcraftbukkit-326091c130657294157d137895663ad2924c0b95.tar
craftbukkit-326091c130657294157d137895663ad2924c0b95.tar.gz
craftbukkit-326091c130657294157d137895663ad2924c0b95.tar.lz
craftbukkit-326091c130657294157d137895663ad2924c0b95.tar.xz
craftbukkit-326091c130657294157d137895663ad2924c0b95.zip
[Bleeding] Recipe API improvements and fixes. Addresses BUKKIT-738 and BUKKIT-624
Add a recipe iterator to make it possible to retrieve and remove recipes (BUKKIT-738), and updated the recipe classes to not clip the data to 127 (BUKKIT-624)
Diffstat (limited to 'src/main/java/net/minecraft/server/ShapedRecipes.java')
-rw-r--r--src/main/java/net/minecraft/server/ShapedRecipes.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ShapedRecipes.java b/src/main/java/net/minecraft/server/ShapedRecipes.java
index 6fde0c73..eccfd47e 100644
--- a/src/main/java/net/minecraft/server/ShapedRecipes.java
+++ b/src/main/java/net/minecraft/server/ShapedRecipes.java
@@ -1,5 +1,11 @@
package net.minecraft.server;
+// CraftBukkit start
+import org.bukkit.craftbukkit.inventory.CraftItemStack;
+import org.bukkit.craftbukkit.inventory.CraftShapedRecipe;
+import org.bukkit.inventory.ShapedRecipe;
+// CraftBukkit end
+
public class ShapedRecipes implements CraftingRecipe {
private int b;
@@ -16,6 +22,62 @@ public class ShapedRecipes implements CraftingRecipe {
this.e = itemstack;
}
+ // CraftBukkit start
+ public ShapedRecipe toBukkitRecipe() {
+ CraftItemStack result = new CraftItemStack(this.e);
+ CraftShapedRecipe recipe = new CraftShapedRecipe(result, this);
+ switch (this.b) {
+ case 1:
+ switch (this.c) {
+ case 1:
+ recipe.shape("a");
+ break;
+ case 2:
+ recipe.shape("ab");
+ break;
+ case 3:
+ recipe.shape("abc");
+ break;
+ }
+ break;
+ case 2:
+ switch (this.c) {
+ 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.c) {
+ 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 (ItemStack stack : this.d) {
+ if (stack != null) {
+ recipe.setIngredient(c, org.bukkit.Material.getMaterial(stack.id), stack.getData());
+ }
+ c++;
+ }
+ return recipe;
+ }
+ // CraftBukkit end
+
public ItemStack b() {
return this.e;
}