This commit is contained in:
Ell 2022-03-30 14:45:28 +02:00
parent 9ff65e3b06
commit 2f75a2c774
2 changed files with 5 additions and 5 deletions

View file

@ -464,13 +464,13 @@ public class PipeNetwork implements ICapabilitySerializable<CompoundNBT>, GraphL
return ret;
}
public void clearDestinationCache(BlockPos... nodes) {
public void clearDestinationCache(List<BlockPos> nodes) {
this.startProfile("clear_node_cache");
// remove caches for the nodes
for (BlockPos node : nodes)
this.nodeToConnectedNodes.keySet().remove(node);
// remove caches that contain the nodes as a destination
this.nodeToConnectedNodes.values().removeIf(cached -> Arrays.stream(nodes).anyMatch(cached::contains));
this.nodeToConnectedNodes.values().removeIf(cached -> nodes.stream().anyMatch(cached::contains));
this.endProfile();
}
@ -493,12 +493,12 @@ public class PipeNetwork implements ICapabilitySerializable<CompoundNBT>, GraphL
@Override
public void edgeAdded(GraphEdgeChangeEvent<BlockPos, NetworkEdge> e) {
this.clearDestinationCache(e.getEdgeSource(), e.getEdgeTarget());
this.clearDestinationCache(e.getEdge().pipes);
}
@Override
public void edgeRemoved(GraphEdgeChangeEvent<BlockPos, NetworkEdge> e) {
this.clearDestinationCache(e.getEdgeSource(), e.getEdgeTarget());
this.clearDestinationCache(e.getEdge().pipes);
}
@Override

View file

@ -180,7 +180,7 @@ public class PipeTileEntity extends TileEntity implements INamedContainerProvide
if (prio != this.priority) {
this.priority = prio;
// clear the cache so that it's reevaluated based on priority
PipeNetwork.get(this.world).clearDestinationCache(this.pos);
PipeNetwork.get(this.world).clearDestinationCache(Collections.singletonList(this.pos));
}
profiler.endSection();
}