package fox.spiteful.forbidden.blocks; import cpw.mods.fml.common.ObfuscationReflectionHelper; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import fox.spiteful.forbidden.Forbidden; import fox.spiteful.forbidden.WorldGenTaintedTree; import net.minecraft.block.Block; import net.minecraft.block.BlockSapling; 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.World; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import thaumcraft.common.config.Config; import thaumcraft.common.config.ConfigBlocks; import java.lang.reflect.Field; import java.util.List; import java.util.Random; public class BlockSaplingTainted extends BlockSapling { @SideOnly(Side.CLIENT) private IIcon icon; public BlockSaplingTainted() { super(); setCreativeTab(Forbidden.tab); setStepSound(ConfigBlocks.blockTaint.stepSound); try { Field mat = ReflectionHelper.findField(Block.class, "blockMaterial", "field_149764_J"); mat.set(this, Config.taintMaterial); } catch (Exception e){ e.printStackTrace(); } } /** * Grow the tree */ @Override public void func_149878_d(World world, int x, int y, int z, Random rand) { if(!world.isRemote) { int meta = world.getBlockMetadata(x, y, z); world.setBlockToAir(x, y, z); WorldGenTaintedTree tree = new WorldGenTaintedTree(true); if (!tree.generate(world, rand, x, y, z)) { world.setBlock(x, y, z, this, meta, 2); } } } @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { list.add(new ItemStack(this, 1, 0)); } @Override public Item getItemDropped(int wut, Random random, int yeah) { return Item.getItemFromBlock(this); } @SideOnly(Side.CLIENT) @Override public void registerBlockIcons(IIconRegister register) { icon = register.registerIcon("forbidden:sapling_taint"); } @SideOnly(Side.CLIENT) @Override public IIcon getIcon(int side, int meta) { return icon; } }