package net.minecraft.item.crafting;
import java.util.ArrayList;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemDye;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
public class RecipeFireworks implements IRecipe
{
private ItemStack field_92102_a;
private static final String __OBFID = "CL_00000083";
/**
* Used to check if a recipe matches current crafting inventory
*/
public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_)
{
this.field_92102_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 < p_77569_1_.getSizeInventory(); ++k1)
{
ItemStack itemstack = p_77569_1_.getStackInSlot(k1);
if (itemstack != null)
{
if (itemstack.getItem() == Items.gunpowder)
{
++j;
}
else if (itemstack.getItem() == Items.firework_charge)
{
++l;
}
else if (itemstack.getItem() == Items.dye)
{
++k;
}
else if (itemstack.getItem() == Items.paper)
{
++i;
}
else if (itemstack.getItem() == Items.glowstone_dust)
{
++i1;
}
else if (itemstack.getItem() == Items.diamond)
{
++i1;
}
else if (itemstack.getItem() == Items.fire_charge)
{
++j1;
}
else if (itemstack.getItem() == Items.feather)
{
++j1;
}
else if (itemstack.getItem() == Items.gold_nugget)
{
++j1;
}
else
{
if (itemstack.getItem() != Items.skull)
{
return false;
}
++j1;
}
}
}
i1 += k + j1;
if (j <= 3 && i <= 1)
{
NBTTagCompound nbttagcompound;
NBTTagCompound nbttagcompound1;
if (j >= 1 && i == 1 && i1 == 0)
{
this.field_92102_a = new ItemStack(Items.fireworks);
nbttagcompound = new NBTTagCompound();
if (l > 0)
{
nbttagcompound1 = new NBTTagCompound();
NBTTagList nbttaglist = new NBTTagList();
for (int k2 = 0; k2 < p_77569_1_.getSizeInventory(); ++k2)
{
ItemStack itemstack3 = p_77569_1_.getStackInSlot(k2);
if (itemstack3 != null && itemstack3.getItem() == Items.firework_charge && itemstack3.hasTagCompound() && itemstack3.getTagCompound().hasKey("Explosion", 10))
{
nbttaglist.appendTag(itemstack3.getTagCompound().getCompoundTag("Explosion"));
}
}
nbttagcompound1.setTag("Explosions", nbttaglist);
nbttagcompound1.setByte("Flight", (byte)j);
nbttagcompound.setTag("Fireworks", nbttagcompound1);
}
this.field_92102_a.setTagCompound(nbttagcompound); //Forge BugFix: NPE Protection
return true;
}
else if (j == 1 && i == 0 && l == 0 && k > 0 && j1 <= 1)
{
this.field_92102_a = new ItemStack(Items.firework_charge);
nbttagcompound = new NBTTagCompound();
nbttagcompound1 = new NBTTagCompound();
byte b0 = 0;
ArrayList arraylist = new ArrayList();
for (int l1 = 0; l1 < p_77569_1_.getSizeInventory(); ++l1)
{
ItemStack itemstack2 = p_77569_1_.getStackInSlot(l1);
if (itemstack2 != null)
{
if (itemstack2.getItem() == Items.dye)
{
arraylist.add(Integer.valueOf(ItemDye.dyeColors[itemstack2.getMetadata()]));
}
else if (itemstack2.getItem() == Items.glowstone_dust)
{
nbttagcompound1.setBoolean("Flicker", true);
}
else if (itemstack2.getItem() == Items.diamond)
{
nbttagcompound1.setBoolean("Trail", true);
}
else if (itemstack2.getItem() == Items.fire_charge)
{
b0 = 1;
}
else if (itemstack2.getItem() == Items.feather)
{
b0 = 4;
}
else if (itemstack2.getItem() == Items.gold_nugget)
{
b0 = 2;
}
else if (itemstack2.getItem() == Items.skull)
{
b0 = 3;
}
}
}
int[] aint1 = new int[arraylist.size()];
for (int l2 = 0; l2 < aint1.length; ++l2)
{
aint1[l2] = ((Integer)arraylist.get(l2)).intValue();
}
nbttagcompound1.setIntArray("Colors", aint1);
nbttagcompound1.setByte("Type", b0);
nbttagcompound.setTag("Explosion", nbttagcompound1);
this.field_92102_a.setTagCompound(nbttagcompound);
return true;
}
else if (j == 0 && i == 0 && l == 1 && k > 0 && k == i1)
{
ArrayList arraylist1 = new ArrayList();
for (int i2 = 0; i2 < p_77569_1_.getSizeInventory(); ++i2)
{
ItemStack itemstack1 = p_77569_1_.getStackInSlot(i2);
if (itemstack1 != null)
{
if (itemstack1.getItem() == Items.dye)
{
arraylist1.add(Integer.valueOf(ItemDye.dyeColors[itemstack1.getMetadata()]));
}
else if (itemstack1.getItem() == Items.firework_charge)
{
this.field_92102_a = itemstack1.copy();
this.field_92102_a.stackSize = 1;
}
}
}
int[] aint = new int[arraylist1.size()];
for (int j2 = 0; j2 < aint.length; ++j2)
{
aint[j2] = ((Integer)arraylist1.get(j2)).intValue();
}
if (this.field_92102_a != null && this.field_92102_a.hasTagCompound())
{
NBTTagCompound nbttagcompound2 = this.field_92102_a.getTagCompound().getCompoundTag("Explosion");
if (nbttagcompound2 == null)
{
return false;
}
else
{
nbttagcompound2.setIntArray("FadeColors", aint);
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
/**
* Returns an Item that is the result of this recipe
*/
public ItemStack getCraftingResult(InventoryCrafting p_77572_1_)
{
return this.field_92102_a.copy();
}
/**
* Returns the size of the recipe area
*/
public int getRecipeSize()
{
return 10;
}
public ItemStack getRecipeOutput()
{
return this.field_92102_a;
}
}