package emasher.blocks;
import buildcraft.api.tools.IToolWrench;
import emasher.EngineersToolbox;
import emasher.tileentities.TileDirectionChanger;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockDirectionChanger extends BlockContainer {
public IIcon upIcon;
public IIcon downIcon;
public IIcon leftIcon;
public IIcon rightIcon;
public BlockDirectionChanger() {
super( Material.circuits );
setCreativeTab( EngineersToolbox.tabBlocks() );
}
public TileEntity createNewTileEntity( World world, int metadata ) {
return new TileDirectionChanger();
}
@Override
public boolean onBlockActivated( World world, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ ) {
if( !world.isRemote ) {
ItemStack is = player.getCurrentEquippedItem();
Item item = null;
if( is != null ) item = is.getItem();
if( item != null && item instanceof IToolWrench ) {
TileEntity te = world.getTileEntity( x, y, z );
if( te != null && te instanceof TileDirectionChanger ) {
( ( TileDirectionChanger ) te ).nextDirection( ForgeDirection.getOrientation( side ) );
}
return true;
}
}
return false;
}
@Override
public IIcon getIcon( IBlockAccess world, int x, int y, int z, int side ) {
TileEntity te = world.getTileEntity( x, y, z );
if( te != null && te instanceof TileDirectionChanger ) {
TileDirectionChanger td = ( TileDirectionChanger ) te;
switch(td.directions[side]) {
case UP:
return upIcon;
case DOWN:
return downIcon;
case NORTH:
return upIcon;
case SOUTH:
return downIcon;
case EAST:
return rightIcon;
case WEST:
return leftIcon;
default:
return blockIcon;
}
}
return blockIcon;
}
@Override
public void registerBlockIcons( IIconRegister ir ) {
blockIcon = ir.registerIcon( "eng_toolbox:dirChange" );
upIcon = ir.registerIcon( "eng_toolbox:dirChangeUp" );
downIcon = ir.registerIcon( "eng_toolbox:dirChangeDown" );
rightIcon = ir.registerIcon( "eng_toolbox:dirChangeRight" );
leftIcon = ir.registerIcon( "eng_toolbox:dirChangeLeft" );
}
}