option for a blocking mode that actually works
This commit is contained in:
@@ -164,6 +164,7 @@ public enum AEFeature
|
|||||||
PATTERNS( "Patterns", Constants.CATEGORY_CRAFTING_FEATURES ),
|
PATTERNS( "Patterns", Constants.CATEGORY_CRAFTING_FEATURES ),
|
||||||
CRAFTING_CPU( "CraftingCPU", Constants.CATEGORY_CRAFTING_FEATURES ),
|
CRAFTING_CPU( "CraftingCPU", Constants.CATEGORY_CRAFTING_FEATURES ),
|
||||||
CRAFTING_MANAGER_FALLBACK( "CraftingManagerFallback", Constants.CATEGORY_CRAFTING_FEATURES, "Use CraftingManager to find an alternative recipe, after a pattern rejected an ingredient. Should be enabled to avoid issues, but can have a minor performance impact." ),
|
CRAFTING_MANAGER_FALLBACK( "CraftingManagerFallback", Constants.CATEGORY_CRAFTING_FEATURES, "Use CraftingManager to find an alternative recipe, after a pattern rejected an ingredient. Should be enabled to avoid issues, but can have a minor performance impact." ),
|
||||||
|
INSANE_BLOCKING_MODE( "InsaneBlockingMode", Constants.CATEGORY_CRAFTING_FEATURES, "Use the default AE2 blocking mode that doesn't work on any machines" ),
|
||||||
|
|
||||||
BASIC_CARDS( "BasicCards", Constants.CATEGORY_UPGRADES ),
|
BASIC_CARDS( "BasicCards", Constants.CATEGORY_UPGRADES ),
|
||||||
ADVANCED_CARDS( "AdvancedCards", Constants.CATEGORY_UPGRADES ),
|
ADVANCED_CARDS( "AdvancedCards", Constants.CATEGORY_UPGRADES ),
|
||||||
|
|||||||
@@ -88,6 +88,8 @@ import appeng.api.util.AEPartLocation;
|
|||||||
import appeng.api.util.DimensionalCoord;
|
import appeng.api.util.DimensionalCoord;
|
||||||
import appeng.api.util.IConfigManager;
|
import appeng.api.util.IConfigManager;
|
||||||
import appeng.capabilities.Capabilities;
|
import appeng.capabilities.Capabilities;
|
||||||
|
import appeng.core.AEConfig;
|
||||||
|
import appeng.core.features.AEFeature;
|
||||||
import appeng.core.settings.TickRates;
|
import appeng.core.settings.TickRates;
|
||||||
import appeng.me.GridAccessException;
|
import appeng.me.GridAccessException;
|
||||||
import appeng.me.helpers.AENetworkProxy;
|
import appeng.me.helpers.AENetworkProxy;
|
||||||
@@ -893,6 +895,13 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean invIsBlocked(InventoryAdaptor inv) {
|
||||||
|
if (AEConfig.instance().isFeatureEnabled(AEFeature.INSANE_BLOCKING_MODE))
|
||||||
|
return !inv.simulateRemove( 1, ItemStack.EMPTY, null ).isEmpty();
|
||||||
|
else
|
||||||
|
return inv.containsItems();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean pushPattern( final ICraftingPatternDetails patternDetails, final InventoryCrafting table )
|
public boolean pushPattern( final ICraftingPatternDetails patternDetails, final InventoryCrafting table )
|
||||||
{
|
{
|
||||||
@@ -941,7 +950,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
{
|
{
|
||||||
if( this.isBlocking() )
|
if( this.isBlocking() )
|
||||||
{
|
{
|
||||||
if( !ad.simulateRemove( 1, ItemStack.EMPTY, null ).isEmpty() )
|
if( invIsBlocked(ad) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -992,7 +1001,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
|||||||
final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
||||||
if( ad != null )
|
if( ad != null )
|
||||||
{
|
{
|
||||||
if( ad.simulateRemove( 1, ItemStack.EMPTY, null ).isEmpty() )
|
if( !invIsBlocked(ad) )
|
||||||
{
|
{
|
||||||
allAreBusy = false;
|
allAreBusy = false;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user