Guest User

ContainerSauceMaker.java

a guest
Dec 5th, 2014
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.50 KB | None | 0 0
  1. package com.morefood.mod.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. import net.minecraft.item.crafting.FurnaceRecipes;
  11.  
  12. import com.morefood.mod.crafting.SauceMakerRecipes;
  13. import com.morefood.mod.slot.SlotSauceMaker;
  14. import com.morefood.mod.tileentity.TileEntitySauceMaker;
  15.  
  16. import cpw.mods.fml.relauncher.Side;
  17. import cpw.mods.fml.relauncher.SideOnly;
  18.  
  19. public class ContainerSauceMaker extends Container {
  20.  
  21. private TileEntitySauceMaker saucemaker;
  22.  
  23. public int lastCookTime;
  24. public int lastBurnTime;
  25. public int lastCurrentItemBurnTime;
  26.  
  27. public ContainerSauceMaker(InventoryPlayer invPlayer, TileEntitySauceMaker teSauceMaker) {
  28.  
  29. saucemaker = teSauceMaker;
  30.  
  31. this.addSlotToContainer(new Slot(teSauceMaker, 0, 49, 51));
  32. this.addSlotToContainer(new Slot(teSauceMaker, 1, 21, 9));
  33. this.addSlotToContainer(new Slot(teSauceMaker, 2, 21, 51));
  34. this.addSlotToContainer(new SlotSauceMaker(invPlayer.player, teSauceMaker, 3, 120, 29));
  35.  
  36. //Inventory
  37. for(int i = 0; i < 3; i++) {
  38. for(int j = 0; j < 9; j++) {
  39. this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  40. }
  41. }
  42.  
  43.  
  44. //ActionBar
  45. for(int i = 0; i < 9; i++) {
  46. this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
  47. }
  48.  
  49. }
  50.  
  51. public void addCraftingToCrafters (ICrafting icrafting) {
  52. super.addCraftingToCrafters(icrafting);
  53. icrafting.sendProgressBarUpdate(this, 0, this.saucemaker.cookTime);
  54. icrafting.sendProgressBarUpdate(this, 1, this.saucemaker.cookTime);
  55. icrafting.sendProgressBarUpdate(this, 2, this.saucemaker.burnTime);
  56. icrafting.sendProgressBarUpdate(this, 3, this.saucemaker.currentItemBurnTime);
  57. }
  58.  
  59. public void detectAndSendChanges() {
  60. super.detectAndSendChanges();
  61. for(int i = 0; i < this.crafters.size(); i++) {
  62. ICrafting icrafting = (ICrafting) this.crafters.get(i);
  63.  
  64. if(this.lastCookTime != this.saucemaker.cookTime) {
  65. icrafting.sendProgressBarUpdate(this, 0, this.saucemaker.cookTime);
  66. }
  67.  
  68. if(this.lastCookTime != this.saucemaker.cookTime) {
  69. icrafting.sendProgressBarUpdate(this, 1, this.saucemaker.cookTime);
  70. }
  71.  
  72. if(this.lastBurnTime != this.saucemaker.burnTime) {
  73. icrafting.sendProgressBarUpdate(this, 2, this.saucemaker.burnTime);
  74. }
  75.  
  76. if(this.lastCurrentItemBurnTime != this.saucemaker.currentItemBurnTime) {
  77. icrafting.sendProgressBarUpdate(this, 3, this.saucemaker.currentItemBurnTime);
  78. }
  79. }
  80.  
  81. this.lastCookTime = this.saucemaker.cookTime;
  82. this.lastBurnTime = this.saucemaker.burnTime;
  83. this.lastCurrentItemBurnTime = this.saucemaker.currentItemBurnTime;
  84. }
  85.  
  86. @SideOnly(Side.CLIENT)
  87. public void updateProgressBar(int par1, int par2)
  88. {
  89. if (par1 == 0) {
  90. this.saucemaker.cookTime = par2;
  91. }
  92.  
  93. if (par1 == 1) {
  94. this.saucemaker.cookTime = par2;
  95. }
  96.  
  97. if (par1 == 2) {
  98. this.saucemaker.burnTime = par2;
  99. }
  100.  
  101. if(par1 == 3) {
  102. this.saucemaker.currentItemBurnTime = par2;
  103. }
  104. }
  105.  
  106. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
  107. {
  108. ItemStack itemstack = null;
  109. Slot slot = (Slot)this.inventorySlots.get(par2);
  110.  
  111. if (slot != null && slot.getHasStack())
  112. {
  113. ItemStack itemstack1 = slot.getStack();
  114. itemstack = itemstack1.copy();
  115.  
  116. if (par2 == 2)
  117. {
  118. if (!this.mergeItemStack(itemstack1, 3, 39, true)) {
  119. return null;
  120. }
  121.  
  122. slot.onSlotChange(itemstack1, itemstack);
  123. }
  124. else if (par2 != 1 && par2 != 0) {
  125. if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null) {
  126. if (!this.mergeItemStack(itemstack1, 0, 1, false))
  127. {
  128. return null;
  129. }
  130. }
  131. else if (TileEntitySauceMaker.isItemFuel(itemstack1)) {
  132. if (!this.mergeItemStack(itemstack1, 1, 2, false))
  133. {
  134. return null;
  135. }
  136. }
  137. else if (par2 >= 3 && par2 < 30) {
  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. return null;
  150. }
  151.  
  152. if (itemstack1.stackSize == 0)
  153. {
  154. slot.putStack((ItemStack)null);
  155. }
  156. else
  157. {
  158. slot.onSlotChanged();
  159. }
  160.  
  161. if (itemstack1.stackSize == itemstack.stackSize)
  162. {
  163. return null;
  164. }
  165.  
  166. slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
  167. }
  168.  
  169. return itemstack;
  170. }
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185. @Override
  186. public boolean canInteractWith(EntityPlayer p_75145_1_) {
  187. return true;
  188. }
  189.  
  190. }
Advertisement
Add Comment
Please, Sign In to add comment