Guest User

Container

a guest
Aug 20th, 2015
122
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×