Guest User

Untitled

a guest
May 18th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. package com.looke81.biowarfare.container;
  2.  
  3. import net.minecraft.entity.player.EntityPlayer;
  4. import net.minecraft.entity.player.InventoryPlayer;
  5. import net.minecraft.inventory.Container;
  6. import net.minecraft.inventory.Slot;
  7. import net.minecraft.item.ItemStack;
  8.  
  9. public class BaseContainer extends Container {
  10.  
  11. protected int tileSlots = -1;
  12. protected int InventoryMin;
  13. protected int InventoryMax;
  14. protected int HotBarMax;
  15. protected boolean canSendToTile = true;
  16.  
  17. public String getNEILabel() { return ""; }
  18.  
  19. @Override
  20. public boolean canInteractWith(EntityPlayer player) {
  21. return true;
  22. }
  23.  
  24. public void setCanSendToTile(boolean bool) {
  25. canSendToTile = bool;
  26. }
  27.  
  28. @Override
  29. public Slot addSlotToContainer(Slot slot) {
  30. if(!(slot.inventory instanceof InventoryPlayer))
  31. tileSlots++;
  32. return super.addSlotToContainer(slot);
  33. }
  34.  
  35. protected void bindPlayerInventory(InventoryPlayer playerInventory, int pixelX, int pixelY)
  36. {
  37.  
  38. InventoryMin = InventoryMax = tileSlots + 1;
  39. for(int y = 0; y < 3; y++)
  40. for(int x = 0; x < 9; x++) {
  41. addSlotToContainer(new Slot(playerInventory, x + y * 9 + 9, pixelX + x * 18, pixelY + y * 18));
  42. InventoryMax++;
  43. }
  44.  
  45. for(int x = 0; x < 9; x++)
  46. addSlotToContainer(new Slot(playerInventory, x, 8 + x * 18, pixelY + 58));
  47. HotBarMax = InventoryMax + 9;
  48. }
  49.  
  50. @Override
  51. public ItemStack transferStackInSlot(EntityPlayer player, int slot) {
  52. ItemStack stack = null;
  53. Slot slotObject = (Slot)this.inventorySlots.get(slot);
  54.  
  55. if (slotObject != null && slotObject.getHasStack()) {
  56. ItemStack stackInSlot = slotObject.getStack();
  57. stack = stackInSlot.copy();
  58.  
  59. if (slot <= tileSlots) {
  60. if (!this.mergeItemStack(stackInSlot, InventoryMin, HotBarMax, true))
  61. return null;
  62. }
  63.  
  64. else if(canSendToTile && slot > tileSlots) {
  65. if(!this.mergeItemStack(stackInSlot, 0, tileSlots + 1, false))
  66. return null;
  67. }
  68.  
  69. else if(slot >= InventoryMin && slot <= InventoryMax - 1) {
  70. if(!this.mergeItemStack(stackInSlot, InventoryMax, HotBarMax, false))
  71. return null;
  72. }
  73.  
  74. else if(slot >= InventoryMax && slot <= HotBarMax - 1) {
  75. if(!this.mergeItemStack(stackInSlot, InventoryMin, InventoryMax, false))
  76. return null;
  77. }
  78. if (stackInSlot.stackSize == 0) {
  79. slotObject.putStack(null);
  80. } else {
  81. slotObject.onSlotChanged();
  82. }
  83. if (stackInSlot.stackSize == stack.stackSize) {
  84. return null;
  85. }
  86. slotObject.onPickupFromSlot(player, stackInSlot);
  87. }
  88. return stack;
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment