Advertisement
Guest User

ContainerStickyWorkbench

a guest
Dec 21st, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.90 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. public class ContainerStickyWorkbench extends Container
  4. {
  5.     /** The crafting matrix inventory (3x3). */
  6.     public InventoryCrafting craftMatrix = new InventoryCrafting(this, 3, 3);
  7.     public IInventory craftResult = new InventoryCraftResult();
  8.     private World worldObj;
  9.     private int posX;
  10.     private int posY;
  11.     private int posZ;
  12.  
  13.     public ContainerStickyWorkbench(InventoryPlayer par1InventoryPlayer, World par2World, int par3, int par4, int par5)
  14.     {
  15.         this.worldObj = par2World;
  16.         this.posX = par3;
  17.         this.posY = par4;
  18.         this.posZ = par5;
  19.         this.addSlotToContainer(new SlotCrafting(par1InventoryPlayer.player, this.craftMatrix, this.craftResult, 0, 124, 35));
  20.         int var6;
  21.         int var7;
  22.  
  23.         for (var6 = 0; var6 < 3; ++var6)
  24.         {
  25.             for (var7 = 0; var7 < 3; ++var7)
  26.             {
  27.                 this.addSlotToContainer(new Slot(this.craftMatrix, var7 + var6 * 3, 30 + var7 * 18, 17 + var6 * 18));
  28.             }
  29.         }
  30.  
  31.         for (var6 = 0; var6 < 3; ++var6)
  32.         {
  33.             for (var7 = 0; var7 < 9; ++var7)
  34.             {
  35.                 this.addSlotToContainer(new Slot(par1InventoryPlayer, var7 + var6 * 9 + 9, 8 + var7 * 18, 84 + var6 * 18));
  36.             }
  37.         }
  38.  
  39.         for (var6 = 0; var6 < 9; ++var6)
  40.         {
  41.             this.addSlotToContainer(new Slot(par1InventoryPlayer, var6, 8 + var6 * 18, 142));
  42.         }
  43.  
  44.         this.onCraftMatrixChanged(this.craftMatrix);
  45.     }
  46.  
  47.     /**
  48.      * Callback for when the crafting matrix is changed.
  49.      */
  50.     public void onCraftMatrixChanged(IInventory par1IInventory)
  51.     {
  52.         this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix, this.worldObj));
  53.     }
  54.  
  55.     /**
  56.      * Callback for when the crafting gui is closed.
  57.      */
  58.     public void onCraftGuiClosed(EntityPlayer par1EntityPlayer)
  59.     {
  60.     }
  61.  
  62.     public boolean canInteractWith(EntityPlayer par1EntityPlayer)
  63.     {
  64.         return this.worldObj.getBlockId(this.posX, this.posY, this.posZ) != Block.workbench.blockID ? false : par1EntityPlayer.getDistanceSq((double)this.posX + 0.5D, (double)this.posY + 0.5D, (double)this.posZ + 0.5D) <= 64.0D;
  65.     }
  66.  
  67.     /**
  68.      * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
  69.      */
  70.     public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
  71.     {
  72.         ItemStack var3 = null;
  73.         Slot var4 = (Slot)this.inventorySlots.get(par2);
  74.  
  75.         if (var4 != null && var4.getHasStack())
  76.         {
  77.             ItemStack var5 = var4.getStack();
  78.             var3 = var5.copy();
  79.  
  80.             if (par2 == 0)
  81.             {
  82.                 if (!this.mergeItemStack(var5, 10, 46, true))
  83.                 {
  84.                     return null;
  85.                 }
  86.  
  87.                 var4.onSlotChange(var5, var3);
  88.             }
  89.             else if (par2 >= 10 && par2 < 37)
  90.             {
  91.                 if (!this.mergeItemStack(var5, 37, 46, false))
  92.                 {
  93.                     return null;
  94.                 }
  95.             }
  96.             else if (par2 >= 37 && par2 < 46)
  97.             {
  98.                 if (!this.mergeItemStack(var5, 10, 37, false))
  99.                 {
  100.                     return null;
  101.                 }
  102.             }
  103.             else if (!this.mergeItemStack(var5, 10, 46, false))
  104.             {
  105.                 return null;
  106.             }
  107.  
  108.             if (var5.stackSize == 0)
  109.             {
  110.                 var4.putStack((ItemStack)null);
  111.             }
  112.             else
  113.             {
  114.                 var4.onSlotChanged();
  115.             }
  116.  
  117.             if (var5.stackSize == var3.stackSize)
  118.             {
  119.                 return null;
  120.             }
  121.  
  122.             var4.onPickupFromSlot(par1EntityPlayer, var5);
  123.         }
  124.  
  125.         return var3;
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement