Guest User

Untitled

a guest
Aug 8th, 2014
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. package com.jack.jackmod.container;
  2.  
  3. import com.jack.jackmod.tileentity.TileEntityHydrogenSeparator;
  4. import cpw.mods.fml.relauncher.Side;
  5. import cpw.mods.fml.relauncher.SideOnly;
  6. import net.minecraft.entity.player.EntityPlayer;
  7. import net.minecraft.entity.player.InventoryPlayer;
  8. import net.minecraft.inventory.Container;
  9. import net.minecraft.inventory.ICrafting;
  10. import net.minecraft.inventory.Slot;
  11. import net.minecraft.inventory.SlotFurnace;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.item.crafting.FurnaceRecipes;
  14. import net.minecraft.tileentity.TileEntity;
  15. import net.minecraft.tileentity.TileEntityFurnace;
  16.  
  17. public class ContainerHydrogenSeparator extends Container{
  18.  
  19. private TileEntityHydrogenSeparator hydrogenSeparator;
  20.  
  21. public int lastBurnTime;
  22. public int lastCurrentItemBurnTime;
  23. public int lastCookTime;
  24.  
  25. public ContainerHydrogenSeparator(InventoryPlayer inventory, TileEntityHydrogenSeparator tileentity) {
  26. this.hydrogenSeparator = tileentity;
  27.  
  28. this.addSlotToContainer(new Slot(tileentity, 0, 56, 35));
  29. this.addSlotToContainer(new Slot(tileentity, 1, 8, 62));
  30. this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity, 2, 116, 35));
  31.  
  32. for(int i = 0; i < 3; i++) {
  33. for(int j = 0; j < 9; j++) {
  34. this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  35. }
  36. }
  37.  
  38. for(int i = 0; i < 9; i++) {
  39. this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142));
  40. }
  41. }
  42.  
  43. public void addCraftingToCrafters (ICrafting icrafting) {
  44. super.addCraftingToCrafters(icrafting);
  45. icrafting.sendProgressBarUpdate(this, 0, this.hydrogenSeparator.cookTime);
  46. icrafting.sendProgressBarUpdate(this, 1, this.hydrogenSeparator.burnTime);
  47. icrafting.sendProgressBarUpdate(this, 2, this.hydrogenSeparator.currentItemBurnTime);
  48. }
  49.  
  50. public void detectAndSendChanges() {
  51. super.detectAndSendChanges();
  52. for(int i = 0; i < this.crafters.size(); i++) {
  53. ICrafting icrafting = (ICrafting) this.crafters.get(i);
  54.  
  55. if(this.lastCookTime != this.hydrogenSeparator.cookTime) {
  56. icrafting.sendProgressBarUpdate(this, 0, this.hydrogenSeparator.cookTime);
  57. }
  58.  
  59. if(this.lastBurnTime != this.hydrogenSeparator.burnTime) {
  60. icrafting.sendProgressBarUpdate(this, 1, this.hydrogenSeparator.burnTime);
  61. }
  62.  
  63. if(this.lastCurrentItemBurnTime != this.hydrogenSeparator.currentItemBurnTime) {
  64. icrafting.sendProgressBarUpdate(this, 2, this.hydrogenSeparator.currentItemBurnTime);
  65. }
  66. }
  67.  
  68. this.lastCookTime = this.hydrogenSeparator.cookTime;
  69. this.lastBurnTime = this.hydrogenSeparator.burnTime;
  70. this.lastCurrentItemBurnTime = this.hydrogenSeparator.currentItemBurnTime;
  71. }
  72.  
  73. @SideOnly(Side.CLIENT)
  74. public void updateProgressBar(int par1, int par2)
  75. {
  76. if (par1 == 0) {
  77. this.hydrogenSeparator.cookTime = par2;
  78. }
  79.  
  80. if (par1 == 1) {
  81. this.hydrogenSeparator.burnTime = par2;
  82. }
  83.  
  84. if (par1 == 2) {
  85. this.hydrogenSeparator.currentItemBurnTime = par2;
  86. }
  87. }
  88.  
  89. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
  90. {
  91. ItemStack itemstack = null;
  92. Slot slot = (Slot)this.inventorySlots.get(par2);
  93.  
  94. if (slot != null && slot.getHasStack()) {
  95. ItemStack itemstack1 = slot.getStack();
  96. itemstack = itemstack1.copy();
  97.  
  98. if (par2 == 2) {
  99. if (!this.mergeItemStack(itemstack1, 3, 39, true)) {
  100. return null;
  101. }
  102.  
  103. slot.onSlotChange(itemstack1, itemstack);
  104. }
  105. else if (par2 != 1 && par2 != 0) {
  106. if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null) {
  107. if (!this.mergeItemStack(itemstack1, 0, 1, false))
  108. {
  109. return null;
  110. }
  111. }else if (TileEntityHydrogenSeparator.isItemFuel(itemstack1)) {
  112. if (!this.mergeItemStack(itemstack1, 1, 2, false))
  113. {
  114. return null;
  115. }
  116. }else if (par2 >= 3 && par2 < 30){
  117. if (!this.mergeItemStack(itemstack1, 30, 39, false)){
  118. return null;
  119. }
  120. }else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false)) {
  121. return null;
  122. }
  123. } else if (!this.mergeItemStack(itemstack1, 3, 39, false)) {
  124. return null;
  125. }
  126.  
  127. if (itemstack1.stackSize == 0) {
  128. slot.putStack((ItemStack)null);
  129. } else {
  130. slot.onSlotChanged();
  131. }
  132.  
  133. if (itemstack1.stackSize == itemstack.stackSize) {
  134. return null;
  135. }
  136.  
  137. slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
  138. }
  139.  
  140. return itemstack;
  141. }
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152. public boolean canInteractWith(EntityPlayer var1) {
  153. return true;
  154. }
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment