package mcjty.rftools.blocks.spaceprojector;
import mcjty.rftools.render.DefaultISBRH;
import mcjty.rftools.render.TesseleratorAccessHelper;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
public class ProxyBlockRenderer extends DefaultISBRH {
@Override
public int getRenderId() {
return ProxyBlock.RENDERID_PROXYBLOCK;
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
ProxyBlockTileEntity proxyBlockTileEntity = (ProxyBlockTileEntity) world.getTileEntity(x, y, z);
Block camoBlock = proxyBlockTileEntity.getBlock();
if (camoBlock != null) {
try {
int addedVertices = TesseleratorAccessHelper.getAddedVertices(Tessellator.instance);
boolean rc = renderer.renderBlockByRenderType(camoBlock, x, y, z);
if (!rc) {
return false;
}
int newAddedVertices = TesseleratorAccessHelper.getAddedVertices(Tessellator.instance);
return addedVertices != newAddedVertices;
} catch (Exception e) {
// Ignore this error. Nothing is rendered in this case.
return false;
}
}
return true;
}
}