Ejemplo n.º 1
0
  protected boolean func_75135_a(
      ItemStack p_75135_1_, int p_75135_2_, int p_75135_3_, boolean p_75135_4_) {
    boolean var5 = false;
    int var6 = p_75135_2_;
    if (p_75135_4_) {
      var6 = p_75135_3_ - 1;
    }

    Slot var7;
    ItemStack var8;
    if (p_75135_1_.func_77985_e()) {
      while (p_75135_1_.field_77994_a > 0
          && (!p_75135_4_ && var6 < p_75135_3_ || p_75135_4_ && var6 >= p_75135_2_)) {
        var7 = (Slot) this.field_75151_b.get(var6);
        var8 = var7.func_75211_c();
        if (var8 != null
            && var8.field_77993_c == p_75135_1_.field_77993_c
            && (!p_75135_1_.func_77981_g() || p_75135_1_.func_77960_j() == var8.func_77960_j())
            && ItemStack.func_77970_a(p_75135_1_, var8)) {
          int var9 = var8.field_77994_a + p_75135_1_.field_77994_a;
          if (var9 <= p_75135_1_.func_77976_d()) {
            p_75135_1_.field_77994_a = 0;
            var8.field_77994_a = var9;
            var7.func_75218_e();
            var5 = true;
          } else if (var8.field_77994_a < p_75135_1_.func_77976_d()) {
            p_75135_1_.field_77994_a -= p_75135_1_.func_77976_d() - var8.field_77994_a;
            var8.field_77994_a = p_75135_1_.func_77976_d();
            var7.func_75218_e();
            var5 = true;
          }
        }

        if (p_75135_4_) {
          --var6;
        } else {
          ++var6;
        }
      }
    }

    if (p_75135_1_.field_77994_a > 0) {
      if (p_75135_4_) {
        var6 = p_75135_3_ - 1;
      } else {
        var6 = p_75135_2_;
      }

      while (!p_75135_4_ && var6 < p_75135_3_ || p_75135_4_ && var6 >= p_75135_2_) {
        var7 = (Slot) this.field_75151_b.get(var6);
        var8 = var7.func_75211_c();
        if (var8 == null) {
          var7.func_75215_d(p_75135_1_.func_77946_l());
          var7.func_75218_e();
          p_75135_1_.field_77994_a = 0;
          var5 = true;
          break;
        }

        if (p_75135_4_) {
          --var6;
        } else {
          ++var6;
        }
      }
    }

    return var5;
  }