Package appeng.helpers

Examples of appeng.helpers.IContainerCraftingPacket


    EntityPlayerMP pmp = (EntityPlayerMP) player;
    Container con = pmp.openContainer;

    if ( con != null && con instanceof IContainerCraftingPacket )
    {
      IContainerCraftingPacket cct = (IContainerCraftingPacket) con;
      IGridNode node = cct.getNetworkNode();
      if ( node != null )
      {
        IGrid grid = node.getGrid();
        if ( grid == null )
          return;

        IStorageGrid inv = grid.getCache( IStorageGrid.class );
        IEnergyGrid energy = grid.getCache( IEnergyGrid.class );
        ISecurityGrid security = grid.getCache( ISecurityGrid.class );
        IInventory craftMatrix = cct.getInventoryByName( "crafting" );

        Actionable realForFake = cct.useRealItems() ? Actionable.MODULATE : Actionable.SIMULATE;

        if ( inv != null && recipe != null && security != null )
        {
          InventoryCrafting ic = new InventoryCrafting( new ContainerNull(), 3, 3 );
          for (int x = 0; x < 9; x++)
          {
            if ( recipe[x] != null && recipe[x].length > 0 )
            {
              ic.setInventorySlotContents( x, recipe[x][0] );
            }
          }

          IRecipe r = Platform.findMatchingRecipe( ic, pmp.worldObj );

          if ( r != null && security.hasPermission( player, SecurityPermissions.EXTRACT ) )
          {
            ItemStack is = r.getCraftingResult( ic );

            if ( is != null )
            {
              IMEMonitor<IAEItemStack> storage = inv.getItemInventory();
              IItemList all = storage.getStorageList();
              IPartitionList<IAEItemStack> filter = ItemViewCell.createFilter( cct.getViewCells() );

              for (int x = 0; x < craftMatrix.getSizeInventory(); x++)
              {
                ItemStack PatternItem = ic.getStackInSlot( x );

                ItemStack currentItem = craftMatrix.getStackInSlot( x );
                if ( currentItem != null )
                {
                  ic.setInventorySlotContents( x, currentItem );
                  ItemStack newItemStack = r.matches( ic, pmp.worldObj ) ? r.getCraftingResult( ic ) : null;
                  ic.setInventorySlotContents( x, PatternItem );

                  if ( newItemStack == null || !Platform.isSameItemPrecise( newItemStack, is ) )
                  {
                    IAEItemStack in = AEItemStack.create( currentItem );
                    if ( in != null )
                    {
                      IAEItemStack out = realForFake == Actionable.SIMULATE ? null : Platform.poweredInsert( energy, storage, in,
                          cct.getSource() );
                      if ( out != null )
                        craftMatrix.setInventorySlotContents( x, out.getItemStack() );
                      else
                        craftMatrix.setInventorySlotContents( x, null );

                      currentItem = craftMatrix.getStackInSlot( x );
                    }
                  }
                }

                if ( PatternItem != null && currentItem == null )
                {
                  ItemStack whichItem = Platform.extractItemsByRecipe( energy, cct.getSource(), storage, player.worldObj, r, is, ic,
                      PatternItem, x, all, realForFake, filter );

                  if ( whichItem == null )
                  {
                    for (int y = 0; y < recipe[x].length; y++)
                    {
                      IAEItemStack request = AEItemStack.create( recipe[x][y] );
                      if ( request != null )
                      {
                        if ( filter == null || filter.isListed( request ) )
                        {
                          request.setStackSize( 1 );
                          IAEItemStack out = Platform.poweredExtraction( energy, storage, request, cct.getSource() );
                          if ( out != null )
                          {
                            whichItem = out.getItemStack();
                            break;
                          }
View Full Code Here

TOP

Related Classes of appeng.helpers.IContainerCraftingPacket

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.