From 23b67643741d5754af4de020a29d557078f9f81d Mon Sep 17 00:00:00 2001 From: feildmaster Date: Wed, 19 Dec 2012 22:03:52 -0600 Subject: Update CraftBukkit to Minecraft 1.4.6 --- .../java/net/minecraft/server/RecipeFireworks.java | 176 +++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 src/main/java/net/minecraft/server/RecipeFireworks.java (limited to 'src/main/java/net/minecraft/server/RecipeFireworks.java') diff --git a/src/main/java/net/minecraft/server/RecipeFireworks.java b/src/main/java/net/minecraft/server/RecipeFireworks.java new file mode 100644 index 00000000..abed268e --- /dev/null +++ b/src/main/java/net/minecraft/server/RecipeFireworks.java @@ -0,0 +1,176 @@ +package net.minecraft.server; + +import java.util.ArrayList; + +public class RecipeFireworks extends ShapelessRecipes implements IRecipe { // CraftBukkit - added extends + + private ItemStack a; + + // CraftBukkit start - delegate to new parent class with bogus info + public RecipeFireworks() { + super(new ItemStack(Item.FIREWORKS, 0, 0), java.util.Arrays.asList(new ItemStack(Item.SULPHUR, 0, 5))); + } + // CraftBukkit end + + public boolean a(InventoryCrafting inventorycrafting, World world) { + this.a = null; + int i = 0; + int j = 0; + int k = 0; + int l = 0; + int i1 = 0; + int j1 = 0; + + for (int k1 = 0; k1 < inventorycrafting.getSize(); ++k1) { + ItemStack itemstack = inventorycrafting.getItem(k1); + + if (itemstack != null) { + if (itemstack.id == Item.SULPHUR.id) { + ++j; + } else if (itemstack.id == Item.FIREWORKS_CHARGE.id) { + ++l; + } else if (itemstack.id == Item.INK_SACK.id) { + ++k; + } else if (itemstack.id == Item.PAPER.id) { + ++i; + } else if (itemstack.id == Item.GLOWSTONE_DUST.id) { + ++i1; + } else if (itemstack.id == Item.DIAMOND.id) { + ++i1; + } else if (itemstack.id == Item.FIREBALL.id) { + ++j1; + } else if (itemstack.id == Item.FEATHER.id) { + ++j1; + } else if (itemstack.id == Item.GOLD_NUGGET.id) { + ++j1; + } else { + if (itemstack.id != Item.SKULL.id) { + return false; + } + + ++j1; + } + } + } + + i1 += k + j1; + if (j <= 3 && i <= 1) { + NBTTagCompound nbttagcompound; + NBTTagCompound nbttagcompound1; + + if (j >= 1 && i == 1 && i1 == 0) { + this.a = new ItemStack(Item.FIREWORKS); + if (l > 0) { + nbttagcompound = new NBTTagCompound(); + nbttagcompound1 = new NBTTagCompound("Fireworks"); + NBTTagList nbttaglist = new NBTTagList("Explosions"); + + for (int l1 = 0; l1 < inventorycrafting.getSize(); ++l1) { + ItemStack itemstack1 = inventorycrafting.getItem(l1); + + if (itemstack1 != null && itemstack1.id == Item.FIREWORKS_CHARGE.id && itemstack1.hasTag() && itemstack1.getTag().hasKey("Explosion")) { + nbttaglist.add(itemstack1.getTag().getCompound("Explosion")); + } + } + + nbttagcompound1.set("Explosions", nbttaglist); + nbttagcompound1.setByte("Flight", (byte) j); + nbttagcompound.set("Fireworks", nbttagcompound1); + this.a.setTag(nbttagcompound); + } + + return true; + } else if (j == 1 && i == 0 && l == 0 && k > 0 && j1 <= 1) { + this.a = new ItemStack(Item.FIREWORKS_CHARGE); + nbttagcompound = new NBTTagCompound(); + nbttagcompound1 = new NBTTagCompound("Explosion"); + byte b0 = 0; + ArrayList arraylist = new ArrayList(); + + for (int i2 = 0; i2 < inventorycrafting.getSize(); ++i2) { + ItemStack itemstack2 = inventorycrafting.getItem(i2); + + if (itemstack2 != null) { + if (itemstack2.id == Item.INK_SACK.id) { + arraylist.add(Integer.valueOf(ItemDye.b[itemstack2.getData()])); + } else if (itemstack2.id == Item.GLOWSTONE_DUST.id) { + nbttagcompound1.setBoolean("Flicker", true); + } else if (itemstack2.id == Item.DIAMOND.id) { + nbttagcompound1.setBoolean("Trail", true); + } else if (itemstack2.id == Item.FIREBALL.id) { + b0 = 1; + } else if (itemstack2.id == Item.FEATHER.id) { + b0 = 4; + } else if (itemstack2.id == Item.GOLD_NUGGET.id) { + b0 = 2; + } else if (itemstack2.id == Item.SKULL.id) { + b0 = 3; + } + } + } + + int[] aint = new int[arraylist.size()]; + + for (int j2 = 0; j2 < aint.length; ++j2) { + aint[j2] = ((Integer) arraylist.get(j2)).intValue(); + } + + nbttagcompound1.setIntArray("Colors", aint); + nbttagcompound1.setByte("Type", b0); + nbttagcompound.set("Explosion", nbttagcompound1); + this.a.setTag(nbttagcompound); + return true; + } else if (j == 0 && i == 0 && l == 1 && k > 0 && k == i1) { + ArrayList arraylist1 = new ArrayList(); + + for (int k2 = 0; k2 < inventorycrafting.getSize(); ++k2) { + ItemStack itemstack3 = inventorycrafting.getItem(k2); + + if (itemstack3 != null) { + if (itemstack3.id == Item.INK_SACK.id) { + arraylist1.add(Integer.valueOf(ItemDye.b[itemstack3.getData()])); + } else if (itemstack3.id == Item.FIREWORKS_CHARGE.id) { + this.a = itemstack3.cloneItemStack(); + this.a.count = 1; + } + } + } + + int[] aint1 = new int[arraylist1.size()]; + + for (int l2 = 0; l2 < aint1.length; ++l2) { + aint1[l2] = ((Integer) arraylist1.get(l2)).intValue(); + } + + if (this.a != null && this.a.hasTag()) { + NBTTagCompound nbttagcompound2 = this.a.getTag().getCompound("Explosion"); + + if (nbttagcompound2 == null) { + return false; + } else { + nbttagcompound2.setIntArray("FadeColors", aint1); + return true; + } + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + } + + public ItemStack a(InventoryCrafting inventorycrafting) { + return this.a.cloneItemStack(); + } + + public int a() { + return 10; + } + + public ItemStack b() { + return this.a; + } +} -- cgit v1.2.3