Advertisement
Neoublie

Smelter Container

Jun 11th, 2013
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. package neo.projectshadow.inventory;
  2.  
  3. import neo.projectshadow.tileentity.TileBlacksmithSmelter;
  4. import net.minecraft.entity.player.EntityPlayer;
  5. import net.minecraft.entity.player.InventoryPlayer;
  6. import net.minecraft.inventory.Container;
  7. import net.minecraft.inventory.Slot;
  8. import net.minecraft.item.ItemStack;
  9. import net.minecraft.tileentity.TileEntityFurnace;
  10.  
  11. public class ContainerBlacksmithSmelter extends Container {
  12.  
  13.     private TileBlacksmithSmelter tileEntity;
  14.    
  15.     public ContainerBlacksmithSmelter(InventoryPlayer playerinv, TileBlacksmithSmelter tileEntity)
  16.     {
  17.         this.tileEntity = tileEntity;
  18.        
  19.         //Input
  20.             addSlotToContainer(new Slot(tileEntity, TileBlacksmithSmelter.INPUT_INVENTORY_INDEX, 56, 17));
  21.        
  22.         //Fuel
  23.             addSlotToContainer(new Slot(tileEntity, TileBlacksmithSmelter.FUEL_INVENTORY_INDEX, 56, 53));
  24.        
  25.         //Output
  26.             addSlotToContainer(new Slot(tileEntity, TileBlacksmithSmelter.OUTPUT_INVENTORY_INDEX, 116, 35));
  27.        
  28.         //Player Inv
  29.             bindPlayerInventory(playerinv);
  30.        
  31.     }
  32.  
  33.     // Populates GUI inventory section to Players current hot bar and inventory
  34.     private void bindPlayerInventory(InventoryPlayer playerInventory)
  35.     {
  36.         // Add the player's inventory slots to the container
  37.         for (int inventoryRowIndex = 0; inventoryRowIndex < 3; ++inventoryRowIndex) {
  38.             for (int inventoryColumnIndex = 0; inventoryColumnIndex < 9; ++inventoryColumnIndex) {
  39.                 this.addSlotToContainer(new Slot(playerInventory, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 8 + inventoryColumnIndex * 18, 94 + inventoryRowIndex * 18));
  40.             }
  41.         }
  42.  
  43.         // Add the player's action bar slots to the container
  44.         for (int actionBarSlotIndex = 0; actionBarSlotIndex < 9; ++actionBarSlotIndex) {
  45.             this.addSlotToContainer(new Slot(playerInventory, actionBarSlotIndex, 8 + actionBarSlotIndex * 18, 152));
  46.         }
  47.  
  48.     }
  49.    
  50.     @Override
  51.     public boolean canInteractWith(EntityPlayer player) {
  52.         return tileEntity.isUseableByPlayer(player);
  53.     }
  54.    
  55.     @Override
  56.     public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex)
  57.     {
  58.         ItemStack itemStack = null;
  59.         Slot slot = (Slot)inventorySlots.get(slotIndex);
  60.        
  61.         if(slot != null && slot.getHasStack())
  62.         {
  63.             ItemStack slotItemStack = slot.getStack();
  64.             itemStack = slotItemStack.copy();
  65.            
  66.             // Merges the item into the player inventory
  67.             if(slotIndex < TileBlacksmithSmelter.INVENTORY_SIZE)
  68.             {
  69.                 if(!this.mergeItemStack(slotItemStack, TileBlacksmithSmelter.INVENTORY_SIZE, inventorySlots.size(), false)){
  70.                     return null;
  71.                 }
  72.             }
  73.             else {
  74.                 if (TileEntityFurnace.isItemFuel(slotItemStack)) {
  75.                     if(!this.mergeItemStack(slotItemStack, TileBlacksmithSmelter.FUEL_INVENTORY_INDEX, TileBlacksmithSmelter.OUTPUT_INVENTORY_INDEX, false)) {
  76.                         return null;
  77.                     }
  78.                 }
  79.                 else if (!this.mergeItemStack(slotItemStack, TileBlacksmithSmelter.INPUT_INVENTORY_INDEX, TileBlacksmithSmelter.OUTPUT_INVENTORY_INDEX, false)){
  80.                     return null;
  81.                 }
  82.             }
  83.             if (slotItemStack.stackSize == 0) {
  84.                 slot.putStack((ItemStack) null);
  85.             } else {
  86.                 slot.onSlotChanged();
  87.             }
  88.         }
  89.         return itemStack;
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement