summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/RecipeFireworks.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/RecipeFireworks.java')
-rw-r--r--src/main/java/net/minecraft/server/RecipeFireworks.java176
1 files changed, 176 insertions, 0 deletions
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;
+ }
+}