コード例 #1
0
  /** Adds the item stack to the inventory, returns false if it is impossible. */
  public boolean addItemStackToInventory(ItemStack par1ItemStack) {
    if (par1ItemStack == null
        || !Vars.isActor) // prevents everyone from picking up things except for actors
    {
      return false;
    } else {
      try {
        int var2;

        if (par1ItemStack.isItemDamaged()) {
          var2 = this.getFirstEmptyStack();

          if (var2 >= 0) {
            this.mainInventory[var2] = ItemStack.copyItemStack(par1ItemStack);
            this.mainInventory[var2].animationsToGo = 5;
            par1ItemStack.stackSize = 0;
            return true;
          } else if (this.player.capabilities.isCreativeMode) {
            par1ItemStack.stackSize = 0;
            return true;
          } else {
            return false;
          }
        } else {
          do {
            var2 = par1ItemStack.stackSize;
            par1ItemStack.stackSize = this.storePartialItemStack(par1ItemStack);
          } while (par1ItemStack.stackSize > 0 && par1ItemStack.stackSize < var2);

          if (par1ItemStack.stackSize == var2 && this.player.capabilities.isCreativeMode) {
            par1ItemStack.stackSize = 0;
            return true;
          } else {
            return par1ItemStack.stackSize < var2;
          }
        }
      } catch (Throwable var5) {
        CrashReport var3 = CrashReport.makeCrashReport(var5, "Adding item to inventory");
        CrashReportCategory var4 = var3.makeCategory("Item being added");
        var4.addCrashSection("Item ID", Integer.valueOf(par1ItemStack.itemID));
        var4.addCrashSection("Item data", Integer.valueOf(par1ItemStack.getItemDamage()));
        var4.addCrashSectionCallable("Item name", new CallableItemName(this, par1ItemStack));
        throw new ReportedException(var3);
      }
    }
  }
コード例 #2
0
 public boolean addItemStackToInventory(ItemStack itemstack) {
   if (!itemstack.isItemDamaged()) {
     int i;
     do {
       i = itemstack.stackSize;
       itemstack.stackSize = func_21083_d(itemstack);
     } while (itemstack.stackSize > 0 && itemstack.stackSize < i);
     return itemstack.stackSize < i;
   }
   int j = getFirstEmptyStack();
   if (j >= 0) {
     mainInventory[j] = ItemStack.func_20117_a(itemstack);
     mainInventory[j].animationsToGo = 5;
     itemstack.stackSize = 0;
     return true;
   } else {
     return false;
   }
 }