Example usage for org.lwjgl.opengl GL11 glRotatef

List of usage examples for org.lwjgl.opengl GL11 glRotatef

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL11 glRotatef.

Prototype

public static native void glRotatef(@NativeType("GLfloat") float angle, @NativeType("GLfloat") float x,
        @NativeType("GLfloat") float y, @NativeType("GLfloat") float z);

Source Link

Document

Manipulates the current matrix with a rotation matrix.

Usage

From source file:appeng.client.render.blocks.RenderBlockCharger.java

License:Open Source License

@Override
public void renderTile(final BlockCharger block, final TileCharger tile, final Tessellator tess, final double x,
        final double y, final double z, final float f, final RenderBlocks renderer) {
    final ItemStack sis = tile.getStackInSlot(0);

    if (sis != null) {
        GL11.glPushMatrix();/*from ww  w.  j  a v  a 2  s .  co  m*/
        this.applyTESRRotation(x, y, z, tile.getForward(), tile.getUp());

        try {
            GL11.glTranslatef(0.5f, 0.45f, 0.5f);
            GL11.glScalef(1.0f / 1.1f, 1.0f / 1.1f, 1.0f / 1.1f);
            GL11.glScalef(1.0f, 1.0f, 1.0f);

            final Block blk = Block.getBlockFromItem(sis.getItem());
            if (sis.getItemSpriteNumber() == 0 && block != null
                    && RenderBlocks.renderItemIn3d(blk.getRenderType())) {
                GL11.glRotatef(25.0f, 1.0f, 0.0f, 0.0f);
                GL11.glRotatef(15.0f, 0.0f, 1.0f, 0.0f);
                GL11.glRotatef(30.0f, 0.0f, 1.0f, 0.0f);
            }

            // << 20 | light << 4;
            final int br = tile.getWorldObj().getLightBrightnessForSkyBlocks(tile.xCoord, tile.yCoord,
                    tile.zCoord, 0);
            final int var11 = br % 65536;
            final int var12 = br / 65536;

            OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, var11, var12);

            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glDisable(GL12.GL_RESCALE_NORMAL);
            tess.setColorOpaque_F(1.0f, 1.0f, 1.0f);

            this.doRenderItem(sis, tile);
        } catch (final Exception err) {
            AELog.error(err);
        }

        GL11.glPopMatrix();
    }
}

From source file:appeng.client.render.blocks.RenderBlockCraftingCPUMonitor.java

License:Open Source License

private void tesrRenderScreen(final Tessellator tess, final TileCraftingMonitorTile cmt,
        final IAEItemStack ais) {
    final ForgeDirection side = cmt.getForward();

    ForgeDirection walrus = side.offsetY != 0 ? ForgeDirection.SOUTH : ForgeDirection.UP;
    int spin = 0;

    int max = 5;//from w  ww . ja v  a2  s  .  c o  m
    while (walrus != cmt.getUp() && max > 0) {
        max--;
        spin++;
        walrus = Platform.rotateAround(walrus, side);
    }
    max--;

    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glTranslated(side.offsetX * 0.69, side.offsetY * 0.69, side.offsetZ * 0.69);

    final float scale = 0.7f;
    GL11.glScalef(scale, scale, scale);

    if (side == ForgeDirection.UP) {
        GL11.glScalef(1.0f, -1.0f, 1.0f);
        GL11.glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
        GL11.glRotatef(spin * 90.0F, 0, 0, 1);
    }

    if (side == ForgeDirection.DOWN) {
        GL11.glScalef(1.0f, -1.0f, 1.0f);
        GL11.glRotatef(-90.0f, 1.0f, 0.0f, 0.0f);
        GL11.glRotatef(spin * -90.0F, 0, 0, 1);
    }

    if (side == ForgeDirection.EAST) {
        GL11.glScalef(-1.0f, -1.0f, -1.0f);
        GL11.glRotatef(-90.0f, 0.0f, 1.0f, 0.0f);
    }

    if (side == ForgeDirection.WEST) {
        GL11.glScalef(-1.0f, -1.0f, -1.0f);
        GL11.glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
    }

    if (side == ForgeDirection.NORTH) {
        GL11.glScalef(-1.0f, -1.0f, -1.0f);
    }

    if (side == ForgeDirection.SOUTH) {
        GL11.glScalef(-1.0f, -1.0f, -1.0f);
        GL11.glRotatef(180.0f, 0.0f, 1.0f, 0.0f);
    }

    GL11.glPushMatrix();
    try {
        final ItemStack sis = ais.getItemStack();
        sis.stackSize = 1;

        final int br = 16 << 20 | 16 << 4;
        final int var11 = br % 65536;
        final int var12 = br / 65536;
        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, var11 * 0.8F, var12 * 0.8F);

        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

        GL11.glDisable(GL11.GL_LIGHTING);
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        // RenderHelper.enableGUIStandardItemLighting();
        tess.setColorOpaque_F(1.0f, 1.0f, 1.0f);

        ClientHelper.proxy.doRenderItem(sis, cmt.getWorldObj());
    } catch (final Exception e) {
        AELog.error(e);
    }

    GL11.glPopMatrix();

    GL11.glTranslatef(0.0f, 0.14f, -0.24f);
    GL11.glScalef(1.0f / 62.0f, 1.0f / 62.0f, 1.0f / 62.0f);

    final long stackSize = ais.getStackSize();
    final String renderedStackSize = NUMBER_CONVERTER.toWideReadableForm(stackSize);

    final FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
    final int width = fr.getStringWidth(renderedStackSize);
    GL11.glTranslatef(-0.5f * width, 0.0f, -1.0f);
    fr.drawString(renderedStackSize, 0, 0, 0);

    GL11.glPopAttrib();
}

From source file:appeng.client.render.blocks.RenderBlockCrank.java

License:Open Source License

@Override
public void renderTile(final BlockCrank blk, final TileCrank tile, final Tessellator tess, final double x,
        final double y, final double z, final float f, final RenderBlocks renderBlocks) {
    if (tile.getUp() == null || tile.getUp() == ForgeDirection.UNKNOWN) {
        return;//from w w  w .ja v  a 2  s  .com
    }

    Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
    RenderHelper.disableStandardItemLighting();

    if (Minecraft.isAmbientOcclusionEnabled()) {
        GL11.glShadeModel(GL11.GL_SMOOTH);
    } else {
        GL11.glShadeModel(GL11.GL_FLAT);
    }

    GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

    this.applyTESRRotation(x, y, z, tile.getForward(), tile.getUp());

    GL11.glTranslated(0.5, 0, 0.5);
    GL11.glRotatef(tile.getVisibleRotation(), 0, 1, 0);
    GL11.glTranslated(-0.5, 0, -0.5);

    tess.setTranslation(-tile.xCoord, -tile.yCoord, -tile.zCoord);
    tess.startDrawingQuads();
    renderBlocks.renderAllFaces = true;
    renderBlocks.blockAccess = tile.getWorldObj();

    renderBlocks.setRenderBounds(0.5D - 0.05, 0.5D - 0.5, 0.5D - 0.05, 0.5D + 0.05, 0.5D + 0.1, 0.5D + 0.05);

    renderBlocks.renderStandardBlock(blk, tile.xCoord, tile.yCoord, tile.zCoord);

    renderBlocks.setRenderBounds(0.70D - 0.15, 0.55D - 0.05, 0.5D - 0.05, 0.70D + 0.15, 0.55D + 0.05,
            0.5D + 0.05);

    renderBlocks.renderStandardBlock(blk, tile.xCoord, tile.yCoord, tile.zCoord);

    tess.draw();
    tess.setTranslation(0, 0, 0);
    RenderHelper.enableStandardItemLighting();
}

From source file:appeng.client.render.blocks.RenderBlockInscriber.java

License:Open Source License

private void renderItem(ItemStack sis, final float o, final AEBaseBlock block, final AEBaseTile tile,
        final Tessellator tess, final double x, final double y, final double z, final float f,
        final RenderBlocks renderer) {
    if (sis != null) {
        sis = sis.copy();/* www  . j  a  v  a  2 s. c  o  m*/
        GL11.glPushMatrix();
        // fix to inscriber
        this.applyTESRRotation(x, y, z, tile.getForward(), tile.getUp());

        try {
            // move to center
            GL11.glTranslatef(0.5f, 0.5f + o, 0.5f);

            // set scale
            GL11.glScalef(ITEM_RENDER_SCALE, ITEM_RENDER_SCALE, ITEM_RENDER_SCALE);
            GL11.glScalef(1.0f, 1.0f, 1.0f);

            final Block blk = Block.getBlockFromItem(sis.getItem());

            // is a block
            if (sis.getItemSpriteNumber() == 0 && block != null
                    && RenderBlocks.renderItemIn3d(blk.getRenderType())) {
                // rotate block in angle to make it more plastic
                GL11.glRotatef(25.0f, 1.0f, 0.0f, 0.0f);
                GL11.glRotatef(15.0f, 0.0f, 1.0f, 0.0f);
                GL11.glRotatef(30.0f, 0.0f, 1.0f, 0.0f);
            }

            GL11.glRotatef(90.0f, 1, 0, 0);

            // << 20 | light << 4;
            final int br = tile.getWorldObj().getLightBrightnessForSkyBlocks(tile.xCoord, tile.yCoord,
                    tile.zCoord, 0);
            final int var11 = br % 65536;
            final int var12 = br / 65536;

            OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, var11, var12);

            tess.setColorOpaque_F(1.0f, 1.0f, 1.0f);

            this.doRenderItem(sis, tile);
        } catch (final Exception err) {
            AELog.error(err);
        }

        GL11.glPopMatrix();
    }
}

From source file:appeng.client.render.blocks.RenderBlockSkyCompass.java

License:Open Source License

@Override
public void renderInventory(final BlockSkyCompass blk, final ItemStack is, final RenderBlocks renderer,
        ItemRenderType type, final Object[] obj) {
    if (type == ItemRenderType.INVENTORY) {
        boolean isGood = false;

        final IInventory inv = Minecraft.getMinecraft().thePlayer.inventory;
        for (int x = 0; x < inv.getSizeInventory(); x++) {
            if (inv.getStackInSlot(x) == is) {
                isGood = true;//from   ww w .  ja va  2s  . co m
            }
        }

        if (!isGood) {
            type = ItemRenderType.FIRST_PERSON_MAP;
        }
    }

    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    final ResourceLocation loc = new ResourceLocation("appliedenergistics2", "textures/models/compass.png");

    Minecraft.getMinecraft().getTextureManager().bindTexture(loc);

    if (type == ItemRenderType.ENTITY) {
        GL11.glRotatef(-90.0f, 0.0f, 0.0f, 1.0f);
        GL11.glScalef(1.0F, -1F, -1F);
        GL11.glScalef(2.5f, 2.5f, 2.5f);
        GL11.glTranslatef(-0.25F, -1.65F, -0.19F);
    } else {
        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glRotatef(15.3f, 0.0f, 0.0f, 1.0f);
        }

        GL11.glScalef(1.0F, -1F, -1F);
        GL11.glScalef(2.5f, 2.5f, 2.5f);

        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glTranslatef(0.3F, -1.65F, -0.19F);
        } else {
            GL11.glTranslatef(0.2F, -1.65F, -0.19F);
        }
    }

    long now = System.currentTimeMillis();
    if (type == ItemRenderType.EQUIPPED_FIRST_PERSON || type == ItemRenderType.INVENTORY
            || type == ItemRenderType.EQUIPPED) {
        EntityPlayer p = Minecraft.getMinecraft().thePlayer;
        float rYaw = p.rotationYaw;

        if (type == ItemRenderType.EQUIPPED) {
            p = (EntityPlayer) obj[1];
            rYaw = p.renderYawOffset;
        }

        final int x = (int) p.posX;
        final int y = (int) p.posY;
        final int z = (int) p.posZ;
        final CompassResult cr = CompassManager.INSTANCE.getCompassDirection(0, x, y, z);

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                CompassManager.INSTANCE.getCompassDirection(0, x + i - 1, y, z + j - 1);
            }
        }

        if (cr.isValidResult()) {
            if (cr.isSpin()) {
                now %= 100000;
                this.model.renderAll((now / 50000.0f) * (float) Math.PI * 500.0f);
            } else {
                if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
                    final float offRads = rYaw / 180.0f * (float) Math.PI;
                    final float adjustment = (float) Math.PI * 0.74f;
                    this.model.renderAll((float) this.flipidiy(cr.getRad() + offRads + adjustment));
                } else {
                    final float offRads = rYaw / 180.0f * (float) Math.PI;
                    final float adjustment = (float) Math.PI * -0.74f;
                    this.model.renderAll((float) this.flipidiy(cr.getRad() + offRads + adjustment));
                }
            }
        } else {
            now %= 1000000;
            this.model.renderAll((now / 500000.0f) * (float) Math.PI * 500.0f);
        }
    } else {
        now %= 100000;
        this.model.renderAll((now / 50000.0f) * (float) Math.PI * 500.0f);
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
}

From source file:appeng.client.render.BusRenderer.java

License:Open Source License

@Override
public void renderItem(final ItemRenderType type, final ItemStack item, final Object... data) {
    if (item == null) {
        return;//w  w  w  .  ja v a  2s  .com
    }

    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glEnable(GL11.GL_LIGHTING);

    if (AEConfig.instance.isFeatureEnabled(AEFeature.AlphaPass) && item.getItem() instanceof IAlphaPassItem
            && ((IAlphaPassItem) item.getItem()).useAlphaPass(item)) {
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
        GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
        GL11.glDisable(GL11.GL_ALPHA_TEST);
        GL11.glEnable(GL11.GL_BLEND);
    } else {
        GL11.glAlphaFunc(GL11.GL_GREATER, 0.4f);
        GL11.glEnable(GL11.GL_ALPHA_TEST);
        GL11.glDisable(GL11.GL_BLEND);
    }

    if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
        GL11.glTranslatef(-0.2f, -0.1f, -0.3f);
    }

    if (type == ItemRenderType.ENTITY) {
        GL11.glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
        GL11.glScalef(0.8f, 0.8f, 0.8f);
        GL11.glTranslatef(-0.8f, -0.87f, -0.7f);
    }

    if (type == ItemRenderType.INVENTORY) {
        GL11.glTranslatef(0.0f, -0.1f, 0.0f);
    }

    GL11.glTranslated(0.2, 0.3, 0.1);
    GL11.glScaled(1.2, 1.2, 1.);

    GL11.glColor4f(1, 1, 1, 1);
    Tessellator.instance.setColorOpaque_F(1, 1, 1);
    Tessellator.instance.setBrightness(14 << 20 | 14 << 4);

    BusRenderHelper.INSTANCE.setBounds(0, 0, 0, 1, 1, 1);
    BusRenderHelper.INSTANCE.setTexture(null);
    BusRenderHelper.INSTANCE.setInvColor(0xffffff);
    this.getRenderer().blockAccess = ClientHelper.proxy.getWorld();

    BusRenderHelper.INSTANCE.setOrientation(ForgeDirection.EAST, ForgeDirection.UP, ForgeDirection.SOUTH);

    this.getRenderer().uvRotateBottom = this.getRenderer().uvRotateEast = this
            .getRenderer().uvRotateNorth = this.getRenderer().uvRotateSouth = this
                    .getRenderer().uvRotateTop = this.getRenderer().uvRotateWest = 0;
    this.getRenderer().useInventoryTint = false;
    this.getRenderer().overrideBlockTexture = null;

    if (item.getItem() instanceof IFacadeItem) {
        final IFacadeItem fi = (IFacadeItem) item.getItem();
        final IFacadePart fp = fi.createPartFromItemStack(item, ForgeDirection.SOUTH);

        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glRotatef(160.0f, 0.0f, 1.0f, 0.0f);
            GL11.glTranslated(-0.4, 0.1, -1.6);
        }

        if (fp != null) {
            fp.renderInventory(BusRenderHelper.INSTANCE, this.getRenderer());
        }
    } else {
        final IPart ip = this.getRenderer(item, (IPartItem) item.getItem());
        if (ip != null) {
            if (type == ItemRenderType.ENTITY) {
                final int depth = ip.cableConnectionRenderTo();
                GL11.glTranslatef(0.0f, 0.0f, -0.04f * (8 - depth) - 0.06f);
            }

            ip.renderInventory(BusRenderHelper.INSTANCE, this.getRenderer());
        }
    }

    this.getRenderer().uvRotateBottom = this.getRenderer().uvRotateEast = this
            .getRenderer().uvRotateNorth = this.getRenderer().uvRotateSouth = this
                    .getRenderer().uvRotateTop = this.getRenderer().uvRotateWest = 0;

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:appeng.client.render.items.PaintBallRender.java

License:Open Source License

@Override
public void renderItem(final ItemRenderType type, final ItemStack item, final Object... data) {
    IIcon par2Icon = item.getIconIndex();
    if (item.getItemDamage() >= 20) {
        par2Icon = ExtraItemTextures.ItemPaintBallShimmer.getIcon();
    }/*from  ww w.  j  av a2 s . com*/

    final float f4 = par2Icon.getMinU();
    final float f5 = par2Icon.getMaxU();
    final float f6 = par2Icon.getMinV();
    final float f7 = par2Icon.getMaxV();

    final ItemPaintBall ipb = (ItemPaintBall) item.getItem();

    final Tessellator tessellator = Tessellator.instance;
    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

    final AEColor col = ipb.getColor(item);

    final int colorValue = item.getItemDamage() >= 20 ? col.mediumVariant : col.mediumVariant;
    final int r = (colorValue >> 16) & 0xff;
    final int g = (colorValue >> 8) & 0xff;
    final int b = (colorValue) & 0xff;

    if (item.getItemDamage() >= 20) {
        final float fail = 0.7f;
        final int full = (int) (255 * 0.3);
        GL11.glColor4ub((byte) (full + r * fail), (byte) (full + g * fail), (byte) (full + b * fail),
                (byte) 255);
    } else {
        GL11.glColor4ub((byte) r, (byte) g, (byte) b, (byte) 255);
    }

    if (type == ItemRenderType.INVENTORY) {
        GL11.glScalef(16F, 16F, 10F);
        GL11.glTranslatef(0.0F, 1.0F, 0.0F);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
        GL11.glEnable(GL11.GL_ALPHA_TEST);

        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 1.0F, 0.0F);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(1, 0, 0, f5, f7);
        tessellator.addVertexWithUV(1, 1, 0, f5, f6);
        tessellator.addVertexWithUV(0, 1, 0, f4, f6);
        tessellator.draw();
    } else {
        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
        } else {
            GL11.glTranslatef(-0.5F, -0.3F, 0.01F);
        }
        final float f12 = 0.0625F;
        ItemRenderer.renderItemIn2D(tessellator, f5, f6, f4, f7, par2Icon.getIconWidth(),
                par2Icon.getIconHeight(), f12);

        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(1F, 1.1F, 1F);
        GL11.glTranslatef(0.0F, 1.07F, f12 / -2.0f);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
    }

    GL11.glColor4f(1, 1, 1, 1.0F);

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:appeng.client.render.items.ToolBiometricCardRender.java

License:Open Source License

@Override
public void renderItem(final ItemRenderType type, final ItemStack item, final Object... data) {
    final IIcon par2Icon = item.getIconIndex();

    final float f4 = par2Icon.getMinU();
    final float f5 = par2Icon.getMaxU();
    final float f6 = par2Icon.getMinV();
    final float f7 = par2Icon.getMaxV();

    final Tessellator tessellator = Tessellator.instance;
    GL11.glPushMatrix();/*from ww w .j a v a2  s  . c om*/
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

    if (type == ItemRenderType.INVENTORY) {
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(16F, 16F, 10F);
        GL11.glTranslatef(0.0F, 1.0F, 0.0F);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
        GL11.glEnable(GL11.GL_ALPHA_TEST);

        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 1.0F, 0.0F);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(1, 0, 0, f5, f7);
        tessellator.addVertexWithUV(1, 1, 0, f5, f6);
        tessellator.addVertexWithUV(0, 1, 0, f4, f6);
        tessellator.draw();
    } else {
        GL11.glTranslatef(-0.5F, -0.3F, 0.01F);
        final float f12 = 0.0625F;
        ItemRenderer.renderItemIn2D(tessellator, f5, f6, f4, f7, par2Icon.getIconWidth(),
                par2Icon.getIconHeight(), f12);

        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(1F, 1.1F, 1F);
        GL11.glTranslatef(0.0F, 1.07F, f12 / -2.0f);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
    }

    final float u = ExtraItemTextures.White.getIcon().getInterpolatedU(8.1);
    final float v = ExtraItemTextures.White.getIcon().getInterpolatedV(8.1);

    String username = "";
    if (item.getItem() instanceof IBiometricCard) {
        final GameProfile gp = ((IBiometricCard) item.getItem()).getProfile(item);
        if (gp != null) {
            username = gp.getName();
        }
    }
    final int hash = username.length() > 0 ? username.hashCode() : 0;

    GL11.glScalef(1F / 16F, 1F / 16F, 1F);
    GL11.glTranslatef(4, 6, 0);
    GL11.glDisable(GL11.GL_LIGHTING);

    tessellator.startDrawingQuads();

    AEColor col = AEColor.values()[Math.abs(3 + hash) % AEColor.values().length];
    if (hash == 0) {
        col = AEColor.Black;
    }

    final float z = 0;
    for (int x = 0; x < 8; x++)// 8
    {
        for (int y = 0; y < 6; y++)// 6
        {
            boolean isLit = false;

            if (x == 0 || y == 0 || x == 7 || y == 5) {
                isLit = false;
            } else {
                isLit = (hash & (1 << x)) != 0 || (hash & (1 << y)) != 0;
            }

            if (isLit) {
                tessellator.setColorOpaque_I(col.mediumVariant);
            } else {
                final float scale = 0.3f / 255.0f;
                tessellator.setColorOpaque_F(((col.blackVariant >> 16) & 0xff) * scale,
                        ((col.blackVariant >> 8) & 0xff) * scale, (col.blackVariant & 0xff) * scale);
            }

            tessellator.addVertexWithUV(x, y, z, u, v);
            tessellator.addVertexWithUV(x + 1, y, z, u, v);
            tessellator.addVertexWithUV(x + 1, y + 1, z, u, v);
            tessellator.addVertexWithUV(x, y + 1, z, u, v);
        }
    }
    tessellator.draw();

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:appeng.client.render.items.ToolColorApplicatorRender.java

License:Open Source License

@Override
public void renderItem(final ItemRenderType type, final ItemStack item, final Object... data) {
    final IIcon par2Icon = item.getIconIndex();

    float f4 = par2Icon.getMinU();
    float f5 = par2Icon.getMaxU();
    float f6 = par2Icon.getMinV();
    float f7 = par2Icon.getMaxV();

    final Tessellator tessellator = Tessellator.instance;
    GL11.glPushMatrix();//w  ww.jav a  2s.  c  o  m
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

    if (type == ItemRenderType.INVENTORY) {
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(16F, 16F, 10F);
        GL11.glTranslatef(0.0F, 1.0F, 0.0F);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
        GL11.glEnable(GL11.GL_ALPHA_TEST);

        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 1.0F, 0.0F);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(1, 0, 0, f5, f7);
        tessellator.addVertexWithUV(1, 1, 0, f5, f6);
        tessellator.addVertexWithUV(0, 1, 0, f4, f6);
        tessellator.draw();
    } else {
        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
        } else if (type == ItemRenderType.EQUIPPED) {
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
        } else {
            GL11.glTranslatef(-0.5F, -0.3F, 0.01F);
        }
        final float f12 = 0.0625F;
        ItemRenderer.renderItemIn2D(tessellator, f5, f6, f4, f7, par2Icon.getIconWidth(),
                par2Icon.getIconHeight(), f12);

        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(-1F, -1F, 1F);
        GL11.glTranslatef(-1.125F, 0.0f, f12 / -2.0f);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
    }

    final IIcon dark = ExtraItemTextures.ToolColorApplicatorTip_Dark.getIcon();
    final IIcon med = ExtraItemTextures.ToolColorApplicatorTip_Medium.getIcon();
    final IIcon light = ExtraItemTextures.ToolColorApplicatorTip_Light.getIcon();

    GL11.glScalef(1F / 16F, 1F / 16F, 1F);
    if (type != ItemRenderType.INVENTORY) {
        GL11.glTranslatef(2, 0, 0);
    }
    GL11.glDisable(GL11.GL_LIGHTING);

    final AEColor col = ((ToolColorApplicator) item.getItem()).getActiveColor(item);

    if (col != null) {
        tessellator.startDrawingQuads();

        f4 = dark.getMinU();
        f5 = dark.getMaxU();
        f6 = dark.getMinV();
        f7 = dark.getMaxV();

        tessellator.setColorOpaque_I(col.blackVariant);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(16, 0, 0, f5, f7);
        tessellator.addVertexWithUV(16, 16, 0, f5, f6);
        tessellator.addVertexWithUV(0, 16, 0, f4, f6);

        f4 = light.getMinU();
        f5 = light.getMaxU();
        f6 = light.getMinV();
        f7 = light.getMaxV();

        tessellator.setColorOpaque_I(col.whiteVariant);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(16, 0, 0, f5, f7);
        tessellator.addVertexWithUV(16, 16, 0, f5, f6);
        tessellator.addVertexWithUV(0, 16, 0, f4, f6);

        f4 = med.getMinU();
        f5 = med.getMaxU();
        f6 = med.getMinV();
        f7 = med.getMaxV();

        tessellator.setColorOpaque_I(col.mediumVariant);
        tessellator.addVertexWithUV(0, 0, 0, f4, f7);
        tessellator.addVertexWithUV(16, 0, 0, f5, f7);
        tessellator.addVertexWithUV(16, 16, 0, f5, f6);
        tessellator.addVertexWithUV(0, 16, 0, f4, f6);

        tessellator.draw();
    }

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}

From source file:appeng.client.render.items.ToolWirelessTerminalRender.java

License:Open Source License

@Override
public void renderItem(final ItemRenderType type, final ItemStack item, final Object... data) {
    Entity itemLocation = item.getItemFrame();
    if (itemLocation == null) {
        itemLocation = Minecraft.getMinecraft().thePlayer;
    }/* w w  w  . j  a  v a2 s .c om*/

    final boolean displayAntenna = ((ToolWirelessTerminal) item.getItem()).getIsUsable(item, itemLocation);
    final boolean hasPower = ((ToolWirelessTerminal) item.getItem()).hasPower(null, 0.5, item);

    IIcon border;
    if (displayAntenna) {
        border = ExtraItemTextures.WirelessTerminal_Border.getIcon();
    } else {
        border = ExtraItemTextures.WirelessTerminal_Border_Inactive.getIcon();
    }
    final IIcon scrollBar = ExtraItemTextures.WirelessTerminal_ScrollBar.getIcon();
    final IIcon icons = ExtraItemTextures.WirelessTerminal_Icons.getIcon();
    IIcon screen = ExtraItemTextures.WirelessTerminal_Screen.getIcon();

    final AEColor color = ToolWirelessTerminal.getColor(item);
    if (color == null) {
        screen = item.getIconIndex();
    }

    final Tessellator tessellator = Tessellator.instance;
    GL11.glPushMatrix();
    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

    //translate stuff for different item render types
    if (type != ItemRenderType.INVENTORY) {
        if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
        } else if (type == ItemRenderType.EQUIPPED) {
            GL11.glTranslatef(0.0F, 0.0F, 0.0F);
        } else {
            GL11.glTranslatef(-0.5F, -0.3F, 0.01F);
        }
    } else {
        GL11.glColor4f(1, 1, 1, 1.0F);
        GL11.glScalef(16F, 16F, 10F);
        GL11.glTranslatef(0.0F, 1.0F, 0.0F);
        GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F);
        GL11.glEnable(GL11.GL_ALPHA_TEST);
    }

    final float f12 = 0.0625F;

    //Border, which is uncolored
    subRenderItem(type, tessellator, border, f12);

    if (hasPower) {
        RenderHelper.disableStandardItemLighting();
    }

    //If a terminal isn't colored, use the default icon which doesn't require icons or scrollbar
    if (color != null) {
        //Icons, which are dark colored
        {
            final int blackColor = color.blackVariant;
            final float r = (blackColor >> 16) & 0xFF;
            final float g = (blackColor >> 8) & 0xFF;
            final float b = blackColor & 0xFF;
            GL11.glColor3f(r / 256.0f, g / 256.0f, b / 256.0f);

            subRenderItem(type, tessellator, icons, f12);
        }

        //Scrollbar, which is medium colored
        {
            final int medColor = color.mediumVariant;
            final float r = (medColor >> 16) & 0xFF;
            final float g = (medColor >> 8) & 0xFF;
            final float b = medColor & 0xFF;
            GL11.glColor3f(r / 256.0f, g / 256.0f, b / 256.0f);

            subRenderItem(type, tessellator, scrollBar, f12);
        }
    }

    //Screen, which is light colored
    {
        if (color != null) {
            final int whiteColor = color.whiteVariant;
            final float r = (whiteColor >> 16) & 0xFF;
            final float g = (whiteColor >> 8) & 0xFF;
            final float b = whiteColor & 0xFF;
            GL11.glColor3f(r / 256.0f, g / 256.0f, b / 256.0f);
        }

        subRenderItem(type, tessellator, screen, f12);
    }

    GL11.glPopAttrib();
    GL11.glPopMatrix();
}