diff --git a/src/main/java/org/terasology/minion/move/SetTargetToNearbyBlockNode.java b/src/main/java/org/terasology/minion/move/SetTargetToNearbyBlockNode.java index 559832a7..bbe59f1f 100644 --- a/src/main/java/org/terasology/minion/move/SetTargetToNearbyBlockNode.java +++ b/src/main/java/org/terasology/minion/move/SetTargetToNearbyBlockNode.java @@ -56,18 +56,18 @@ public BehaviorState modify(Actor actor, BehaviorState result) { private WalkableBlock findRandomNearbyBlock(WalkableBlock startBlock) { WalkableBlock currentBlock = startBlock; - - WalkableBlock[] neighbors = currentBlock.neighbors; - List existingNeighbors = Lists.newArrayList(); - for (WalkableBlock neighbor : neighbors) { - if (neighbor != null) { - existingNeighbors.add(neighbor); + for (int i = 0; i < random.nextInt(10) + 1; i++) { + WalkableBlock[] neighbors = currentBlock.neighbors; + List existingNeighbors = Lists.newArrayList(); + for (WalkableBlock neighbor : neighbors) { + if (neighbor != null) { + existingNeighbors.add(neighbor); + } + } + if (existingNeighbors.size() > 0) { + currentBlock = existingNeighbors.get(random.nextInt(existingNeighbors.size())); } } - if (existingNeighbors.size() > 0) { - currentBlock = existingNeighbors.get(random.nextInt(existingNeighbors.size())); - } - logger.debug(String.format("Looking for a block: my block is %s, found destination %s", startBlock.getBlockPosition(), currentBlock.getBlockPosition())); return currentBlock; }