Esempio n. 1
0
 private void renderInventorySlot(int i, int j, int k, float f) {
   ItemStack itemstack = mc.thePlayer.inventory.mainInventory[i];
   if (itemstack == null) {
     return;
   }
   float f1 = (float) itemstack.animationsToGo - f;
   if (f1 > 0.0F) {
     GL11.glPushMatrix();
     float f2 = 1.0F + f1 / 5F;
     GL11.glTranslatef(j + 8, k + 12, 0.0F);
     GL11.glScalef(1.0F / f2, (f2 + 1.0F) / 2.0F, 1.0F);
     GL11.glTranslatef(-(j + 8), -(k + 12), 0.0F);
   }
   itemRenderer.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k);
   if (f1 > 0.0F) {
     GL11.glPopMatrix();
   }
   itemRenderer.renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, itemstack, j, k);
 }
Esempio n. 2
0
  /**
   * Renders the specified item of the inventory slot at the specified location. Args: slot, x, y,
   * partialTick
   */
  private void renderInventorySlot(int par1, int par2, int par3, float par4) {
    ItemStack var5 = this.mc.thePlayer.inventory.mainInventory[par1];

    if (var5 != null) {
      float var6 = (float) var5.animationsToGo - par4;

      if (var6 > 0.0F) {
        GL11.glPushMatrix();
        float var7 = 1.0F + var6 / 5.0F;
        GL11.glTranslatef((float) (par2 + 8), (float) (par3 + 12), 0.0F);
        GL11.glScalef(1.0F / var7, (var7 + 1.0F) / 2.0F, 1.0F);
        GL11.glTranslatef((float) (-(par2 + 8)), (float) (-(par3 + 12)), 0.0F);
      }

      itemRenderer.renderItemIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3);

      if (var6 > 0.0F) {
        GL11.glPopMatrix();
      }

      itemRenderer.renderItemOverlayIntoGUI(
          this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3);
    }
  }
 public void func_1197_a(int i, int j, int k) {
   if (i == field_1761_c && j == field_1760_d && k == field_1759_e) {
     return;
   } else {
     func_1195_b();
     field_1761_c = i;
     field_1760_d = j;
     field_1759_e = k;
     field_1746_q = i + field_1758_f / 2;
     field_1743_r = j + field_1757_g / 2;
     field_1741_s = k + field_1756_h / 2;
     field_1752_l = i & 0x3ff;
     field_1751_m = j;
     field_1750_n = k & 0x3ff;
     field_1755_i = i - field_1752_l;
     field_1754_j = j - field_1751_m;
     field_1753_k = k - field_1750_n;
     float f = 6F;
     field_1736_v =
         AxisAlignedBB.func_1168_a(
             (float) i - f,
             (float) j - f,
             (float) k - f,
             (float) (i + field_1758_f) + f,
             (float) (j + field_1757_g) + f,
             (float) (k + field_1756_h) + f);
     GL11.glNewList(field_1744_C + 2, 4864);
     RenderItem.func_142_a(
         AxisAlignedBB.func_1161_b(
             (float) field_1752_l - f,
             (float) field_1751_m - f,
             (float) field_1750_n - f,
             (float) (field_1752_l + field_1758_f) + f,
             (float) (field_1751_m + field_1757_g) + f,
             (float) (field_1750_n + field_1756_h) + f));
     GL11.glEndList();
     func_1194_f();
     return;
   }
 }
Esempio n. 4
0
 /** The main rendering method. You will need to implement this to draw 3D objects. */
 private void draw(RenderItem renderItem) {
   Matrix4f t = new Matrix4f(mergedDisplayMatrix);
   t.mul(renderItem.getT());
   drawTrianglesSeparately(renderItem.getShape(), t);
   // drawDotty(renderItem.getShape(), t);
 }
Esempio n. 5
0
  public boolean updateRenderer(long var1) {
    if (this.worldObj == null) {
      return true;
    } else {
      this.needsUpdate = false;

      if (!this.isUpdating) {
        if (this.needsBoxUpdate) {
          float var3 = 0.0F;
          GL11.glNewList(this.glRenderList + 2, GL11.GL_COMPILE);
          RenderItem.renderAABB(
              AxisAlignedBB.getAABBPool()
                  .getAABB(
                      (double) ((float) this.posXClip - var3),
                      (double) ((float) this.posYClip - var3),
                      (double) ((float) this.posZClip - var3),
                      (double) ((float) (this.posXClip + 16) + var3),
                      (double) ((float) (this.posYClip + 16) + var3),
                      (double) ((float) (this.posZClip + 16) + var3)));
          GL11.glEndList();
          this.needsBoxUpdate = false;
        }

        if (Reflector.LightCache.exists()) {
          Object var25 = Reflector.getFieldValue(Reflector.LightCache_cache);
          Reflector.callVoid(var25, Reflector.LightCache_clear, new Object[0]);
          Reflector.callVoid(Reflector.BlockCoord_resetPool, new Object[0]);
        }

        Chunk.isLit = false;
      }

      int var26 = this.posX;
      int var4 = this.posY;
      int var5 = this.posZ;
      int var6 = this.posX + 16;
      int var7 = this.posY + 16;
      int var8 = this.posZ + 16;
      ChunkCache var9 = null;
      RenderBlocks var10 = null;
      HashSet var11 = null;

      if (!this.isUpdating) {
        for (int var12 = 0; var12 < 2; ++var12) {
          this.tempSkipRenderPass[var12] = true;
        }

        byte var27 = 1;
        var9 =
            new ChunkCache(
                this.worldObj,
                var26 - var27,
                var4 - var27,
                var5 - var27,
                var6 + var27,
                var7 + var27,
                var8 + var27,
                var27);
        var10 = new RenderBlocks(var9);
        var11 = new HashSet();
        var11.addAll(this.tileEntityRenderers);
        this.tileEntityRenderers.clear();
      }

      if (this.isUpdating || !var9.extendedLevelsInChunkCache()) {
        this.bytesDrawn = 0;
        Tessellator var28 = Tessellator.instance;
        boolean var13 = Reflector.ForgeHooksClient.exists();

        for (int var14 = 0; var14 < 2; ++var14) {
          boolean var15 = false;
          boolean var16 = false;
          boolean var17 = false;

          for (int var18 = var4; var18 < var7; ++var18) {
            if (this.isUpdating) {
              this.isUpdating = false;
              var9 = this.updateState.chunkcache;
              var10 = this.updateState.renderblocks;
              var11 = this.updateState.setOldEntityRenders;
              var14 = this.updateState.renderPass;
              var18 = this.updateState.y;
              var15 = this.updateState.flag;
              var16 = this.updateState.hasRenderedBlocks;
              var17 = this.updateState.hasGlList;

              if (var17) {
                GL11.glNewList(
                    this.glWorkLists[this.activeSet][var14][this.activeListIndex[var14]],
                    GL11.GL_COMPILE);
                var28.setRenderingChunk(true);
                var28.startDrawingQuads();
                var28.setTranslation(
                    (double) (-globalChunkOffsetX), 0.0D, (double) (-globalChunkOffsetZ));
              }
            } else if (var17
                && var1 != 0L
                && System.nanoTime() - var1 > 0L
                && this.activeListIndex[var14] < 15) {
              var28.draw();
              GL11.glEndList();
              var28.setRenderingChunk(false);
              var28.setTranslation(0.0D, 0.0D, 0.0D);
              ++this.activeListIndex[var14];
              this.updateState.chunkcache = var9;
              this.updateState.renderblocks = var10;
              this.updateState.setOldEntityRenders = var11;
              this.updateState.renderPass = var14;
              this.updateState.y = var18;
              this.updateState.flag = var15;
              this.updateState.hasRenderedBlocks = var16;
              this.updateState.hasGlList = var17;
              this.isUpdating = true;
              return false;
            }

            for (int var19 = var5; var19 < var8; ++var19) {
              for (int var20 = var26; var20 < var6; ++var20) {
                int var21 = var9.getBlockId(var20, var18, var19);

                if (var21 > 0) {
                  if (!var17) {
                    var17 = true;
                    GL11.glNewList(
                        this.glWorkLists[this.activeSet][var14][this.activeListIndex[var14]],
                        GL11.GL_COMPILE);
                    var28.setRenderingChunk(true);
                    var28.startDrawingQuads();
                    var28.setTranslation(
                        (double) (-globalChunkOffsetX), 0.0D, (double) (-globalChunkOffsetZ));
                  }

                  Block var22 = Block.blocksList[var21];

                  if (var14 == 0 && var22.hasTileEntity()) {
                    TileEntity var23 = var9.getBlockTileEntity(var20, var18, var19);

                    if (TileEntityRenderer.instance.hasSpecialRenderer(var23)) {
                      this.tileEntityRenderers.add(var23);
                    }
                  }

                  int var30 = var22.getRenderBlockPass();
                  boolean var24 = true;

                  if (var30 != var14) {
                    var15 = true;
                    var24 = false;
                  }

                  if (var13) {
                    var24 =
                        Reflector.callBoolean(
                            var22,
                            Reflector.ForgeBlock_canRenderInPass,
                            new Object[] {Integer.valueOf(var14)});
                  }

                  if (var24) {
                    var16 |= var10.renderBlockByRenderType(var22, var20, var18, var19);
                  }
                }
              }
            }
          }

          if (var17) {
            this.bytesDrawn += var28.draw();
            GL11.glEndList();
            var28.setRenderingChunk(false);
            var28.setTranslation(0.0D, 0.0D, 0.0D);
          } else {
            var16 = false;
          }

          if (var16) {
            this.tempSkipRenderPass[var14] = false;
          }

          if (!var15) {
            break;
          }
        }
      }

      HashSet var29 = new HashSet();
      var29.addAll(this.tileEntityRenderers);
      var29.removeAll(var11);
      this.tileEntities.addAll(var29);
      var11.removeAll(this.tileEntityRenderers);
      this.tileEntities.removeAll(var11);
      this.isChunkLit = Chunk.isLit;
      this.isInitialized = true;
      ++chunksUpdated;
      this.isVisible = true;
      this.isVisibleFromPosition = false;
      this.skipRenderPass[0] = this.tempSkipRenderPass[0];
      this.skipRenderPass[1] = this.tempSkipRenderPass[1];
      this.isUpdating = false;
      return true;
    }
  }
Esempio n. 6
0
  protected void genAchievementBackground(int par1, int par2, float par3) {
    int i = MathHelper.floor_double(field_27116_m + (guiMapX - field_27116_m) * (double) par3);
    int j = MathHelper.floor_double(field_27115_n + (guiMapY - field_27115_n) * (double) par3);

    if (i < guiMapTop) {
      i = guiMapTop;
    }

    if (j < guiMapLeft) {
      j = guiMapLeft;
    }

    if (i >= guiMapBottom) {
      i = guiMapBottom - 1;
    }

    if (j >= guiMapRight) {
      j = guiMapRight - 1;
    }

    int k = mc.renderEngine.getTexture("/terrain.png");
    int l = mc.renderEngine.getTexture("/achievement/bg.png");
    int i1 = (width - achievementsPaneWidth) / 2;
    int j1 = (height - achievementsPaneHeight) / 2;
    int k1 = i1 + 16;
    int l1 = j1 + 17;
    zLevel = 0.0F;
    GL11.glDepthFunc(GL11.GL_GEQUAL);
    GL11.glPushMatrix();
    GL11.glTranslatef(0.0F, 0.0F, -200F);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    GL11.glEnable(GL11.GL_COLOR_MATERIAL);
    mc.renderEngine.bindTexture(k);
    int i2 = i + 288 >> 4;
    int j2 = j + 288 >> 4;
    int k2 = (i + 288) % 16;
    int l2 = (j + 288) % 16;
    Random random = new Random();

    for (int i3 = 0; i3 * 16 - l2 < 155; i3++) {
      float f = 0.6F - ((float) (j2 + i3) / 25F) * 0.3F;
      GL11.glColor4f(f, f, f, 1.0F);

      for (int k3 = 0; k3 * 16 - k2 < 224; k3++) {
        random.setSeed(1234 + i2 + k3);
        random.nextInt();
        int j4 = random.nextInt(1 + j2 + i3) + (j2 + i3) / 2;
        int l4 = Block.sand.blockIndexInTexture;

        if (j4 > 37 || j2 + i3 == 35) {
          l4 = Block.bedrock.blockIndexInTexture;
        } else if (j4 == 22) {
          if (random.nextInt(2) == 0) {
            l4 = Block.oreDiamond.blockIndexInTexture;
          } else {
            l4 = Block.oreRedstone.blockIndexInTexture;
          }
        } else if (j4 == 10) {
          l4 = Block.oreIron.blockIndexInTexture;
        } else if (j4 == 8) {
          l4 = Block.oreCoal.blockIndexInTexture;
        } else if (j4 > 4) {
          l4 = Block.stone.blockIndexInTexture;
        } else if (j4 > 0) {
          l4 = Block.dirt.blockIndexInTexture;
        }

        drawTexturedModalRect(
            (k1 + k3 * 16) - k2, (l1 + i3 * 16) - l2, l4 % 16 << 4, (l4 >> 4) << 4, 16, 16);
      }
    }

    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glDepthFunc(GL11.GL_LEQUAL);
    GL11.glDisable(GL11.GL_TEXTURE_2D);

    for (int j3 = 0; j3 < AchievementList.achievementList.size(); j3++) {
      Achievement achievement1 = (Achievement) AchievementList.achievementList.get(j3);

      if (achievement1.parentAchievement == null) {
        continue;
      }

      int l3 = (achievement1.displayColumn * 24 - i) + 11 + k1;
      int k4 = (achievement1.displayRow * 24 - j) + 11 + l1;
      int i5 = (achievement1.parentAchievement.displayColumn * 24 - i) + 11 + k1;
      int l5 = (achievement1.parentAchievement.displayRow * 24 - j) + 11 + l1;
      boolean flag = statFileWriter.hasAchievementUnlocked(achievement1);
      boolean flag1 = statFileWriter.canUnlockAchievement(achievement1);
      char c =
          Math.sin(((double) (System.currentTimeMillis() % 600L) / 600D) * Math.PI * 2D)
                  <= 0.59999999999999998D
              ? '\202'
              : '\377';
      int i8 = 0xff000000;

      if (flag) {
        i8 = 0xff707070;
      } else if (flag1) {
        i8 = 65280 + (c << 24);
      }

      drawHorizontalLine(l3, i5, k4, i8);
      drawVerticalLine(i5, k4, l5, i8);
    }

    Achievement achievement = null;
    RenderItem renderitem = new RenderItem();
    RenderHelper.enableGUIStandardItemLighting();
    GL11.glDisable(GL11.GL_LIGHTING);
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    GL11.glEnable(GL11.GL_COLOR_MATERIAL);

    for (int i4 = 0; i4 < AchievementList.achievementList.size(); i4++) {
      Achievement achievement2 = (Achievement) AchievementList.achievementList.get(i4);
      int j5 = achievement2.displayColumn * 24 - i;
      int i6 = achievement2.displayRow * 24 - j;

      if (j5 < -24 || i6 < -24 || j5 > 224 || i6 > 155) {
        continue;
      }

      if (statFileWriter.hasAchievementUnlocked(achievement2)) {
        float f1 = 1.0F;
        GL11.glColor4f(f1, f1, f1, 1.0F);
      } else if (statFileWriter.canUnlockAchievement(achievement2)) {
        float f2 =
            Math.sin(((double) (System.currentTimeMillis() % 600L) / 600D) * Math.PI * 2D)
                    >= 0.59999999999999998D
                ? 0.8F
                : 0.6F;
        GL11.glColor4f(f2, f2, f2, 1.0F);
      } else {
        float f3 = 0.3F;
        GL11.glColor4f(f3, f3, f3, 1.0F);
      }

      mc.renderEngine.bindTexture(l);
      int k6 = k1 + j5;
      int j7 = l1 + i6;

      if (achievement2.getSpecial()) {
        drawTexturedModalRect(k6 - 2, j7 - 2, 26, 202, 26, 26);
      } else {
        drawTexturedModalRect(k6 - 2, j7 - 2, 0, 202, 26, 26);
      }

      if (!statFileWriter.canUnlockAchievement(achievement2)) {
        float f4 = 0.1F;
        GL11.glColor4f(f4, f4, f4, 1.0F);
        renderitem.field_27004_a = false;
      }

      GL11.glEnable(GL11.GL_LIGHTING);
      GL11.glEnable(GL11.GL_CULL_FACE);
      renderitem.renderItemIntoGUI(
          mc.fontRenderer, mc.renderEngine, achievement2.theItemStack, k6 + 3, j7 + 3);
      GL11.glDisable(GL11.GL_LIGHTING);

      if (!statFileWriter.canUnlockAchievement(achievement2)) {
        renderitem.field_27004_a = true;
      }

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

      if (par1 >= k1
          && par2 >= l1
          && par1 < k1 + 224
          && par2 < l1 + 155
          && par1 >= k6
          && par1 <= k6 + 22
          && par2 >= j7
          && par2 <= j7 + 22) {
        achievement = achievement2;
      }
    }

    GL11.glDisable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    mc.renderEngine.bindTexture(l);
    drawTexturedModalRect(i1, j1, 0, 0, achievementsPaneWidth, achievementsPaneHeight);
    GL11.glPopMatrix();
    zLevel = 0.0F;
    GL11.glDepthFunc(GL11.GL_LEQUAL);
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    super.drawScreen(par1, par2, par3);

    if (achievement != null) {
      String s = StatCollector.translateToLocal(achievement.getName());
      String s1 = achievement.getDescription();
      int k5 = par1 + 12;
      int j6 = par2 - 4;

      if (statFileWriter.canUnlockAchievement(achievement)) {
        int l6 = Math.max(fontRenderer.getStringWidth(s), 120);
        int k7 = fontRenderer.splitStringWidth(s1, l6);

        if (statFileWriter.hasAchievementUnlocked(achievement)) {
          k7 += 12;
        }

        drawGradientRect(k5 - 3, j6 - 3, k5 + l6 + 3, j6 + k7 + 3 + 12, 0xc0000000, 0xc0000000);
        fontRenderer.drawSplitString(s1, k5, j6 + 12, l6, 0xffa0a0a0);

        if (statFileWriter.hasAchievementUnlocked(achievement)) {
          fontRenderer.drawStringWithShadow(
              StatCollector.translateToLocal("achievement.taken"), k5, j6 + k7 + 4, 0xff9090ff);
        }
      } else {
        int i7 = Math.max(fontRenderer.getStringWidth(s), 120);
        String s2 =
            StatCollector.translateToLocalFormatted(
                "achievement.requires",
                new Object[] {
                  StatCollector.translateToLocal(achievement.parentAchievement.getName())
                });
        int l7 = fontRenderer.splitStringWidth(s2, i7);
        drawGradientRect(k5 - 3, j6 - 3, k5 + i7 + 3, j6 + l7 + 12 + 3, 0xc0000000, 0xc0000000);
        fontRenderer.drawSplitString(s2, k5, j6 + 12, i7, 0xff705050);
      }

      fontRenderer.drawStringWithShadow(
          s,
          k5,
          j6,
          statFileWriter.canUnlockAchievement(achievement)
              ? achievement.getSpecial() ? -128 : -1
              : achievement.getSpecial() ? 0xff808040 : 0xff808080);
    }

    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_LIGHTING);
    RenderHelper.disableStandardItemLighting();
  }