2014-12-15 00:11:48 +00:00
|
|
|
package com.cricketcraft.chisel.client.render;
|
2014-04-21 19:13:15 +01:00
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
|
|
|
import net.minecraft.world.IBlockAccess;
|
2014-12-14 20:05:39 +00:00
|
|
|
|
2014-04-21 19:13:15 +01:00
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
|
|
2014-12-15 00:11:48 +00:00
|
|
|
import com.cricketcraft.chisel.Chisel;
|
|
|
|
|
import com.cricketcraft.chisel.api.ICarvable;
|
|
|
|
|
import com.cricketcraft.chisel.carving.CarvableHelper;
|
|
|
|
|
import com.cricketcraft.chisel.carving.CarvableVariation;
|
|
|
|
|
import com.cricketcraft.chisel.utils.Drawing;
|
|
|
|
|
|
2014-12-14 20:05:39 +00:00
|
|
|
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|
|
|
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
|
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
public class BlockAdvancedMarbleRenderer implements ISimpleBlockRenderingHandler {
|
|
|
|
|
|
|
|
|
|
public RenderBlocksCTM rendererCTM = new RenderBlocksCTM();
|
|
|
|
|
RenderBlocksColumn rendererColumn = new RenderBlocksColumn();
|
|
|
|
|
|
|
|
|
|
public BlockAdvancedMarbleRenderer() {
|
2015-01-08 01:59:50 -05:00
|
|
|
if (Chisel.renderCTMId == 0) {
|
|
|
|
|
Chisel.renderCTMId = RenderingRegistry.getNextAvailableRenderId();
|
2015-01-07 19:50:18 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
|
|
|
|
|
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
|
|
|
|
Drawing.drawBlock(block, metadata, renderer);
|
|
|
|
|
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) {
|
|
|
|
|
int meta = world.getBlockMetadata(x, y, z);
|
|
|
|
|
|
2015-01-15 13:09:34 -05:00
|
|
|
CarvableVariation var = ((ICarvable) block).getVariation(world, x, y, z, meta);
|
2015-01-23 18:19:11 -05:00
|
|
|
|
|
|
|
|
if (rendererOld.hasOverrideBlockTexture()) {
|
|
|
|
|
// breaking anim
|
|
|
|
|
rendererOld.renderStandardBlock(block, x, y, z);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2015-01-07 19:50:18 -05:00
|
|
|
|
|
|
|
|
switch (var == null ? 0 : var.kind) {
|
|
|
|
|
case CarvableHelper.CTMX:
|
|
|
|
|
rendererCTM.blockAccess = world;
|
|
|
|
|
rendererCTM.renderMaxX = 1.0;
|
|
|
|
|
rendererCTM.renderMaxY = 1.0;
|
|
|
|
|
rendererCTM.renderMaxZ = 1.0;
|
|
|
|
|
|
|
|
|
|
rendererCTM.submap = var.submap;
|
|
|
|
|
rendererCTM.submapSmall = var.submapSmall;
|
|
|
|
|
|
|
|
|
|
rendererCTM.rendererOld = rendererOld;
|
|
|
|
|
|
|
|
|
|
return rendererCTM.renderStandardBlock(block, x, y, z);
|
|
|
|
|
case CarvableHelper.CTMV:
|
|
|
|
|
rendererColumn.blockAccess = world;
|
|
|
|
|
rendererColumn.renderMaxX = 1.0;
|
|
|
|
|
rendererColumn.renderMaxY = 1.0;
|
|
|
|
|
rendererColumn.renderMaxZ = 1.0;
|
|
|
|
|
|
|
|
|
|
rendererColumn.submap = var.seamsCtmVert;
|
|
|
|
|
rendererColumn.iconTop = var.iconTop;
|
|
|
|
|
|
|
|
|
|
return rendererColumn.renderStandardBlock(block, x, y, z);
|
|
|
|
|
default:
|
|
|
|
|
return rendererOld.renderStandardBlock(block, x, y, z);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean shouldRender3DInInventory(int renderId) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getRenderId() {
|
2015-01-08 01:59:50 -05:00
|
|
|
return Chisel.renderCTMId;
|
2015-01-07 19:50:18 -05:00
|
|
|
}
|
2014-04-21 19:13:15 +01:00
|
|
|
|
|
|
|
|
}
|