diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java index e4452738..822a48f6 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/TNTSimulator.java @@ -211,7 +211,23 @@ public class TNTSimulator { private void spawnRandomList(List tntSpawns) { if (tntSpawns.isEmpty()) return; - Collections.shuffle(tntSpawns); + + List toShuffle = new ArrayList<>(); + List indices = new ArrayList<>(); + + for (int i = 0; i < tntSpawns.size(); i++) { + TNTSpawn tntSpawn = tntSpawns.get(i); + if (tntSpawn.xVelocity || tntSpawn.yVelocity || tntSpawn.zVelocity) { + toShuffle.add(tntSpawn); + indices.add(i); + } + } + Collections.shuffle(indices); + + for (TNTSpawn tntSpawn : toShuffle) { + tntSpawns.set(indices.remove(0), tntSpawn); + } + for (TNTSpawn tntSpawn : tntSpawns) { tntSpawn.spawn(); }