mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
125 lines
6.6 KiB
Java
125 lines
6.6 KiB
Java
package com.hbm.render.block;
|
|
|
|
import com.hbm.blocks.generic.BlockChain;
|
|
|
|
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
import net.minecraft.client.renderer.Tessellator;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.IBlockAccess;
|
|
|
|
public class RenderChain implements ISimpleBlockRenderingHandler {
|
|
|
|
@Override
|
|
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
|
|
}
|
|
|
|
@Override
|
|
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
|
|
|
Tessellator tessellator = Tessellator.instance;
|
|
IIcon iicon = block.getIcon(world, x, y, z, 0);
|
|
|
|
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
|
|
tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F);
|
|
double d0 = (double) iicon.getMinU();
|
|
double d1 = (double) iicon.getMinV();
|
|
double d2 = (double) iicon.getMaxU();
|
|
double d3 = (double) iicon.getMaxV();
|
|
int l = world.getBlockMetadata(x, y, z);
|
|
double scale = 0.0D;
|
|
double wallOffset = 0.05D;
|
|
|
|
if(l == 0) {
|
|
|
|
double minU = (double) iicon.getMinU();
|
|
double minV = (double) iicon.getMinV();
|
|
double maxU = (double) iicon.getMaxU();
|
|
double maxV = (double) iicon.getMaxV();
|
|
double minX = x;
|
|
double maxX = x + 1;
|
|
double minY = y;
|
|
double ySize = 1;
|
|
double minZ = z + 0;
|
|
double maxZ = z + 1;
|
|
tessellator.addVertexWithUV(minX, minY + (double) ySize, minZ, minU, minV);
|
|
tessellator.addVertexWithUV(minX, minY + 0.0D, minZ, minU, maxV);
|
|
tessellator.addVertexWithUV(maxX, minY + 0.0D, maxZ, maxU, maxV);
|
|
tessellator.addVertexWithUV(maxX, minY + (double) ySize, maxZ, maxU, minV);
|
|
tessellator.addVertexWithUV(maxX, minY + (double) ySize, maxZ, minU, minV);
|
|
tessellator.addVertexWithUV(maxX, minY + 0.0D, maxZ, minU, maxV);
|
|
tessellator.addVertexWithUV(minX, minY + 0.0D, minZ, maxU, maxV);
|
|
tessellator.addVertexWithUV(minX, minY + (double) ySize, minZ, maxU, minV);
|
|
tessellator.addVertexWithUV(minX, minY + (double) ySize, maxZ, minU, minV);
|
|
tessellator.addVertexWithUV(minX, minY + 0.0D, maxZ, minU, maxV);
|
|
tessellator.addVertexWithUV(maxX, minY + 0.0D, minZ, maxU, maxV);
|
|
tessellator.addVertexWithUV(maxX, minY + (double) ySize, minZ, maxU, minV);
|
|
tessellator.addVertexWithUV(maxX, minY + (double) ySize, minZ, minU, minV);
|
|
tessellator.addVertexWithUV(maxX, minY + 0.0D, minZ, minU, maxV);
|
|
tessellator.addVertexWithUV(minX, minY + 0.0D, maxZ, maxU, maxV);
|
|
tessellator.addVertexWithUV(minX, minY + (double) ySize, maxZ, maxU, minV);
|
|
}
|
|
|
|
if(l == 5) {
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 1) + scale, (double) (z + 1) + scale, d0, d1);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 0) - scale, (double) (z + 1) + scale, d0, d3);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 0) - scale, (double) (z + 0) - scale, d2, d3);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 1) + scale, (double) (z + 0) - scale, d2, d1);
|
|
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 0) - scale, (double) (z + 1) + scale, d0, d3);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 1) + scale, (double) (z + 1) + scale, d0, d1);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 1) + scale, (double) (z + 0) - scale, d2, d1);
|
|
tessellator.addVertexWithUV((double) x + wallOffset, (double) (y + 0) - scale, (double) (z + 0) - scale, d2, d3);
|
|
}
|
|
|
|
if(l == 4) {
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 0) - scale, (double) (z + 1) + scale, d2, d3);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 1) + scale, (double) (z + 1) + scale, d2, d1);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 1) + scale, (double) (z + 0) - scale, d0, d1);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 0) - scale, (double) (z + 0) - scale, d0, d3);
|
|
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 1) + scale, (double) (z + 1) + scale, d2, d1);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 0) - scale, (double) (z + 1) + scale, d2, d3);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 0) - scale, (double) (z + 0) - scale, d0, d3);
|
|
tessellator.addVertexWithUV((double) (x + 1) - wallOffset, (double) (y + 1) + scale, (double) (z + 0) - scale, d0, d1);
|
|
}
|
|
|
|
if(l == 3) {
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 0) - scale, (double) z + wallOffset, d2, d3);
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 1) + scale, (double) z + wallOffset, d2, d1);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 1) + scale, (double) z + wallOffset, d0, d1);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 0) - scale, (double) z + wallOffset, d0, d3);
|
|
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 1) + scale, (double) z + wallOffset, d2, d1);
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 0) - scale, (double) z + wallOffset, d2, d3);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 0) - scale, (double) z + wallOffset, d0, d3);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 1) + scale, (double) z + wallOffset, d0, d1);
|
|
}
|
|
|
|
if(l == 2) {
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 1) + scale, (double) (z + 1) - wallOffset, d0, d1);
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 0) - scale, (double) (z + 1) - wallOffset, d0, d3);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 0) - scale, (double) (z + 1) - wallOffset, d2, d3);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 1) + scale, (double) (z + 1) - wallOffset, d2, d1);
|
|
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 0) - scale, (double) (z + 1) - wallOffset, d0, d3);
|
|
tessellator.addVertexWithUV((double) (x + 1) + scale, (double) (y + 1) + scale, (double) (z + 1) - wallOffset, d0, d1);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 1) + scale, (double) (z + 1) - wallOffset, d2, d1);
|
|
tessellator.addVertexWithUV((double) (x + 0) - scale, (double) (y + 0) - scale, (double) (z + 1) - wallOffset, d2, d3);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRender3DInInventory(int modelId) {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public int getRenderId() {
|
|
return BlockChain.renderID;
|
|
}
|
|
}
|