示例#1
0
  @Override
  public void renderItem(ItemRenderType type, ItemStack item, Object... data) {

    GL11.glPushMatrix();

    if (mc == null) {
      mc = FMLClientHandler.instance().getClient();
      itemRenderer = new RenderItem();
    }
    this.mc.renderEngine.bindTexture(TextureMap.locationItemsTexture);
    Tessellator tessellator = Tessellator.instance;

    if (type == ItemRenderType.EQUIPPED) {

      GL11.glTranslatef(-0.5F, -0.5F, 0);
      GL11.glScalef(2, 2, 1);
      Icon icon = ((ItemSpear) item.getItem()).bigIcon;

      RenderManager.instance.itemRenderer.renderItemIn2D(
          tessellator,
          icon.getMaxU(),
          icon.getMinV(),
          icon.getMinU(),
          icon.getMaxV(),
          icon.getIconWidth(),
          icon.getIconHeight(),
          1F / 16F);

      if (item != null && item.hasEffect(0)) {
        // HeraldryItemRenderer.renderEnchantmentEffects(tessellator);
      }

    } else if (type == ItemRenderType.INVENTORY) {

      GL11.glColor4f(1F, 1F, 1F, 1F);
      // GL11.glRotatef(90, 0, 0, 1);
      itemRenderer.renderIcon(0, 0, item.getIconIndex(), 16, 16);

    } else if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
      Icon icon = item.getIconIndex();

      RenderManager.instance.itemRenderer.renderItemIn2D(
          tessellator,
          icon.getMaxU(),
          icon.getMinV(),
          icon.getMinU(),
          icon.getMaxV(),
          icon.getIconWidth(),
          icon.getIconHeight(),
          1F / 16F);

      if (item != null && item.hasEffect(0)) {
        renderEnchantmentEffects(tessellator);
      }
    }

    GL11.glPopMatrix();
  }
  @Override
  public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
    GL11.glPushMatrix();
    ArrayList upgrades = PolytoolItem.getUpgrades(item);
    int count = 1;
    float red = 0F;
    float green = 0F;
    float blue = 0F;

    for (int i = 0; i < upgrades.size(); i++) {
      for (int j = 0; j < ((PolytoolUpgradeType) upgrades.get(i)).power; j++) {
        count++;
      }
    }
    for (int i = 0; i < upgrades.size(); i++) {
      for (int j = 0; j < ((PolytoolUpgradeType) upgrades.get(i)).power; j++) {
        ElementEnum element = ((PolytoolUpgradeType) upgrades.get(i)).getElement();
        red += (1 / count) * getRed(element);
        green += (1 / count) * getGreen(element);
        blue += (1 / count) * getBlue(element);
      }
    }
    GL11.glColor3f(red, green, blue);

    // Get icon index for the texture
    IIcon icon = item.getIconIndex();
    // Use vanilla code to render the icon in a 16x16 square of inventory slot
    renderItem.renderIcon(0, 0, icon, 16, 16);

    GL11.glPopMatrix();
  }
 public static void renderItemIntoGUI(
     FontRenderer fontRenderer,
     ItemStack itemStack,
     int x,
     int y,
     float opacity,
     float scale,
     int zLevel) {
   IIcon icon = itemStack.getIconIndex();
   GL11.glDisable(GL11.GL_LIGHTING);
   FMLClientHandler.instance()
       .getClient()
       .renderEngine
       .bindTexture(TextureMap.locationItemsTexture);
   int overlayColour = itemStack.getItem().getColorFromItemStack(itemStack, 0);
   float red = (overlayColour >> 16 & 255) / 255.0F;
   float green = (overlayColour >> 8 & 255) / 255.0F;
   float blue = (overlayColour & 255) / 255.0F;
   GL11.glColor4f(red, green, blue, opacity);
   Tessellator tessellator = Tessellator.instance;
   tessellator.startDrawingQuads();
   tessellator.addVertexWithUV(x, y + 16 * scale, zLevel, icon.getMinU(), icon.getMaxV());
   tessellator.addVertexWithUV(
       x + 16 * scale, y + 16 * scale, zLevel, icon.getMaxU(), icon.getMaxV());
   tessellator.addVertexWithUV(x + 16 * scale, y, zLevel, icon.getMaxU(), icon.getMinV());
   tessellator.addVertexWithUV(x, y, zLevel, icon.getMinU(), icon.getMinV());
   tessellator.draw();
   GL11.glEnable(GL11.GL_LIGHTING);
 }
  public static void renderItemIntoGUI(
      FontRenderer fontRenderer,
      RenderEngine renderEngine,
      ItemStack stack,
      int x,
      int y,
      float opacity,
      float scale) {

    int itemID = stack.itemID;
    int meta = stack.getItemDamage();
    int iconIndex = stack.getIconIndex();

    GL11.glDisable(GL11.GL_LIGHTING);

    renderEngine.bindTexture(renderEngine.getTexture(stack.getItem().getTextureFile()));

    int overlayColour = Item.itemsList[itemID].getColorFromItemStack(stack, 0);
    float var17 = (float) (overlayColour >> 16 & 255) / 255.0F;
    float var16 = (float) (overlayColour >> 8 & 255) / 255.0F;
    float var12 = (float) (overlayColour & 255) / 255.0F;

    GL11.glColor4f(var17, var16, var12, opacity);

    drawTexturedQuad(x, y, iconIndex % 16 * 16, iconIndex / 16 * 16, 16, 16, -90, scale);
    GL11.glEnable(GL11.GL_LIGHTING);
  }
 private void drawItemIcon(ItemStack stack, int x, int y) {
   GL11.glPushMatrix();
   GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
   GL11.glEnable(GL11.GL_BLEND);
   GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
   int k = (this.width - this.xSize) / 2;
   int l = (this.height - this.ySize) / 2;
   IIcon iicon1 = stack.getIconIndex();
   this.mc.renderEngine.bindTexture(TextureMap.locationItemsTexture);
   this.drawTexturedModelRectFromIcon(x, y, iicon1, 16, 16);
   GL11.glDisable(GL11.GL_BLEND);
   GL11.glPopMatrix();
   this.mc.getTextureManager().bindTexture(PymParticleProducerGuiTextures);
 }
  /** Renders the item */
  public void doRenderItem(
      ArrowEntity arrow, double par2, double par4, double par6, float par8, float par9) {
    this.random.setSeed(187L);
    ItemStack itemstack = arrow.getEntityItem();

    if (itemstack.getItem() != null) {
      GL11.glPushMatrix();
      float f2 =
          shouldBob() ? MathHelper.sin(((float) 0 + par9 * 0.2f) / 10.0F + 0) * 0.1F + 0.1F : 0F;
      float f3 = (((float) 0 + par9 * 0.2f) / 20.0F + 0) * (180F / (float) Math.PI);
      byte b0 = getMiniBlockCount(itemstack);

      GL11.glTranslatef((float) par2, (float) par4 + f2, (float) par6);
      GL11.glEnable(GL12.GL_RESCALE_NORMAL);
      int i;
      float f4;
      float f5;
      float f6;

      float f8;

      if (itemstack.getItem().requiresMultipleRenderPasses()) {
        // GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F);
        GL11.glTranslatef(0.0F, -0.05F, 0.0F);

        this.loadTexture("/gui/items.png");

        for (int k = 0; k < itemstack.getItem().getRenderPasses(itemstack.getItemDamage()); ++k) {
          this.random.setSeed(187L);
          Icon icon = itemstack.getItem().getIcon(itemstack, k);
          f8 = 1.0F;

          if (this.renderWithColor) {
            i = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, k);
            f5 = (float) (i >> 16 & 255) / 255.0F;
            f4 = (float) (i >> 8 & 255) / 255.0F;
            f6 = (float) (i & 255) / 255.0F;
            GL11.glColor4f(f5 * f8, f4 * f8, f6 * f8, 1.0F);
            this.renderDroppedItem(arrow, icon, b0, par9, f5 * f8, f4 * f8, f6 * f8);
          } else {
            this.renderDroppedItem(arrow, icon, b0, par9, 1.0F, 1.0F, 1.0F);
          }
          GL11.glScalef(1.005f, 1.005f, 1.005f);
          // GL11.glTranslatef(0F, -0.0025F, 0.0F);
        }
      } else {
        GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F);
        GL11.glTranslatef(0.0F, -0.05F, 0.0F);

        Icon icon1 = itemstack.getIconIndex();

        if (itemstack.getItemSpriteNumber() == 0) {
          this.loadTexture("/terrain.png");
        } else {
          this.loadTexture("/gui/items.png");
        }

        if (this.renderWithColor) {
          int l = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, 0);
          f8 = (float) (l >> 16 & 255) / 255.0F;
          float f9 = (float) (l >> 8 & 255) / 255.0F;
          f5 = (float) (l & 255) / 255.0F;
          f4 = 1.0F;
          this.renderDroppedItem(arrow, icon1, b0, par9, f8 * f4, f9 * f4, f5 * f4);
        } else {
          this.renderDroppedItem(arrow, icon1, b0, par9, 1.0F, 1.0F, 1.0F);
        }
      }

      GL11.glDisable(GL12.GL_RESCALE_NORMAL);
      GL11.glPopMatrix();
    }
  }
  /** Renders the item's icon or block into the UI at the specified position. */
  public void renderItemIntoGUI(
      FontRenderer par1FontRenderer,
      RenderEngine par2RenderEngine,
      ItemStack par3ItemStack,
      int par4,
      int par5) {
    int k = par3ItemStack.itemID;
    int l = par3ItemStack.getItemDamage();
    Icon icon = par3ItemStack.getIconIndex();
    float f;
    float f1;
    float f2;

    int j1;

    if (Item.itemsList[k].requiresMultipleRenderPasses()) {
      GL11.glDisable(GL11.GL_LIGHTING);
      par2RenderEngine.bindTexture(
          par3ItemStack.getItemSpriteNumber() == 0 ? "/terrain.png" : "/gui/items.png");

      for (j1 = 0; j1 < Item.itemsList[k].getRenderPasses(l); ++j1) {
        Icon icon1 = Item.itemsList[k].getIcon(par3ItemStack, j1);
        int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1);
        f = (float) (k1 >> 16 & 255) / 255.0F;
        f1 = (float) (k1 >> 8 & 255) / 255.0F;
        float f3 = (float) (k1 & 255) / 255.0F;

        if (this.renderWithColor) {
          GL11.glColor4f(f, f1, f3, 1.0F);
        }

        this.renderIcon(par4, par5, icon1, 16, 16);
      }

      GL11.glEnable(GL11.GL_LIGHTING);
    } else {
      GL11.glDisable(GL11.GL_LIGHTING);

      if (par3ItemStack.getItemSpriteNumber() == 0) {
        par2RenderEngine.bindTexture("/terrain.png");
      } else {
        par2RenderEngine.bindTexture("/gui/items.png");
      }

      if (icon == null) {
        icon = par2RenderEngine.getMissingIcon(par3ItemStack.getItemSpriteNumber());
      }

      j1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, 0);
      float f4 = (float) (j1 >> 16 & 255) / 255.0F;
      f2 = (float) (j1 >> 8 & 255) / 255.0F;
      f = (float) (j1 & 255) / 255.0F;

      if (this.renderWithColor) {
        GL11.glColor4f(f4, f2, f, 1.0F);
      }

      this.renderIcon(par4, par5, icon, 16, 16);
      GL11.glEnable(GL11.GL_LIGHTING);
    }

    GL11.glEnable(GL11.GL_CULL_FACE);
  }