Use craftinggrid to check existing patterns for JEI recipe transfer. (#3202)
This commit is contained in:
@@ -41,6 +41,7 @@ import appeng.api.config.Actionable;
|
|||||||
import appeng.api.config.SecurityPermissions;
|
import appeng.api.config.SecurityPermissions;
|
||||||
import appeng.api.networking.IGrid;
|
import appeng.api.networking.IGrid;
|
||||||
import appeng.api.networking.IGridNode;
|
import appeng.api.networking.IGridNode;
|
||||||
|
import appeng.api.networking.crafting.ICraftingGrid;
|
||||||
import appeng.api.networking.energy.IEnergyGrid;
|
import appeng.api.networking.energy.IEnergyGrid;
|
||||||
import appeng.api.networking.security.ISecurityGrid;
|
import appeng.api.networking.security.ISecurityGrid;
|
||||||
import appeng.api.networking.storage.IStorageGrid;
|
import appeng.api.networking.storage.IStorageGrid;
|
||||||
@@ -132,6 +133,7 @@ public class PacketJEIRecipe extends AppEngPacket
|
|||||||
final IStorageGrid inv = grid.getCache( IStorageGrid.class );
|
final IStorageGrid inv = grid.getCache( IStorageGrid.class );
|
||||||
final IEnergyGrid energy = grid.getCache( IEnergyGrid.class );
|
final IEnergyGrid energy = grid.getCache( IEnergyGrid.class );
|
||||||
final ISecurityGrid security = grid.getCache( ISecurityGrid.class );
|
final ISecurityGrid security = grid.getCache( ISecurityGrid.class );
|
||||||
|
final ICraftingGrid crafting = grid.getCache( ICraftingGrid.class );
|
||||||
final IItemHandler craftMatrix = cct.getInventoryByName( "crafting" );
|
final IItemHandler craftMatrix = cct.getInventoryByName( "crafting" );
|
||||||
final IItemHandler playerInventory = cct.getInventoryByName( "player" );
|
final IItemHandler playerInventory = cct.getInventoryByName( "player" );
|
||||||
|
|
||||||
@@ -179,13 +181,23 @@ public class PacketJEIRecipe extends AppEngPacket
|
|||||||
{
|
{
|
||||||
request.setStackSize( 1 );
|
request.setStackSize( 1 );
|
||||||
IAEItemStack out;
|
IAEItemStack out;
|
||||||
|
|
||||||
if( cct.useRealItems() )
|
if( cct.useRealItems() )
|
||||||
{
|
{
|
||||||
out = Platform.poweredExtraction( energy, storage, request, cct.getActionSource() );
|
out = Platform.poweredExtraction( energy, storage, request, cct.getActionSource() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
out = storage.extractItems( request, Actionable.SIMULATE, cct.getActionSource() );
|
// Query the crafting grid if there is a pattern providing the item
|
||||||
|
if( !crafting.getCraftingFor( request, null, 0, null ).isEmpty() )
|
||||||
|
{
|
||||||
|
out = request;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Fall back using an existing item
|
||||||
|
out = storage.extractItems( request, Actionable.SIMULATE, cct.getActionSource() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( out != null )
|
if( out != null )
|
||||||
|
|||||||
Reference in New Issue
Block a user