fixed that something can generate twice in playerrace
This commit is contained in:
+8
-1
@@ -4,6 +4,7 @@ import eu.mhsl.minenet.minigames.util.GeneratorUtils;
|
|||||||
import net.minestom.server.coordinate.Point;
|
import net.minestom.server.coordinate.Point;
|
||||||
import net.minestom.server.instance.generator.GenerationUnit;
|
import net.minestom.server.instance.generator.GenerationUnit;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
@@ -45,8 +46,14 @@ public abstract class Obstacle {
|
|||||||
*/
|
*/
|
||||||
public abstract void generate(GenerationUnit unit, Point start);
|
public abstract void generate(GenerationUnit unit, Point start);
|
||||||
|
|
||||||
|
private static final List<Obstacle> remaining = new ArrayList<>();
|
||||||
|
|
||||||
public static Obstacle getRandomObstacle() {
|
public static Obstacle getRandomObstacle() {
|
||||||
return obstacles.get(ThreadLocalRandom.current().nextInt(obstacles.size()));
|
if(remaining.isEmpty()) {
|
||||||
|
remaining.addAll(obstacles);
|
||||||
|
}
|
||||||
|
int index = ThreadLocalRandom.current().nextInt(remaining.size());
|
||||||
|
return remaining.remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void forEachColumn(Point start, Consumer<Point> callback) {
|
protected static void forEachColumn(Point start, Consumer<Point> callback) {
|
||||||
|
|||||||
Reference in New Issue
Block a user