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 ),
|
||||
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." ),
|
||||
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 ),
|
||||
ADVANCED_CARDS( "AdvancedCards", Constants.CATEGORY_UPGRADES ),
|
||||
|
||||
@@ -88,6 +88,8 @@ import appeng.api.util.AEPartLocation;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import appeng.capabilities.Capabilities;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.settings.TickRates;
|
||||
import appeng.me.GridAccessException;
|
||||
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
|
||||
public boolean pushPattern( final ICraftingPatternDetails patternDetails, final InventoryCrafting table )
|
||||
{
|
||||
@@ -941,7 +950,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
||||
{
|
||||
if( this.isBlocking() )
|
||||
{
|
||||
if( !ad.simulateRemove( 1, ItemStack.EMPTY, null ).isEmpty() )
|
||||
if( invIsBlocked(ad) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -992,7 +1001,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn
|
||||
final InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() );
|
||||
if( ad != null )
|
||||
{
|
||||
if( ad.simulateRemove( 1, ItemStack.EMPTY, null ).isEmpty() )
|
||||
if( !invIsBlocked(ad) )
|
||||
{
|
||||
allAreBusy = false;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user