Files
Chisel/src/main/java/com/cricketcraft/chisel/client/render/RendererLayeredGlow.java
T

78 lines
2.8 KiB
Java
Raw Normal View History

2015-01-08 18:36:23 -05:00
package com.cricketcraft.chisel.client.render;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
2015-01-11 20:59:16 +00:00
import org.lwjgl.opengl.GL11;
2015-01-08 18:36:23 -05:00
import com.cricketcraft.chisel.Chisel;
import com.cricketcraft.chisel.block.BlockCarvableGlow;
import com.cricketcraft.chisel.config.Configurations;
2015-01-08 18:36:23 -05:00
import com.cricketcraft.chisel.utils.GeneralClient;
2015-06-03 17:43:03 -04:00
import com.cricketcraft.ctmlib.Drawing;
2015-06-22 15:42:46 -04:00
import com.cricketcraft.ctmlib.RenderBlocksCTM;
2015-01-08 18:36:23 -05:00
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
public class RendererLayeredGlow implements ISimpleBlockRenderingHandler {
2015-01-08 18:36:23 -05:00
public RendererLayeredGlow() {
2015-01-08 18:36:23 -05:00
Chisel.renderGlowId = RenderingRegistry.getNextAvailableRenderId();
}
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
GeneralClient.setGLColorFromInt(Configurations.configColors[metadata]);
2015-01-08 18:36:23 -05:00
GL11.glDisable(GL11.GL_LIGHTING);
Drawing.drawBlock(block, ((BlockCarvableGlow)block).getGlowTexture(), renderer);
GL11.glEnable(GL11.GL_LIGHTING);
2015-01-10 05:26:35 -05:00
GL11.glColor3f(1, 1, 1);
Drawing.drawBlock(block, metadata, renderer);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
2015-01-08 18:36:23 -05:00
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator.instance.setColorOpaque_I(Configurations.configColors[world.getBlockMetadata(x, y, z)]);
2015-06-21 22:28:46 -04:00
Tessellator.instance.setBrightness(0xF000F0);
BlockCarvableGlow glow = (BlockCarvableGlow) block;
if(glow.hasSubmapManager()){
renderer.overrideBlockTexture = glow.getGlowTexture();
getContext(renderer, glow, world).renderBlockAllFaces(glow, x, y, z);
} else {
Drawing.renderAllFaces(renderer, block, x, y, z, ((BlockCarvableGlow) block).getGlowTexture());
}
2015-01-10 05:26:35 -05:00
renderer.renderStandardBlock(block, x, y, z);
2015-01-08 18:36:23 -05:00
return true;
}
2015-06-21 22:28:46 -04:00
private RenderBlocks getContext(RenderBlocks rendererOld, BlockCarvableGlow block, IBlockAccess world) {
if (!rendererOld.hasOverrideBlockTexture() && block != null) {
RenderBlocks rb = block.getSubmapManager().createRenderContext(rendererOld, block, world);
if (rb != null && rb != rendererOld) {
rb.blockAccess = world;
if (rb instanceof RenderBlocksCTM) {
RenderBlocksCTM rbctm = (RenderBlocksCTM) rb;
rbctm.manager = rbctm.manager == null ? block.getSubmapManager() : rbctm.manager;
rbctm.rendererOld = rbctm.rendererOld == null ? rendererOld : rbctm.rendererOld;
}
return rb;
}
}
return rendererOld;
}
2015-01-08 18:36:23 -05:00
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return Chisel.renderGlowId;
}
}