Guest User

ContainerPlayer.java

a guest
Feb 1st, 2015
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. public class ContainerPlayer extends Container
  4. {
  5. /** The crafting matrix inventory. */
  6. public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2);
  7. public IInventory craftResult = new InventoryCraftResult();
  8.  
  9. /** Determines if inventory manipulation should be handled. */
  10. public boolean isLocalWorld = false;
  11. private final EntityPlayer thePlayer;
  12.  
  13. public ContainerPlayer(InventoryPlayer par1InventoryPlayer, boolean par2, EntityPlayer par3EntityPlayer)
  14. {
  15. this.isLocalWorld = par2;
  16. this.thePlayer = par3EntityPlayer;
  17. this.addSlotToContainer(new SlotCrafting(par1InventoryPlayer.player, this.craftMatrix, this.craftResult, 0, 144-33, 36-21));
  18. int var4;
  19. int var5;
  20.  
  21. for (var4 = 0; var4 < 2; ++var4)
  22. {
  23. for (var5 = 0; var5 < 2; ++var5)
  24. {
  25. this.addSlotToContainer(new Slot(this.craftMatrix, var5 + var4 * 2, 88 + var5 * 18-25, 26 + var4 * 18-20));
  26. }
  27. }
  28.  
  29. for (var4 = 0; var4 < 4; ++var4)
  30. {
  31. this.addSlotToContainer(new SlotArmor(this, par1InventoryPlayer, par1InventoryPlayer.getSizeInventory() - 1 - var4, 8-40, 8 + var4 * 18-20, var4));
  32. }
  33.  
  34. for (var4 = 0; var4 < 3; ++var4)
  35. {
  36. for (var5 = 0; var5 < 9; ++var5)
  37. {
  38. this.addSlotToContainer(new Slot(par1InventoryPlayer, var5 + (var4 + 1) * 9, 8 + var5 * 18-40, 84 + var4 * 18-20));
  39. }
  40. }
  41.  
  42. for (var4 = 0; var4 < 9; ++var4)
  43. {
  44. this.addSlotToContainer(new Slot(par1InventoryPlayer, var4, 8 + var4 * 18-40, 140));
  45. }
  46.  
  47. this.onCraftMatrixChanged(this.craftMatrix);
  48. }
  49.  
  50. /**
  51. * Callback for when the crafting matrix is changed.
  52. */
  53. public void onCraftMatrixChanged(IInventory par1IInventory)
  54. {
  55. this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix, this.thePlayer.worldObj));
  56. }
  57.  
  58. /**
  59. * Callback for when the crafting gui is closed.
  60. */
  61. public void onCraftGuiClosed(EntityPlayer par1EntityPlayer)
  62. {
  63. super.onCraftGuiClosed(par1EntityPlayer);
  64.  
  65. for (int var2 = 0; var2 < 4; ++var2)
  66. {
  67. ItemStack var3 = this.craftMatrix.getStackInSlotOnClosing(var2);
  68.  
  69. if (var3 != null)
  70. {
  71. par1EntityPlayer.dropPlayerItem(var3);
  72. }
  73. }
  74.  
  75. this.craftResult.setInventorySlotContents(0, (ItemStack)null);
  76. }
  77.  
  78. public boolean canInteractWith(EntityPlayer par1EntityPlayer)
  79. {
  80. return true;
  81. }
  82.  
  83. /**
  84. * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
  85. */
  86. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
  87. {
  88. ItemStack var3 = null;
  89. Slot var4 = (Slot)this.inventorySlots.get(par2);
  90.  
  91. if (var4 != null && var4.getHasStack())
  92. {
  93. ItemStack var5 = var4.getStack();
  94. var3 = var5.copy();
  95.  
  96. if (par2 == 0)
  97. {
  98. if (!this.mergeItemStack(var5, 9, 45, true))
  99. {
  100. return null;
  101. }
  102.  
  103. var4.onSlotChange(var5, var3);
  104. }
  105. else if (par2 >= 1 && par2 < 5)
  106. {
  107. if (!this.mergeItemStack(var5, 9, 45, false))
  108. {
  109. return null;
  110. }
  111. }
  112. else if (par2 >= 5 && par2 < 9)
  113. {
  114. if (!this.mergeItemStack(var5, 9, 45, false))
  115. {
  116. return null;
  117. }
  118. }
  119. else if (var3.getItem() instanceof ItemArmor && !((Slot)this.inventorySlots.get(5 + ((ItemArmor)var3.getItem()).armorType)).getHasStack())
  120. {
  121. int var6 = 5 + ((ItemArmor)var3.getItem()).armorType;
  122.  
  123. if (!this.mergeItemStack(var5, var6, var6 + 1, false))
  124. {
  125. return null;
  126. }
  127. }
  128.  
  129. if (var5.stackSize == 0)
  130. {
  131. var4.putStack((ItemStack)null);
  132. }
  133. else
  134. {
  135. var4.onSlotChanged();
  136. }
  137.  
  138. if (var5.stackSize == var3.stackSize)
  139. {
  140. return null;
  141. }
  142.  
  143. var4.onPickupFromSlot(par1EntityPlayer, var5);
  144. }
  145.  
  146. return var3;
  147. }
  148.  
  149. public boolean func_94530_a(ItemStack par1ItemStack, Slot par2Slot)
  150. {
  151. return par2Slot.inventory != this.craftResult && super.func_94530_a(par1ItemStack, par2Slot);
  152. }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment