diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 3ef1e0622..386546160 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -112,6 +112,8 @@ import appeng.util.item.AEItemStack; public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost { + private int[] failedCraftTriesSlot = {0,0,0,0,0,0,0,0,0}; + public static final int NUMBER_OF_STORAGE_SLOTS = 9; public static final int NUMBER_OF_CONFIG_SLOTS = 9; public static final int NUMBER_OF_PATTERN_SLOTS = 9; @@ -763,9 +765,17 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn { if( this.getInstalledUpgrades( Upgrades.CRAFTING ) > 0 && itemStack != null ) { - this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorld(), + if (this.failedCraftTriesSlot[x] <= 0) + { + boolean crafted = this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorld(), this.gridProxy.getGrid(), this.gridProxy.getCrafting(), this.mySource ); + if (crafted) this.failedCraftTriesSlot[x] = 0; + else{ + this.failedCraftTriesSlot[x] += 4; + } + } + this.failedCraftTriesSlot[x] -= 1; } } catch( final GridAccessException e ) diff --git a/src/main/java/appeng/parts/automation/PartExportBus.java b/src/main/java/appeng/parts/automation/PartExportBus.java index 37578ac99..48cc81501 100644 --- a/src/main/java/appeng/parts/automation/PartExportBus.java +++ b/src/main/java/appeng/parts/automation/PartExportBus.java @@ -70,6 +70,8 @@ import appeng.util.item.AEItemStack; public class PartExportBus extends PartSharedItemBus implements ICraftingRequester { + private final int[] failedCraftTriesSlot = {0,0,0,0,0,0,0,0,0}; + public static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "part/export_bus_base" ); @PartModels @@ -151,8 +153,15 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest if( ais == null || this.itemToSend <= 0 ) continue; if ( this.craftOnly() ) { + if (this.failedCraftTriesSlot[x] <= 0) { + this.didSomething = this.craftingTracker.handleCrafting(slotToExport, this.itemToSend, ais, destination, this.getTile().getWorld(), this.getProxy().getGrid(), cg, this.mySrc) || this.didSomething; + + if (this.didSomething) this.failedCraftTriesSlot[x] = 0; + else this.failedCraftTriesSlot[x] += 4; + } + this.failedCraftTriesSlot[x] -= 1; continue; } @@ -176,8 +185,15 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest if( this.itemToSend == before && this.isCraftingEnabled() ) { + if (this.failedCraftTriesSlot[x] <= 0) { + this.didSomething = this.craftingTracker.handleCrafting(slotToExport, this.itemToSend, ais, destination, this.getTile().getWorld(), this.getProxy().getGrid(), cg, this.mySrc) || this.didSomething; + + if (this.didSomething) this.failedCraftTriesSlot[x] = 0; + else this.failedCraftTriesSlot[x] += 4; + } + this.failedCraftTriesSlot[x] -= 1; } }