@Override
public boolean renderInWorld(AEBaseBlock block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer)
{
preRenderInWorld( block, world, x, y, z, renderer );
BlockCharger blk = (BlockCharger) block;
IOrientable te = getOrientable( block, world, x, y, z );
ForgeDirection fdy = te.getUp();
ForgeDirection fdz = te.getForward();
ForgeDirection fdx = Platform.crossProduct( fdz, fdy ).getOpposite();
renderer.renderAllFaces = true;
renderBlockBounds( renderer, 6, 1, 0, 10, 15, 2, fdx, fdy, fdz );
boolean out = renderer.renderStandardBlock( blk, x, y, z );
blk.getRendererInstance().setTemporaryRenderIcons( ExtraBlockTextures.BlockChargerInside.getIcon(), null, null, null, null, null );
renderBlockBounds( renderer, 2, 0, 2, 14, 3, 14, fdx, fdy, fdz );
out = renderer.renderStandardBlock( blk, x, y, z );
renderBlockBounds( renderer, 3, 3, 3, 13, 4, 13, fdx, fdy, fdz );
out = renderer.renderStandardBlock( blk, x, y, z );
blk.getRendererInstance().setTemporaryRenderIcon( null );
blk.getRendererInstance().setTemporaryRenderIcons( null, ExtraBlockTextures.BlockChargerInside.getIcon(), null, null, null, null );
renderBlockBounds( renderer, 2, 13, 2, 14, 16, 14, fdx, fdy, fdz );
out = renderer.renderStandardBlock( blk, x, y, z );
renderBlockBounds( renderer, 3, 12, 3, 13, 13, 13, fdx, fdy, fdz );
out = renderer.renderStandardBlock( blk, x, y, z );
renderer.renderAllFaces = false;
blk.getRendererInstance().setTemporaryRenderIcon( null );
postRenderInWorld( renderer );
return out;
}