ModMCdl

ContainerPestle.java

Nov 2nd, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. package com.modmcdl.magitech.gui;
  2.  
  3. import com.modmcdl.magitech.recipe.PestleRecipe;
  4. import com.modmcdl.magitech.slot.SlotPestleOutput;
  5. import com.modmcdl.magitech.tileenitity.TileEntityPestle;
  6.  
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.entity.player.InventoryPlayer;
  9. import net.minecraft.inventory.Container;
  10. import net.minecraft.inventory.IContainerListener;
  11. import net.minecraft.inventory.Slot;
  12. import net.minecraft.item.ItemStack;
  13.  
  14. public class ContainerPestle extends Container{
  15.  
  16.     private final TileEntityPestle tileentity;
  17.    
  18.     ContainerPestle(InventoryPlayer player, TileEntityPestle tileentity) {
  19.         this.tileentity = tileentity;
  20.         this.addSlotToContainer(new Slot(tileentity, 0, 31, 24));
  21.         this.addSlotToContainer(new Slot(tileentity, 1, 66, 43));
  22.         this.addSlotToContainer(new SlotPestleOutput(player.player, tileentity, 3, 119, 30));
  23.        
  24.         for(int y = 0; y < 3; ++y) { //Player Inv
  25.             for(int x = 0; x < 9; ++x) {
  26.                 this.addSlotToContainer(new Slot(player, x + y * 9 + 9, 8 + x * 18, 84 + y * 18));
  27.             }
  28.         }
  29.        
  30.         for(int x = 0; x < 9; ++x) //Hotbar
  31.             this.addSlotToContainer(new Slot(player, x, 8 + x * 18, 142 ));
  32.        
  33.     }
  34.    
  35.     @Override
  36.     public boolean canInteractWith(EntityPlayer playerIn) {
  37.         return this.tileentity.isUsableByPlayer(playerIn);
  38.     }
  39.    
  40.     @Override
  41.     public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
  42.         ItemStack stack = ItemStack.EMPTY;
  43.         Slot slot = (Slot)this.inventorySlots.get(index);
  44.        
  45.         if(slot != null && slot.getHasStack()) {
  46.             ItemStack stack1 = slot.getStack();
  47.             stack = stack1.copy();
  48.            
  49.             if(index == 3) {
  50.                 if(!this.mergeItemStack(stack1, 4, 40, true))
  51.                     return ItemStack.EMPTY;
  52.                 slot.onSlotChange(stack1, stack);
  53.             }
  54.             else if(index != 2 && index != 1 && index != 0 ) {
  55.                 Slot slot1 = (Slot)this.inventorySlots.get(index + 1);
  56.                
  57.                 if(!PestleRecipe.instance().getPestleResult(stack1, slot1.getStack()).isEmpty())
  58.                     if(!this.mergeItemStack(stack1, 0, 2, false))
  59.                         return ItemStack.EMPTY;
  60.                     else if(index >= 4 && index < 31)
  61.                         if(!this.mergeItemStack(stack1, 31, 40, false))
  62.                             return ItemStack.EMPTY;
  63.                         else if(index > 31 && index < 40 && !this.mergeItemStack(stack1, 4, 31, false))
  64.                             return ItemStack.EMPTY;
  65.                 }
  66.                 else if(!this.mergeItemStack(stack1, 4, 40, false))
  67.                         return ItemStack.EMPTY;
  68.             if(stack1.isEmpty())
  69.                 slot.putStack(ItemStack.EMPTY);
  70.             else
  71.                 slot.onSlotChanged();
  72.             if(stack1.getCount() == stack.getCount())
  73.                 return ItemStack.EMPTY;
  74.             slot.onTake(playerIn, stack1);
  75.         }
  76.         return stack;
  77.        
  78.     }
  79.    
  80. }
Add Comment
Please, Sign In to add comment