Advertisement
Guest User

Untitled

a guest
Mar 4th, 2016
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.89 KB | None | 0 0
  1. package net.theviolentsquirrels.questsystem.inventory;
  2.  
  3. import net.minecraft.entity.player.EntityPlayer;
  4. import net.minecraft.entity.player.InventoryPlayer;
  5. import net.minecraft.inventory.ICrafting;
  6. import net.minecraft.inventory.IInventory;
  7. import net.minecraft.inventory.Slot;
  8. import net.minecraft.item.ItemStack;
  9. import net.minecraftforge.fml.relauncher.Side;
  10. import net.minecraftforge.fml.relauncher.SideOnly;
  11. import net.theviolentsquirrels.questsystem.tileentity.TileEntityBlockSieve;
  12.  
  13. public class ContainerSieve extends ModContainer {
  14.     private final IInventory            tileEntityBlockSieve;
  15.     private int                         siftTime;
  16.     private int                         siftTotalTime;
  17.  
  18.     public ContainerSieve(InventoryPlayer playerInventory, IInventory tileEntityBlockSieve) {
  19.         this.tileEntityBlockSieve = tileEntityBlockSieve;
  20.         this.addSlotToContainer(new Slot(this.tileEntityBlockSieve, 0, 56, 35));
  21.         this.addSlotToContainer(new SlotSiftingResult(this.tileEntityBlockSieve, 1, 116, 35));
  22.         this.addPlayerSlots(playerInventory);
  23.     }
  24.  
  25.     @Override
  26.     public void                         onCraftGuiOpened(ICrafting listener) {
  27.         super.onCraftGuiOpened(listener);
  28.         listener.sendAllWindowProperties(this, this.tileEntityBlockSieve);
  29.     }
  30.  
  31.     @Override
  32.     public void                         detectAndSendChanges() {
  33.         super.detectAndSendChanges();
  34.         for (int i = 0; i < this.crafters.size(); ++i) {
  35.             ICrafting                   icrafting = this.crafters.get(i);
  36.  
  37.             if (this.siftTime != this.tileEntityBlockSieve.getField(0))
  38.                 icrafting.sendProgressBarUpdate(this, 0, this.tileEntityBlockSieve.getField(0));
  39.             if (this.siftTotalTime != this.tileEntityBlockSieve.getField(1))
  40.                 icrafting.sendProgressBarUpdate(this, 1, this.tileEntityBlockSieve.getField(1));
  41.         }
  42.         this.siftTime = this.tileEntityBlockSieve.getField(0);
  43.         this.siftTotalTime = this.tileEntityBlockSieve.getField(1);
  44.     }
  45.  
  46.     @SideOnly(Side.CLIENT)
  47.     public void                         updateProgressBar(int id, int data) {
  48.         this.tileEntityBlockSieve.setField(id, data);
  49.     }
  50.  
  51.     @Override
  52.     public boolean                      canInteractWith(EntityPlayer playerIn) {
  53.         return (this.tileEntityBlockSieve.isUseableByPlayer(playerIn));
  54.     }
  55.  
  56.     @Override
  57.     public ItemStack                    transferStackInSlot(EntityPlayer playerIn, int index) {
  58.         ItemStack                       itemStack = null;
  59.         Slot                            slot = this.inventorySlots.get(index);
  60.  
  61.         if (slot != null && slot.getHasStack()) {
  62.             ItemStack                   itemStack1 = slot.getStack();
  63.  
  64.             itemStack = itemStack1.copy();
  65.             if (index < 2) {
  66.                 if (!this.mergeItemStack(itemStack1, 2, 29, index == 1))
  67.                     return (null);
  68.                 slot.onSlotChange(itemStack1, itemStack);
  69.             } else {
  70.                 if (TileEntityBlockSieve.isSiftable(itemStack1)) {
  71.                     if (!this.mergeItemStack(itemStack1, 0, 1, false))
  72.                         return (null);
  73.                 } else if (index >= 2 && index <= 28) {
  74.                     if (!this.mergeItemStack(itemStack1, 29, 37, false))
  75.                         return (null);
  76.                 } else if (index >= 29 && index <= 37) {
  77.                     if (!this.mergeItemStack(itemStack1, 2, 28, false))
  78.                         return (null);
  79.                 }
  80.             }
  81.             if (itemStack1.stackSize == 0)
  82.                 slot.putStack(null);
  83.             else
  84.                 slot.onSlotChanged();
  85.             if (itemStack1.stackSize == itemStack.stackSize)
  86.                 return (null);
  87.             slot.onPickupFromSlot(playerIn, itemStack1);
  88.         }
  89.         return (itemStack);
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement