Fixed Bug: #1109 - Autocraft calculation issue when trying to split
This commit is contained in:
parent
68cc7fd5f7
commit
4533d1893b
1 changed files with 22 additions and 16 deletions
|
@ -89,8 +89,8 @@ public class MECraftingInventory implements IMEInventory<IAEItemStack>
|
||||||
injectedCache = null;
|
injectedCache = null;
|
||||||
|
|
||||||
localCache = AEApi.instance().storage().createItemList();
|
localCache = AEApi.instance().storage().createItemList();
|
||||||
for ( IAEItemStack is : target.getStorageList() )
|
for (IAEItemStack is : target.getStorageList())
|
||||||
localCache.add( target.extractItems(is, Actionable.SIMULATE, src ) );
|
localCache.add( target.extractItems( is, Actionable.SIMULATE, src ) );
|
||||||
|
|
||||||
par = null;
|
par = null;
|
||||||
}
|
}
|
||||||
|
@ -147,21 +147,27 @@ public class MECraftingInventory implements IMEInventory<IAEItemStack>
|
||||||
if ( list == null || list.getStackSize() == 0 )
|
if ( list == null || list.getStackSize() == 0 )
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if ( mode == Actionable.MODULATE && logExtracted )
|
|
||||||
extractedCache.add( request );
|
|
||||||
|
|
||||||
if ( list.getStackSize() >= request.getStackSize() )
|
if ( list.getStackSize() >= request.getStackSize() )
|
||||||
{
|
{
|
||||||
if ( mode == Actionable.MODULATE )
|
if ( mode == Actionable.MODULATE )
|
||||||
|
{
|
||||||
list.decStackSize( request.getStackSize() );
|
list.decStackSize( request.getStackSize() );
|
||||||
|
if ( logExtracted )
|
||||||
|
extractedCache.add( request );
|
||||||
|
}
|
||||||
|
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
IAEItemStack ret = request.copy();
|
IAEItemStack ret = request.copy();
|
||||||
ret.setStackSize( list.getStackSize() );
|
ret.setStackSize( list.getStackSize() );
|
||||||
|
|
||||||
if ( mode == Actionable.MODULATE )
|
if ( mode == Actionable.MODULATE )
|
||||||
|
{
|
||||||
list.reset();
|
list.reset();
|
||||||
|
if ( logExtracted )
|
||||||
|
extractedCache.add( ret );
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -192,14 +198,14 @@ public class MECraftingInventory implements IMEInventory<IAEItemStack>
|
||||||
IItemList<IAEItemStack> pulled = AEApi.instance().storage().createItemList();
|
IItemList<IAEItemStack> pulled = AEApi.instance().storage().createItemList();
|
||||||
boolean failed = false;
|
boolean failed = false;
|
||||||
|
|
||||||
if ( logExtracted )
|
if ( logInjections )
|
||||||
{
|
{
|
||||||
for (IAEItemStack extra : extractedCache)
|
for (IAEItemStack injec : injectedCache)
|
||||||
{
|
{
|
||||||
IAEItemStack result = null;
|
IAEItemStack result = null;
|
||||||
pulled.add( result = target.extractItems( extra, Actionable.MODULATE, src ) );
|
added.add( result = target.injectItems( injec, Actionable.MODULATE, src ) );
|
||||||
|
|
||||||
if ( result == null || result.getStackSize() != extra.getStackSize() )
|
if ( result != null )
|
||||||
{
|
{
|
||||||
failed = true;
|
failed = true;
|
||||||
break;
|
break;
|
||||||
|
@ -209,20 +215,20 @@ public class MECraftingInventory implements IMEInventory<IAEItemStack>
|
||||||
|
|
||||||
if ( failed )
|
if ( failed )
|
||||||
{
|
{
|
||||||
for (IAEItemStack is : pulled)
|
for (IAEItemStack is : added)
|
||||||
target.injectItems( is, Actionable.MODULATE, src );
|
target.extractItems( is, Actionable.MODULATE, src );
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( logInjections )
|
if ( logExtracted )
|
||||||
{
|
{
|
||||||
for (IAEItemStack injec : injectedCache)
|
for (IAEItemStack extra : extractedCache)
|
||||||
{
|
{
|
||||||
IAEItemStack result = null;
|
IAEItemStack result = null;
|
||||||
added.add( result = target.injectItems( injec, Actionable.MODULATE, src ) );
|
pulled.add( result = target.extractItems( extra, Actionable.MODULATE, src ) );
|
||||||
|
|
||||||
if ( result != null )
|
if ( result == null || result.getStackSize() != extra.getStackSize() )
|
||||||
{
|
{
|
||||||
failed = true;
|
failed = true;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue