package net.unladenswallow.minecraft.emeraldmaterial.block;

import java.util.List;

import net.minecraft.block.BlockWall;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.unladenswallow.minecraft.emeraldmaterial.EMLogger;

/**
 * Wall block made from the emerald block.  This class extends BlockWall to get
 * its functionality for free, then overrides some methods, mainly to take out
 * the unnecessary VARIANT property.
 * 
 * @author FreneticFeline
 *
 */
public class BlockEmeraldWall extends BlockWall {

	protected final BlockState overrideBlockState;
	
    public BlockEmeraldWall()
    {
        super(Blocks.emerald_block);
        this.overrideBlockState = createOverrideBlockState();
        this.setDefaultState(this.overrideBlockState.getBaseState().withProperty(UP, Boolean.valueOf(false)).withProperty(NORTH, Boolean.valueOf(false)).withProperty(EAST, Boolean.valueOf(false)).withProperty(SOUTH, Boolean.valueOf(false)).withProperty(WEST, Boolean.valueOf(false)));
        EMLogger.info("BlockEmeraldWall <init>: getDefaultState() = " + this.getDefaultState().toString());
        EMLogger.info("BlockEmeraldWall <init>: getBlockState() = " + this.getBlockState().toString());
    }

    /**
     * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
     */
    @SideOnly(Side.CLIENT)
    public void getSubBlocks(Item itemIn, CreativeTabs tab, @SuppressWarnings("rawtypes") List list)
    {
        // Do nothing
    }

    /**
     * Get the damage value that this Block should drop
     */
    public int damageDropped(IBlockState state)
    {
        return 0;
    }

    /**
     * Convert the given metadata into a BlockState for this Block
     */
    public IBlockState getStateFromMeta(int meta)
    {
        return this.getDefaultState();
    }

    /**
     * Convert the BlockState into the correct metadata value
     */
    public int getMetaFromState(IBlockState state)
    {
        return 0;
    }

    /**
     * Get the actual Block state of this Block at the given position. This applies properties not visible in the
     * metadata, such as fence connections.
     */
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
        return state.withProperty(UP, Boolean.valueOf(!worldIn.isAirBlock(pos.up()))).withProperty(NORTH, Boolean.valueOf(this.canConnectTo(worldIn, pos.north()))).withProperty(EAST, Boolean.valueOf(this.canConnectTo(worldIn, pos.east()))).withProperty(SOUTH, Boolean.valueOf(this.canConnectTo(worldIn, pos.south()))).withProperty(WEST, Boolean.valueOf(this.canConnectTo(worldIn, pos.west())));
    }

    protected BlockState createOverrideBlockState()
    {
        return new BlockState(this, new IProperty[] {UP, NORTH, EAST, WEST, SOUTH});
    }

    public BlockState getBlockState()
    {
        return this.overrideBlockState;
    }

    @Override
    public boolean canPlaceTorchOnTop(IBlockAccess world, BlockPos pos) {
    	return true;
    }

}

@@ -1369,220 +1369,8 @@
 ));%0A
-        EMLogger.info(%22BlockEmeraldWall %3Cinit%3E: getDefaultState() = %22 + this.getDefaultState().toString());%0A        EMLogger.info(%22BlockEmeraldWall %3Cinit%3E: getBlockState() = %22 + this.getBlockState().toString());%0A
     

Remove debugging