Advertisement
Guest User

Container

a guest
Aug 20th, 2015
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.64 KB | None | 0 0
  1. package com.vladan899.container;
  2.  
  3. import com.vladan899.customTemplates.CustomUpgradeSlot;
  4. import com.vladan899.main.Main;
  5. import com.vladan899.tileentity.TileEntitySmasher;
  6.  
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.entity.player.InventoryPlayer;
  9. import net.minecraft.inventory.Container;
  10. import net.minecraft.inventory.ICrafting;
  11. import net.minecraft.inventory.Slot;
  12. import net.minecraft.inventory.SlotFurnaceFuel;
  13. import net.minecraft.inventory.SlotFurnaceOutput;
  14. import net.minecraft.item.ItemStack;
  15. import net.minecraft.item.crafting.FurnaceRecipes;
  16. import net.minecraft.tileentity.TileEntityFurnace;
  17. import net.minecraft.util.ResourceLocation;
  18.  
  19. public class ContainerOreSmasher extends Container
  20. {
  21.     public static final ResourceLocation Bground = new ResourceLocation(Main.modID + ":" + "textures/gui/SmasherGUI.png");
  22.     public TileEntitySmasher tileEntity;
  23.    
  24.    
  25.     private int lastBurnTime;
  26.     private int lastCurrentItemBurnTime;
  27.     private int lastCookTime;
  28.    
  29.     public ContainerOreSmasher(InventoryPlayer playerInventory, TileEntitySmasher SmasherInventory)
  30.     {
  31.        
  32.         addSlotToContainer(new Slot(SmasherInventory, 0, 60, 12));
  33.         addSlotToContainer(new SlotFurnaceFuel(SmasherInventory, 1, 60, 48));
  34.         addSlotToContainer(new SlotFurnaceOutput(playerInventory.player, SmasherInventory, 2, 106, 30));
  35.        
  36.        
  37.         //Add Upgrade Slot 2 rows , 1 slot
  38.         /*
  39.         for (int i = 0; i < 2; i++)
  40.         {
  41.             for(int j = 0; j < 1; j++)
  42.             {
  43.                 addSlotToContainer(new CustomUpgradeSlot(SmasherInventory, i+j * 1,8 + j * 18, 6+i*18));
  44.             }
  45.         }
  46.         */
  47.        
  48.        
  49.         //Player Inventory
  50.         for (int i = 0; i < 3; i++)
  51.         {
  52.             for (int j = 0; j < 9; j++)
  53.             {
  54.                 addSlotToContainer(new Slot(playerInventory, j+i*9+9,
  55.                 8+j*18, 84+i*18));
  56.             }
  57.         }
  58.         //Player hotbar
  59.         for (int i = 0; i < 9; ++i)
  60.         {
  61.             this.addSlotToContainer(new Slot(playerInventory, i, 8 + i * 18, 142));
  62.         }
  63.     }
  64.  
  65.    
  66.     public void addCraftingToCrafters(ICrafting listener)
  67.     {
  68.         super.addCraftingToCrafters(listener);
  69.         listener.sendProgressBarUpdate(this, 0, tileEntity.cookTime);
  70.         listener.sendProgressBarUpdate(this, 1, tileEntity.burnTime);
  71.         listener.sendProgressBarUpdate(this, 2, tileEntity.currentItemBurnTime);
  72.     }
  73.    
  74.     @Override
  75.     public boolean canInteractWith(EntityPlayer playerIn)
  76.     {
  77.         return true;
  78.     }
  79.  
  80.     public void detectAndSendChanges()
  81.     {
  82.         super.detectAndSendChanges();
  83.        
  84.        
  85.           for (int i = 0; i < this.crafters.size(); ++i)
  86.          
  87.         {
  88.             ICrafting icrafting = (ICrafting)this.crafters.get(i);
  89.  
  90.             if (this.lastCookTime != tileEntity.cookTime)
  91.             {
  92.                 icrafting.sendProgressBarUpdate(this, 0, tileEntity.cookTime);
  93.             }
  94.  
  95.            
  96.             if (this.lastBurnTime != tileEntity.burnTime)
  97.             {
  98.                 icrafting.sendProgressBarUpdate(this, 1, tileEntity.burnTime);
  99.             }
  100.            
  101.             if (this.lastCurrentItemBurnTime != tileEntity.currentItemBurnTime)
  102.             {
  103.                 icrafting.sendProgressBarUpdate(this, 2, tileEntity.currentItemBurnTime);
  104.             }
  105.  
  106.        
  107.            
  108.         }
  109.          
  110.         this.lastCookTime = this.tileEntity.cookTime;
  111.         this.lastBurnTime = this.tileEntity.burnTime;
  112.         this.lastCurrentItemBurnTime = this.tileEntity.currentItemBurnTime;
  113.        
  114.  
  115.     }
  116.    
  117.  
  118.    
  119.     public void updateProgressBar(int id, int data)
  120.     {
  121.         this.tileEntity.setField(id, data);
  122.     }
  123.    
  124.     public ItemStack transferStackInSlot(EntityPlayer playerIn, int index)
  125.     {
  126.         ItemStack itemstack = null;
  127.         Slot slot = (Slot)this.inventorySlots.get(index);
  128.  
  129.         if (slot != null && slot.getHasStack())
  130.         {
  131.             ItemStack itemstack1 = slot.getStack();
  132.             itemstack = itemstack1.copy();
  133.  
  134.             if (index == 2)
  135.             {
  136.                 if (!this.mergeItemStack(itemstack1, 3, 39, true))
  137.                 {
  138.                     return null;
  139.                 }
  140.  
  141.                     slot.onSlotChange(itemstack1, itemstack);
  142.             }
  143.             else if (index != 1 && index != 0)
  144.             {
  145.                     if (FurnaceRecipes.instance().getSmeltingResult(itemstack1) != null)
  146.                     {
  147.                         if (!this.mergeItemStack(itemstack1, 0, 1, false))
  148.                         {
  149.                             return null;
  150.                         }
  151.             }
  152.             else if (TileEntityFurnace.isItemFuel(itemstack1))
  153.             {
  154.                 if (!this.mergeItemStack(itemstack1, 1, 2, false))
  155.                 {
  156.                     return null;
  157.                 }
  158.             }
  159.             else if (index >= 3 && index < 30)
  160.             {
  161.                 if (!this.mergeItemStack(itemstack1, 30, 39, false))
  162.                 {
  163.                     return null;
  164.                 }
  165.             }
  166.             else if (index >= 30 && index < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
  167.             {
  168.                 return null;
  169.             }
  170.                 }
  171.                 else if (!this.mergeItemStack(itemstack1, 3, 39, false))
  172.                 {
  173.                     return null;
  174.                 }
  175.  
  176.                 if (itemstack1.stackSize == 0)
  177.                 {
  178.                     slot.putStack((ItemStack)null);
  179.                 }
  180.                 else
  181.                 {
  182.                     slot.onSlotChanged();
  183.                 }
  184.  
  185.                 if (itemstack1.stackSize == itemstack.stackSize)
  186.                 {
  187.                     return null;
  188.                 }
  189.  
  190.                 slot.onPickupFromSlot(playerIn, itemstack1);
  191.        }
  192.             return itemstack;
  193.     }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement