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.LogHandler;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLog;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import org.apache.logging.log4j.Level;
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 BlockLogTainted extends BlockLog
{
@SideOnly(Side.CLIENT)
private IIcon sides;
@SideOnly(Side.CLIENT)
private IIcon ends;
@SideOnly(Side.CLIENT)
private IIcon gross;
@SideOnly(Side.CLIENT)
private IIcon gross2;
public BlockLogTainted()
{
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();
}
this.setHarvestLevel("axe", 0);
}
@Override
public int damageDropped(int p_149692_1_)
{
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register)
{
sides = register.registerIcon("forbidden:taint_log_side");
ends = register.registerIcon("forbidden:taint_log_bottom");
gross = register.registerIcon("forbidden:taint_log_side_gross");
gross2 = register.registerIcon("forbidden:taint_log_side_gross2");
}
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int side, int meta)
{
int logDirection = meta & 12;
return logDirection == 0 && (side == 1 || side == 0) ? ends : (logDirection == 4 && (side == 5 || side == 4) ? ends : (logDirection == 8 && (side == 2 || side == 3) ? ends : sides));
}
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side)
{
int meta = world.getBlockMetadata(x, y, z);
int logDirection = meta & 12;
if((logDirection == 0 && (side == 1 || side == 0)) || (logDirection == 4 && (side == 5 || side == 4)) || (logDirection == 8 && (side == 2 || side == 3)))
return ends;
else {
Random r = new Random((long)(side + y + x * z));
return r.nextInt(100) < 75 ? sides : r.nextBoolean() ? gross : gross2;
}
}
@SideOnly(Side.CLIENT)
protected IIcon getSideIcon(int meta)
{
return sides;
}
@SideOnly(Side.CLIENT)
protected IIcon getTopIcon(int meta)
{
return ends;
}
public boolean canSustainLeaves(IBlockAccess world, int x, int y, int z)
{
return false;
}
}