Ledger Nano X - The secure hardware wallet
SHARE
TWEET

VoidExtractorContainer

a guest Sep 13th, 2014 14 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top