From aa6bad7a72622cc40bb7afeeef942eb94775a92a Mon Sep 17 00:00:00 2001 From: miozune Date: Wed, 24 May 2023 19:27:20 +0900 Subject: [PATCH] Fix CPU Clusters consisting only of addon blocks not being recognized (#274) --- .../java/appeng/me/cache/CraftingGridCache.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index ccf475119..c9e89cc1e 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -63,6 +63,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ThreadFactory; +import java.util.stream.StreamSupport; public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper, ICellProvider, IMEInventoryHandler { @@ -285,14 +286,16 @@ public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper private void updateCPUClusters() { this.craftingCPUClusters.clear(); - for (final IGridNode cst : this.grid.getMachines(TileCraftingStorageTile.class)) { - final TileCraftingStorageTile tile = (TileCraftingStorageTile) cst.getMachine(); - final CraftingCPUCluster cluster = (CraftingCPUCluster) tile.getCluster(); - if (cluster != null) { - this.craftingCPUClusters.add(cluster); + for (Object cls: StreamSupport.stream(grid.getMachinesClasses().spliterator(), false).filter(TileCraftingStorageTile.class::isAssignableFrom).toArray()) { + for (final IGridNode cst : this.grid.getMachines((Class) cls)) { + final TileCraftingStorageTile tile = (TileCraftingStorageTile) cst.getMachine(); + final CraftingCPUCluster cluster = (CraftingCPUCluster) tile.getCluster(); + if (cluster != null) { + this.craftingCPUClusters.add(cluster); - if (cluster.getLastCraftingLink() != null) { - this.addLink((CraftingLink) cluster.getLastCraftingLink()); + if (cluster.getLastCraftingLink() != null) { + this.addLink((CraftingLink) cluster.getLastCraftingLink()); + } } } }