Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package yesodmod.general.client;
- 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.util.IIcon;
- import net.minecraft.world.IBlockAccess;
- import org.lwjgl.opengl.GL11;
- import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
- public class LavaGlassRenderer 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)
- {
- //which render pass are we doing?
- if(ClientProxy.renderPass == 0)
- {
- //we are on the solid block render pass, lets render the solid diamond block
- IIcon icon = renderer.getBlockIconFromSide(Blocks.lava, 3);
- IIcon iconTop = renderer.getBlockIconFromSide(Blocks.lava, 0);
- drawLava(icon, iconTop, x,y,z);
- }
- else
- {
- //we are on the alpha render pass, draw the ice around the diamond
- renderer.renderStandardBlock(Blocks.glass, x, y, z);
- }
- return true;
- }
- private void drawLava(IIcon texture, IIcon textureTop, int x, int y, int z)
- {
- Tessellator tassellator = Tessellator.instance;
- //set the texture
- double minU = texture.getMinU();
- double maxU = texture.getMaxU();
- double minV = texture.getMinV();
- double maxV = texture.getMaxV();
- double minUTop = textureTop.getMinU();
- double maxUTop = textureTop.getMaxU();
- double minVTop = textureTop.getMinV();
- double maxVTop = textureTop.getMaxV();
- //offset the vertices from the centre of the block
- double xFinalmin = x + 0.10D;
- double xFinalmax = x + 0.90D;
- double yFinalmin = y + 0.10D;
- double yFinalmax = y + 0.90D;
- double zFinalmin = z + 0.90D;
- double zFinalmax = z + 0.10D;
- //facce laterali
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxU, maxV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxU, minV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, minU, minV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, minU, maxV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, minU, maxV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, minU, minV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, maxU, minV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, maxU, maxV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, maxU, maxV);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, maxU, minV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minU, minV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minU, maxV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minU, maxV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minU, minV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxU, minV);
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxU, maxV);
- //facce inferiori e superiori
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxUTop, maxVTop);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, maxUTop, minVTop);
- tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, minUTop, minVTop);
- tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minUTop, maxVTop);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minUTop, maxVTop);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, minUTop, minVTop);
- tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, maxUTop, minVTop);
- tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxUTop, maxVTop);
- }
- @Override
- public boolean shouldRender3DInInventory(int modelId)
- {
- return false;
- }
- @Override
- public int getRenderId()
- {
- return ClientProxy.lavaGlassRenderType;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement