Guest User

ContainerGrinder.java

a guest
Aug 19th, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.50 KB | None | 0 0
  1. package com.xenocorpse.wulfenite.inventory;
  2.  
  3. import com.xenocorpse.wulfenite.init.GrinderRecipes;
  4. import com.xenocorpse.wulfenite.tileentities.TileEntityGrinder;
  5.  
  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.SlotFurnaceFuel;
  12. import net.minecraft.inventory.SlotFurnaceOutput;
  13. import net.minecraft.item.ItemStack;
  14. import net.minecraft.util.BlockPos;
  15. import net.minecraft.world.World;
  16. import net.minecraftforge.fml.relauncher.Side;
  17. import net.minecraftforge.fml.relauncher.SideOnly;
  18.  
  19. public class ContainerGrinder extends Container {
  20.    
  21.     private TileEntityGrinder tileFurnace;
  22.     private int lastCookTime;
  23.     private int lastBurnTime;
  24.     private int lastItemBurnTime;
  25.    
  26.     public ContainerGrinder(InventoryPlayer player, TileEntityGrinder tileEntityFurnace){
  27.         this.tileFurnace = tileEntityFurnace;
  28.         this.addSlotToContainer(new Slot(tileEntityFurnace, 0, 56, 17));
  29.         this.addSlotToContainer(new SlotFurnaceFuel(tileEntityFurnace, 1, 56, 53));
  30.         this.addSlotToContainer(new SlotFurnaceOutput(player.player, tileEntityFurnace, 2, 116, 35));
  31.         int i;
  32.        
  33.         for(i = 0; i < 3; ++i){
  34.             for(int j = 0; j < 9; ++j){
  35.                 this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
  36.             }
  37.         }
  38.        
  39.         for(i = 0; i < 9; ++i){
  40.             this.addSlotToContainer(new Slot(player, i , 8 + i * 18 , 142));
  41.         }
  42.     }
  43.  
  44.     public ContainerGrinder(InventoryPlayer playerInventory, World world,
  45.             BlockPos position) {
  46.  
  47.     }
  48.  
  49.     public void addCraftingToCrafters(ICrafting craft){
  50.         super.addCraftingToCrafters(craft);
  51.         craft.sendProgressBarUpdate(this, 0, this.tileFurnace.grinderGrindTime);
  52.         craft.sendProgressBarUpdate(this, 1, this.tileFurnace.grinderBurnTime);
  53.         craft.sendProgressBarUpdate(this, 2, this.tileFurnace.currentBurnTime);
  54.     }
  55.    
  56.     public void detectAndSendChanges(){
  57.         super.detectAndSendChanges();
  58.         for(int i = 0; i < this.crafters.size(); ++i){
  59.             ICrafting craft = (ICrafting) this.crafters.get(i);
  60.            
  61.             if(this.lastCookTime != this.tileFurnace.grinderGrindTime){
  62.                 craft.sendProgressBarUpdate(this, 0, this.tileFurnace.grinderGrindTime);
  63.             }
  64.            
  65.             if(this.lastBurnTime != this.tileFurnace.grinderBurnTime){
  66.                 craft.sendProgressBarUpdate(this, 1, this.tileFurnace.grinderBurnTime);
  67.             }
  68.            
  69.             if(this.lastItemBurnTime != this.tileFurnace.currentBurnTime){
  70.                 craft.sendProgressBarUpdate(this, 2, this.tileFurnace.currentBurnTime);
  71.             }
  72.         }
  73.        
  74.         this.lastBurnTime = this.tileFurnace.grinderBurnTime;
  75.         this.lastCookTime = this.tileFurnace.grinderGrindTime;
  76.         this.lastItemBurnTime = this.tileFurnace.currentBurnTime;
  77.     }
  78.    
  79.     @SideOnly(Side.CLIENT)
  80.     public void updateProgressBar(int par1, int par2){
  81.         if(par1 == 0){
  82.             this.tileFurnace.grinderGrindTime = par2;
  83.         }
  84.        
  85.         if(par1 == 1){
  86.             this.tileFurnace.grinderBurnTime = par2;
  87.         }
  88.        
  89.         if(par1 == 2){
  90.             this.tileFurnace.currentBurnTime = par2;
  91.         }
  92.     }
  93.    
  94.     @Override
  95.     public boolean canInteractWith(EntityPlayer player) {
  96.         return this.tileFurnace.isUseableByPlayer(player);
  97.     }
  98.    
  99.     public ItemStack transferStackInSlot(EntityPlayer player, int par2){
  100.         ItemStack itemstack = null;
  101.         Slot slot = (Slot) this.inventorySlots.get(par2);
  102.        
  103.         if(slot != null && slot.getHasStack()){
  104.             ItemStack itemstack1 = slot.getStack();
  105.             itemstack = itemstack1.copy();
  106.            
  107.             if(par2 == 2){
  108.                 if(!this.mergeItemStack(itemstack1, 3, 39, true)){
  109.                     return null;
  110.                 }
  111.                 slot.onSlotChange(itemstack1, itemstack);
  112.             }else if(par2 != 1 && par2 != 0){
  113.                 if(GrinderRecipes.smelting().getSmeltingResult(itemstack1) != null){
  114.                     if(!this.mergeItemStack(itemstack1, 0, 1, false)){
  115.                         return null;
  116.                     }
  117.                 }else if(TileEntityGrinder.isItemFuel(itemstack1)){
  118.                     if(!this.mergeItemStack(itemstack1, 1, 2, false)){
  119.                         return null;
  120.                     }
  121.                 }else if(par2 >=3 && par2 < 30){
  122.                     if(!this.mergeItemStack(itemstack1, 30, 39, false)){
  123.                         return null;
  124.                     }
  125.                 }else if(par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false)){
  126.                     return null;
  127.                 }
  128.             }else if(!this.mergeItemStack(itemstack1, 3, 39, false)){
  129.                 return null;
  130.             }
  131.             if(itemstack1.stackSize == 0){
  132.                 slot.putStack((ItemStack)null);
  133.             }else{
  134.                 slot.onSlotChanged();
  135.             }
  136.             if(itemstack1.stackSize == itemstack.stackSize){
  137.                 return null;
  138.             }
  139.             slot.onPickupFromSlot(player, itemstack1);
  140.         }
  141.         return itemstack;
  142.     }
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment