diff --git a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java index ba97f71..4b4fb2e 100644 --- a/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java +++ b/src/main/java/de/ellpeck/prettypipes/network/PipeNetwork.java @@ -297,15 +297,6 @@ public class PipeNetwork implements ICapabilitySerializable, GraphL return null; } - public List getNetworkNodes(BlockPos pos, Predicate predicate) { - if (!this.isNode(pos)) - return Collections.emptyList(); - return this.getOrderedNetworkNodes(pos).stream() - .map(this::getPipe) - .filter(predicate) - .collect(Collectors.toList()); - } - private List createAllEdges(BlockPos pos, BlockState state, boolean ignoreCurrBlocked) { this.startProfile("create_all_edges"); List edges = new ArrayList<>(); @@ -361,7 +352,9 @@ public class PipeNetwork implements ICapabilitySerializable, GraphL return null; } - private List getOrderedNetworkNodes(BlockPos node) { + public List getOrderedNetworkNodes(BlockPos node) { + if (!this.isNode(node)) + return Collections.emptyList(); List ret = this.nodeToConnectedNodes.get(node); if (ret == null) { this.startProfile("compile_connected_nodes"); diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java b/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java index 953603e..fdfe148 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/PipeTileEntity.java @@ -304,11 +304,13 @@ public class PipeTileEntity extends TileEntity implements INamedContainerProvide } private PressurizerTileEntity findPressurizer() { - for (PipeTileEntity node : PipeNetwork.get(this.world).getNetworkNodes(this.pos, p -> true)) { + PipeNetwork network = PipeNetwork.get(this.world); + for (BlockPos node : network.getOrderedNetworkNodes(this.pos)) { + PipeTileEntity pipe = network.getPipe(node); for (Direction dir : Direction.values()) { - IPipeConnectable connectable = node.getPipeConnectable(dir); + IPipeConnectable connectable = pipe.getPipeConnectable(dir); if (connectable instanceof PressurizerBlock) - return Utility.getTileEntity(PressurizerTileEntity.class, this.world, node.pos.offset(dir)); + return Utility.getTileEntity(PressurizerTileEntity.class, this.world, node.offset(dir)); } } return null;