Guest User

Untitled

a guest
Nov 10th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. package com.mrpablo2000.machinecraft.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.ICrafting;
  7. import net.minecraft.inventory.Slot;
  8. import net.minecraft.inventory.SlotFurnace;
  9. import net.minecraft.item.ItemStack;
  10.  
  11. import com.mrpablo2000.machinecraft.handler.OreRecipes;
  12. import com.mrpablo2000.machinecraft.tileentity.TileEntityGenerator;
  13. import com.mrpablo2000.machinecraft.tileentity.TileEntityMacerator;
  14.  
  15. import cpw.mods.fml.relauncher.Side;
  16. import cpw.mods.fml.relauncher.SideOnly;
  17.  
  18. public class ContainerGenerator extends Container
  19. {
  20. private TileEntityGenerator macerator;
  21. private int lastCookTime;
  22. private int lastBurnTime;
  23.  
  24. public ContainerGenerator(InventoryPlayer par1InventoryPlayer, TileEntityGenerator macerator)
  25. {
  26. this.macerator = macerator;
  27. this.addSlotToContainer(new Slot(macerator, 0, 56, 35));
  28. this.addSlotToContainer(new Slot(macerator, 1, 8, 56));
  29.  
  30. int i;
  31.  
  32. for (i = 0; i < 3; ++i)
  33. {
  34. for (int j = 0; j < 9; ++j)
  35. {
  36. this.addSlotToContainer(new Slot(par1InventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  37. }
  38. }
  39.  
  40. for (i = 0; i < 9; ++i)
  41. {
  42. this.addSlotToContainer(new Slot(par1InventoryPlayer, i, 8 + i * 18, 142));
  43. }
  44. }
  45.  
  46. public void addCraftingToCrafters(ICrafting par1ICrafting)
  47. {
  48. super.addCraftingToCrafters(par1ICrafting);
  49. par1ICrafting.sendProgressBarUpdate(this, 0, this.macerator.cookTime);
  50. par1ICrafting.sendProgressBarUpdate(this, 1, this.macerator.power);
  51. }
  52.  
  53. /**
  54. * Looks for changes made in the container, sends them to every listener.
  55. */
  56. public void detectAndSendChanges()
  57. {
  58. super.detectAndSendChanges();
  59.  
  60. for (int i = 0; i < this.crafters.size(); ++i)
  61. {
  62. ICrafting icrafting = (ICrafting)this.crafters.get(i);
  63.  
  64. if (this.lastCookTime != this.macerator.cookTime)
  65. {
  66. icrafting.sendProgressBarUpdate(this, 0, this.macerator.cookTime);
  67. }
  68.  
  69. if (this.lastBurnTime != this.macerator.power)
  70. {
  71. icrafting.sendProgressBarUpdate(this, 1, this.macerator.power);
  72. }
  73. }
  74.  
  75. this.lastCookTime = this.macerator.cookTime;
  76. this.lastBurnTime = this.macerator.power;
  77. }
  78.  
  79. @SideOnly(Side.CLIENT)
  80. public void updateProgressBar(int par1, int par2)
  81. {
  82. if (par1 == 0)
  83. {
  84. this.macerator.cookTime = par2;
  85. }
  86.  
  87. if (par1 == 1)
  88. {
  89. this.macerator.power = par2;
  90. }
  91. }
  92.  
  93. public boolean canInteractWith(EntityPlayer par1EntityPlayer)
  94. {
  95. return this.macerator.isUseableByPlayer(par1EntityPlayer);
  96. }
  97.  
  98. /**
  99. * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
  100. */
  101. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
  102. {
  103. ItemStack itemstack = null;
  104. Slot slot = (Slot)this.inventorySlots.get(par2);
  105.  
  106. if (slot != null && slot.getHasStack())
  107. {
  108. ItemStack itemstack1 = slot.getStack();
  109. itemstack = itemstack1.copy();
  110.  
  111. if (par2 == 2)
  112. {
  113. if (!this.mergeItemStack(itemstack1, 3, 39, true))
  114. {
  115. return null;
  116. }
  117.  
  118. slot.onSlotChange(itemstack1, itemstack);
  119. }
  120. else if (par2 != 1 && par2 != 0)
  121. {
  122. if (OreRecipes.ores().smelting().getSmeltingResult(itemstack1) != null)
  123. {
  124. if (!this.mergeItemStack(itemstack1, 0, 1, false))
  125. {
  126. return null;
  127. }
  128. }
  129. else if (TileEntityMacerator.isItemFuel(itemstack1))
  130. {
  131. if (!this.mergeItemStack(itemstack1, 1, 2, false))
  132. {
  133. return null;
  134. }
  135. }
  136. else if (par2 >= 3 && par2 < 30)
  137. {
  138. if (!this.mergeItemStack(itemstack1, 30, 39, false))
  139. {
  140. return null;
  141. }
  142. }
  143. else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
  144. {
  145. return null;
  146. }
  147. }
  148. else if (!this.mergeItemStack(itemstack1, 3, 39, false))
  149. {
  150. return null;
  151. }
  152.  
  153. if (itemstack1.stackSize == 0)
  154. {
  155. slot.putStack((ItemStack)null);
  156. }
  157. else
  158. {
  159. slot.onSlotChanged();
  160. }
  161.  
  162. if (itemstack1.stackSize == itemstack.stackSize)
  163. {
  164. return null;
  165. }
  166.  
  167. slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
  168. }
  169.  
  170. return itemstack;
  171. }
  172. }
Add Comment
Please, Sign In to add comment