From 36162baf9f79a21eb2f7401fb141e216fdadf560 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 6 Sep 2014 00:31:36 -0500 Subject: [PATCH] Crafting CPUs can now by default perform 1 delivery per 3 ticks, and Co-Processors add to this. --- .../implementations/CraftingCPUCluster.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/me/cluster/implementations/CraftingCPUCluster.java b/me/cluster/implementations/CraftingCPUCluster.java index 1488a3c2..0abe62e2 100644 --- a/me/cluster/implementations/CraftingCPUCluster.java +++ b/me/cluster/implementations/CraftingCPUCluster.java @@ -76,6 +76,8 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU boolean waiting = false; private boolean isComplete = true; + int usedOps[] = new int[3]; + Map tasks = new HashMap(); IItemList waitingFor = AEApi.instance().storage().createItemList(); @@ -539,14 +541,21 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU if ( waiting || tasks.isEmpty() ) // nothing to do here... return; - remainingOperations = accelerator + 1; + remainingOperations = accelerator + 1 - (usedOps[0] + usedOps[1] + usedOps[2]); + int started = remainingOperations; - do + if ( remainingOperations > 0 ) { - didsomething = false; - executeCrafting( eg, cc ); + do + { + didsomething = false; + executeCrafting( eg, cc ); + } + while (didsomething && remainingOperations > 0); } - while (didsomething && remainingOperations > 0); + usedOps[2] = usedOps[1]; + usedOps[1] = usedOps[0]; + usedOps[0] = started - remainingOperations; if ( remainingOperations > 0 && didsomething == false ) waiting = true; @@ -1091,4 +1100,11 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU return wat != null && wat.getStackSize() > 0; } + public void breakCluster() + { + TileCraftingTile t = getCore(); + if ( t != null ) + t.breakCluster(); + } + }