package crazypants.enderio.machine.vacuum;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.IItemRenderer;
import com.enderio.core.client.render.BoundingBox;
import com.enderio.core.client.render.CubeRenderer;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import crazypants.enderio.EnderIO;
public class VacuumChestRenderer implements ISimpleBlockRenderingHandler, IItemRenderer {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
Tessellator.instance.startDrawingQuads();
CubeRenderer.render(BoundingBox.UNIT_CUBE.scale(0.6, 0.6, 0.6), EnderIO.blockHyperCube.getIcon(0, 0));
CubeRenderer.render(BoundingBox.UNIT_CUBE.scale(0.90, 0.90,0.90), EnderIO.blockVacuumChest.getIcon(0, 0));
Tessellator.instance.draw();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
IIcon override = renderer.overrideBlockTexture;
double size = 0.4;
renderer.renderMinX = 0.5 - size;
renderer.renderMaxX = 0.5 + size;
renderer.renderMinY = 0.5 - size;
renderer.renderMaxY = 0.5 + size;
renderer.renderMinZ = 0.5 - size;
renderer.renderMaxZ = 0.5 + size;
renderer.lockBlockBounds = true;
if(!renderer.hasOverrideBlockTexture()) {
renderer.setOverrideBlockTexture(EnderIO.blockHyperCube.getIcon(0, 0));
}
renderer.renderStandardBlock(Blocks.stone, x, y, z);
renderer.setOverrideBlockTexture(override);
renderer.lockBlockBounds = false;
renderer.renderMinX = 0;
renderer.renderMaxX = 1;
renderer.renderMinY = 0;
renderer.renderMaxY = 1;
renderer.renderMinZ = 0;
renderer.renderMaxZ = 1;
if(!renderer.hasOverrideBlockTexture()) {
renderer.setOverrideBlockTexture(EnderIO.blockVacuumChest.getIcon(0, 0));
}
renderer.renderStandardBlock(Blocks.stone, x, y, z);
renderer.setOverrideBlockTexture(override);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return EnderIO.blockVacuumChest.renderId;
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
renderInventoryBlock(Block.getBlockFromItem(item.getItem()), item.getItemDamage(), 0, (RenderBlocks)data[0]);
}
}