/** * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team * http://www.mod-buildcraft.com * <p/> * BuildCraft is distributed under the terms of the Minecraft Mod Public * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ package buildcraft.core.lib.render; import org.lwjgl.opengl.GL11; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; public final class RenderUtils { /** * Deactivate constructor */ private RenderUtils() { } public static void setGLColorFromInt(int color) { float red = (color >> 16 & 255) / 255.0F; float green = (color >> 8 & 255) / 255.0F; float blue = (color & 255) / 255.0F; GL11.glColor4f(red, green, blue, 1.0F); } public static void drawBlockItem(RenderBlocks render, Tessellator tessellator, Block block, IIcon icon) { if (icon == null) { return; } tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, -1F, 0.0F); render.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.setNormal(0.0F, 1.0F, 0.0F); render.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.setNormal(0.0F, 0.0F, -1F); render.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.setNormal(0.0F, 0.0F, 1.0F); render.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.setNormal(-1F, 0.0F, 0.0F); render.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.setNormal(1.0F, 0.0F, 0.0F); render.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); } public static void drawBlockItem(RenderBlocks render, Tessellator tessellator, Block block, int decodedMeta) { tessellator.startDrawingQuads(); IIcon icon = tryGetBlockIcon(block, 0, decodedMeta); if (icon != null) { tessellator.setNormal(0.0F, -1F, 0.0F); render.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon); } icon = tryGetBlockIcon(block, 1, decodedMeta); if (icon != null) { tessellator.setNormal(0.0F, 1F, 0.0F); render.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon); } icon = tryGetBlockIcon(block, 2, decodedMeta); if (icon != null) { tessellator.setNormal(0.0F, 0.0F, -1F); render.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon); } icon = tryGetBlockIcon(block, 3, decodedMeta); if (icon != null) { tessellator.setNormal(0.0F, 0.0F, 1F); render.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon); } icon = tryGetBlockIcon(block, 4, decodedMeta); if (icon != null) { tessellator.setNormal(-1F, 0.0F, 0.0F); render.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon); } icon = tryGetBlockIcon(block, 5, decodedMeta); if (icon != null) { tessellator.setNormal(1F, 0.0F, 0.0F); render.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon); } tessellator.draw(); } public static IIcon tryGetBlockIcon(Block block, int side, int decodedMeta) { IIcon icon = null; try { icon = block.getIcon(side, decodedMeta); } catch (Throwable t) { try { icon = block.getBlockTextureFromSide(side); } catch (Throwable ignored) { } } return icon; } }