コード例 #1
0
  /** Called when the player picks up an item from an inventory slot */
  public void onPickupFromSlot(ItemStack par1ItemStack) {
    ModLoader.takenFromCrafting(this.thePlayer, par1ItemStack, this.craftMatrix);
    //        ForgeHooks.onTakenFromCrafting(thePlayer, par1ItemStack, craftMatrix); TODO

    this.func_48434_c(par1ItemStack);

    for (int var2 = 0; var2 < this.craftMatrix.getSizeInventory(); ++var2) {
      ItemStack var3 = this.craftMatrix.getStackInSlot(var2);

      if (var3 != null) {
        this.craftMatrix.decrStackSize(var2, 1);

        if (var3.getItem().hasContainerItem()) {
          ItemStack var4 = new ItemStack(var3.getItem().getContainerItem());

          if (!var3.getItem().doesContainerItemLeaveCraftingGrid(var3)
              || !this.thePlayer.inventory.addItemStackToInventory(var4)) {
            if (this.craftMatrix.getStackInSlot(var2) == null) {
              this.craftMatrix.setInventorySlotContents(var2, var4);
            } else {
              this.thePlayer.dropPlayerItem(var4);
            }
          }
        }
      }
    }
  }