package minefantasy.mf2.block.tree;
import java.util.Random;
import minefantasy.mf2.block.list.BlockListMF;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLog;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockLogMF extends BlockLog
{
private IIcon sideTex, topTex;
private String name;
public BlockLogMF(String baseWood)
{
name = baseWood.toLowerCase() + "_log";
GameRegistry.registerBlock(this, name);
setBlockName(name);
this.setHarvestLevel("axe", 0);
this.setCreativeTab(CreativeTabs.tabBlock);
}
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta)
{
if(meta == 15)
{
return side <= 1 ? topTex : sideTex;
}
return super.getIcon(side, meta);
}
@SideOnly(Side.CLIENT)
@Override
protected IIcon getSideIcon(int meta)
{
return sideTex;
}
@SideOnly(Side.CLIENT)
@Override
protected IIcon getTopIcon(int meta)
{
return topTex;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg)
{
sideTex = reg.registerIcon("minefantasy2:tree/"+name+"_side");
topTex = reg.registerIcon("minefantasy2:tree/"+name+"_top");
}
private Block getSaplingDrop()
{
return this == BlockListMF.log_ebony ? BlockListMF.sapling_ebony : this == BlockListMF.log_ironbark ? BlockListMF.sapling_ironbark : BlockListMF.sapling_yew;
}
private Random rand = new Random();
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int meta)
{
super.breakBlock(world, x, y, z, block, meta);
if(meta == 15)
{
float f = this.rand .nextFloat() * 0.8F + 0.1F;
float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
float f2 = this.rand.nextFloat() * 0.8F + 0.1F;
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(getSaplingDrop(), 1));
float f3 = 0.05F;
entityitem.motionX = (float)this.rand.nextGaussian() * f3;
entityitem.motionY = (float)this.rand.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.rand.nextGaussian() * f3;
world.spawnEntityInWorld(entityitem);
}
}
}