Advertisement
Guest User

VoidExtractorContainer

a guest
Sep 13th, 2014
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.99 KB | None | 0 0
  1. package net.prefixaut.voidmod.container;
  2.  
  3. import net.prefixaut.voidmod.VoidExtractorRecipeManager;
  4. import net.prefixaut.voidmod.VoidRecipeManager;
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.entity.player.InventoryPlayer;
  7. import net.minecraft.inventory.Container;
  8. import net.minecraft.inventory.ICrafting;
  9. import net.minecraft.inventory.Slot;
  10. import net.minecraft.item.ItemStack;
  11. import net.prefixaut.voidmod.tileentitys.VoidExtractorTileEntity;
  12. import cpw.mods.fml.relauncher.Side;
  13. import cpw.mods.fml.relauncher.SideOnly;
  14.  
  15. public class VoidExtractorContainer extends Container {
  16.  
  17.     private VoidExtractorTileEntity tile;
  18.    
  19.     public VoidExtractorContainer(InventoryPlayer player, VoidExtractorTileEntity tile) {
  20.         this.tile = tile;
  21.         this.addSlotToContainer(new Slot(tile, 0, 62, 15));
  22.         this.addSlotToContainer(new Slot(tile, 1, 62, 52));
  23. //      Player Inventory
  24.         for (int i=0; i < 3; ++i) {
  25.             for (int j=0; j < 9; ++j) {
  26.                 this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  27.             }
  28.         }
  29.         for (int i=0; i < 9; i++) {
  30.             this.addSlotToContainer(new Slot(player, i, 8 + i * 18, 142));
  31.         }
  32.     }
  33.    
  34.     @Override
  35.     public void addCraftingToCrafters(ICrafting craft) {
  36.         super.addCraftingToCrafters(craft);
  37.         craft.sendProgressBarUpdate(this, 0, this.tile.currentWorktime);
  38.         craft.sendProgressBarUpdate(this, 1, this.tile.energy);
  39.     }
  40.    
  41.     @Override
  42.     public void detectAndSendChanges() {
  43.         super.detectAndSendChanges();
  44.     }
  45.    
  46.     @Override
  47.     @SideOnly(Side.CLIENT)
  48.     public void updateProgressBar(int slot, int value) {
  49.         switch (slot) {
  50.             case 0: this.tile.currentWorktime = value;
  51.                     break;
  52.             case 1: this.tile.energy = value;
  53.                     break;
  54.         }
  55.     }
  56.    
  57.     @Override
  58.     public ItemStack transferStackInSlot(EntityPlayer player, int clickedSlot) {
  59.         ItemStack itm = null;
  60.         Slot slot = (Slot) this.inventorySlots.get(clickedSlot);
  61.         if (slot != null && slot.getHasStack()) {
  62.             ItemStack item = slot.getStack();
  63.             itm = item.copy();
  64.             if (clickedSlot == 0 || clickedSlot == 1) {
  65.                 if (!this.mergeItemStack(item, 2, 38, true)) return null;
  66.             } else {
  67.                 if (VoidRecipeManager.getVoidExtractorManager().isValidItem(item)) { // Valid Recipe Item
  68.                     if (!this.mergeItemStack(item, 0, 1, true)) return null;
  69.                 } else if (VoidRecipeManager.isValidEnergyItem(item)) { // Valid Energy Item
  70.                     if (!this.mergeItemStack(item, 1, 2, true)) return null;
  71.                 } else if (clickedSlot >= 2 && clickedSlot < 28) { // Top Inventory
  72.                     if (!this.mergeItemStack(item, 29, 38, false)) return null;
  73.                 } else if (clickedSlot >= 28) { // Hotbar Inventory
  74.                     if (!this.mergeItemStack(item, 2, 28, false)) return null;
  75.                 }
  76.             }
  77.             if (item.stackSize == 0) slot.putStack((ItemStack) null);
  78.             else slot.onSlotChanged();
  79.             if (item.stackSize == itm.stackSize) return null;
  80.             slot.onPickupFromSlot(player, item);
  81.         }
  82.         return itm;
  83.     }
  84.    
  85.     @Override
  86.     public boolean canInteractWith(EntityPlayer player) {
  87.         return tile.isUseableByPlayer(player);
  88.     }
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement