Advertisement
Guest User

ContainerFoundry

a guest
Mar 26th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.03 KB | None | 0 0
  1. package org.tetawex.inventory;
  2.  
  3.  
  4. import org.tetawex.handler.FoundryRecipes;
  5. import org.tetawex.handler.RefineryRecipes;
  6. import org.tetawex.tileEntity.TileEntityFoundry;
  7. import org.tetawex.tileEntity.TileEntityRefinery;
  8.  
  9. import net.minecraft.entity.player.EntityPlayer;
  10. import net.minecraft.entity.player.InventoryPlayer;
  11. import net.minecraft.inventory.Container;
  12. import net.minecraft.inventory.ICrafting;
  13. import net.minecraft.inventory.Slot;
  14. import net.minecraft.inventory.SlotFurnace;
  15. import net.minecraft.item.ItemStack;
  16. import cpw.mods.fml.relauncher.Side;
  17. import cpw.mods.fml.relauncher.SideOnly;
  18.  
  19. public class ContainerFoundry extends Container {
  20.    
  21.     private TileEntityFoundry tileFurnace;
  22.     private int lastCookTime;
  23.     private int lastEnergyLevel;
  24.    
  25.     public ContainerFoundry(InventoryPlayer player, TileEntityFoundry tileEntityFurnace)
  26.     {
  27.         tileFurnace = tileEntityFurnace;
  28.         this.addSlotToContainer(new Slot(tileEntityFurnace, 0, 26, 21));
  29.         this.addSlotToContainer(new Slot(tileEntityFurnace, 1, 134, 61));
  30.         this.addSlotToContainer(new SlotFurnace(player.player, tileEntityFurnace, 2, 86, 21));     
  31.         int i;
  32.        
  33.         for(i = 0; i < 3; ++i)
  34.         {
  35.             for(int j = 0; j < 9; ++j)
  36.             {
  37.                 addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  38.             }
  39.         }
  40.        
  41.         for(i = 0; i < 9; ++i){
  42.             addSlotToContainer(new Slot(player, i , 8 + i * 18 , 142));
  43.         }
  44.     }
  45.     public void addCraftingToCrafters(ICrafting craft){
  46.         super.addCraftingToCrafters(craft);
  47.         craft.sendProgressBarUpdate(this, 0, tileFurnace.refineTime);
  48.         //craft.sendProgressBarUpdate(this, 1, tileFurnace.furnaceBurnTime);
  49.         //craft.sendProgressBarUpdate(this, 2, tileFurnace.currentBurnTime);
  50.         craft.sendProgressBarUpdate(this, 1, tileFurnace.energyLevel);
  51.     }
  52.    
  53.     public void detectAndSendChanges(){
  54.         super.detectAndSendChanges();
  55.         for(int i = 0; i < this.crafters.size(); ++i){
  56.             ICrafting craft = (ICrafting) this.crafters.get(i);
  57.            
  58.             if(this.lastCookTime != this.tileFurnace.refineTime){
  59.                 craft.sendProgressBarUpdate(this, 0, this.tileFurnace.refineTime);
  60.             }
  61.             if(lastEnergyLevel != tileFurnace.refineTime)
  62.             {
  63.                 craft.sendProgressBarUpdate(this, 1, tileFurnace.energyLevel);
  64.             }
  65.         }
  66.        
  67.         this.lastCookTime = this.tileFurnace.refineTime;
  68.         lastEnergyLevel = tileFurnace.energyLevel;
  69.     }
  70.    
  71.     @SideOnly(Side.CLIENT)
  72.     public void updateProgressBar(int par1, int par2){
  73.         if(par1 == 0){
  74.             tileFurnace.refineTime = par2;
  75.         }
  76.         if(par1 == 1){
  77.             tileFurnace.energyLevel = par2;
  78.         }
  79.     }
  80.    
  81.     @Override
  82.     public boolean canInteractWith(EntityPlayer player)
  83.     {
  84.         return tileFurnace.isUseableByPlayer(player);
  85.     }
  86.    
  87.     public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber){
  88.         ItemStack itemstack = null;
  89.         Slot slot = (Slot) this.inventorySlots.get(slotNumber);
  90.        
  91.         if(slot != null && slot.getHasStack()){
  92.             ItemStack itemstack1 = slot.getStack();
  93.             itemstack = itemstack1.copy();
  94.            
  95.             if(slotNumber == 2){
  96.                 if(!this.mergeItemStack(itemstack1, 3, 39, true)){
  97.                     return null;
  98.                 }
  99.                 slot.onSlotChange(itemstack1, itemstack);
  100.             }else if(slotNumber != 1 && slotNumber != 0){
  101.                 if(FoundryRecipes.smelting().getSmeltingResult(itemstack1,tileFurnace.discNumber) != null){
  102.                     if(!this.mergeItemStack(itemstack1, 0, 1, false)){
  103.                         return null;
  104.                     }
  105.                 }else if(TileEntityFoundry.isItemFuel(itemstack1)){
  106.                     if(!this.mergeItemStack(itemstack1, 1, 2, false)){
  107.                         return null;
  108.                     }
  109.                 }else if(slotNumber >=3 && slotNumber < 30){
  110.                     if(!this.mergeItemStack(itemstack1, 30, 39, false)){
  111.                         return null;
  112.                     }
  113.                 }else if(slotNumber >= 30 && slotNumber < 39 && !this.mergeItemStack(itemstack1, 3, 30, false)){
  114.                     return null;
  115.                 }
  116.             }else if(!this.mergeItemStack(itemstack1, 3, 39, false)){
  117.                 return null;
  118.             }
  119.             if(itemstack1.stackSize == 0){
  120.                 slot.putStack((ItemStack)null);
  121.             }else{
  122.                 slot.onSlotChanged();
  123.             }
  124.             if(itemstack1.stackSize == itemstack.stackSize){
  125.                 return null;
  126.             }
  127.             slot.onPickupFromSlot(player, itemstack1);
  128.         }
  129.         return itemstack;
  130.     }
  131.  
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement