コード例 #1
0
ファイル: ItemBuffer.java プロジェクト: TunkShif/NeoTech
 @Override
 public ItemStack removeResource(int maxAmount, EnumFacing outputFace, boolean simulate) {
   for (int i = 0; i < inventory.getSizeInventory(); i++) {
     if (inventory.getStackInSlot(i) != null && inventory.getStackInSlot(i).stackSize > 0) {
       justReceived[outputFace.ordinal()] = false;
       ItemStack resource = inventory.getStackInSlot(i).copy();
       if (resource.stackSize > maxAmount) {
         resource.stackSize = maxAmount;
         if (!simulate) {
           inventory.getStackInSlot(i).stackSize -= maxAmount;
         }
         return resource;
       }
       if (!simulate) inventory.setStackInSlot(null, i);
       return resource;
     }
   }
   return null;
 }
コード例 #2
0
ファイル: ItemBuffer.java プロジェクト: TunkShif/NeoTech
 @Override
 public ItemStack acceptResource(
     int maxAmount, EnumFacing inputFace, ItemStack resource, boolean simulate) {
   if (resource != null && resource.stackSize > 0) {
     for (int i = 0; i < inventory.getSizeInventory(); i++) {
       if (inventory.getStackInSlot(i) == null) {
         ItemStack mover = resource.copy();
         if (mover.stackSize >= maxAmount) {
           mover.stackSize = maxAmount;
           if (!simulate) resource.stackSize -= mover.stackSize;
         } else if (mover.stackSize < maxAmount && !simulate) {
           resource.stackSize -= resource.stackSize;
         }
         if (!simulate) inventory.setStackInSlot(mover, i);
         return resource;
       }
     }
   }
   return null;
 }
コード例 #3
0
ファイル: ItemBuffer.java プロジェクト: TunkShif/NeoTech
 public void removeDeadStacks() {
   for (int i = 0; i < inventory.getSizeInventory(); i++) {
     if (inventory.getStackInSlot(i) != null && inventory.getStackInSlot(i).stackSize <= 0)
       inventory.setStackInSlot(null, i);
   }
 }