package net.tropicraft.block;
import java.util.List;
import java.util.Random;
import net.minecraft.block.BlockLeaves;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.tropicraft.info.TCInfo;
import net.tropicraft.registry.TCBlockRegistry;
import net.tropicraft.registry.TCCreativeTabRegistry;
import net.tropicraft.registry.TCItemRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockFruitLeaves extends BlockLeaves {
public static final String[][] imageNames = new String[][] {{"leafGrapefruit", "leafLemon", "leafLime", "leafOrange"}, {"leafGrapefruitFast", "leafLemonFast", "leafLimeFast", "leafOrangeFast"}};
public static final String[] treeNames = new String[] {"grapefruit", "lemon", "lime", "orange"};
@SideOnly(Side.CLIENT)
protected IIcon[][] icons;
public BlockFruitLeaves() {
super();
this.disableStats();
setCreativeTab(TCCreativeTabRegistry.tabBlock);
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
icons = new IIcon[2][];
}
}
@Override
public void dropBlockAsItemWithChance(World par1World, int x, int y, int z, int meta, float par6, int par7) {
if (!par1World.isRemote) {
if (par1World.rand.nextInt(3) == 0) {
Item item = this.getItemDropped(meta, par1World.rand, par7);
if(item == Item.getItemFromBlock(TCBlockRegistry.saplings)) {
super.dropBlockAsItem(par1World, x, y, z, new ItemStack(item, 1, this.damageDropped(meta) + 2));
} else {
super.dropBlockAsItem(par1World, x, y, z, new ItemStack(item, 1, this.damageDropped(meta)));
}
}
}
}
@Override
public int damageDropped(int meta)
{
return meta & 3;
}
/**
* @return The unlocalized block name
*/
@Override
public String getUnlocalizedName() {
return String.format("tile.%s%s", TCInfo.ICON_LOCATION, getActualName(super.getUnlocalizedName()));
}
/**
* Get the true name of the block
* @param unlocalizedName tile.%truename%
* @return The actual name of the block, rather than tile.%truename%
*/
protected String getActualName(String unlocalizedName) {
return unlocalizedName.substring(unlocalizedName.indexOf('.') + 1);
}
@Override
public boolean isOpaqueCube() {
return false;
}
/* Override default leaf color so it doesn't color over our awesome fruits */
@SideOnly(Side.CLIENT)
public int getRenderColor(int p_149741_1_) {
return 0xffffff;
}
/* Override default leaf color so it doesn't color over our awesome fruits */
@SideOnly(Side.CLIENT)
public int colorMultiplier(IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_)
{
return 0xffffff;
}
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
list.add(new ItemStack(item, 1, 0));
list.add(new ItemStack(item, 1, 1));
list.add(new ItemStack(item, 1, 2));
list.add(new ItemStack(item, 1, 3));
}
@Override
public int quantityDropped(Random random) {
return random.nextInt(3) != 0 ? 0 : 1;
}
@Override
public Item getItemDropped(int metadata, Random random, int j) {
int treeType = metadata & 3;
if (random.nextFloat() < 0.8F) {
if (treeType == 0) {
return TCItemRegistry.grapefruit;
} else if (treeType == 1) {
return TCItemRegistry.lemon;
} else if (treeType == 2) {
return TCItemRegistry.lime;
} else {
return TCItemRegistry.orange;
}
}
return Item.getItemFromBlock(TCBlockRegistry.saplings);
}
@Override
public IIcon getIcon(int var1, int meta) {
return (meta & 3) == 1 ? this.icons[this.field_150127_b][1] : ((meta & 3) == 3 ? this.icons[this.field_150127_b][3] : ((meta & 3) == 2 ? this.icons[this.field_150127_b][2] : this.icons[this.field_150127_b][0]));
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
for (int i = 0; i < imageNames.length; ++i) {
this.icons[i] = new IIcon[imageNames[i].length];
for (int j = 0; j < imageNames[i].length; ++j) {
this.icons[i][j] = iconRegister.registerIcon(TCInfo.ICON_LOCATION + imageNames[i][j]);
}
}
}
@Override
public String[] func_150125_e() {
return this.treeNames;
}
}