From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 25 Jun 2021 18:23:36 -0400 Subject: [PATCH] Populator seed controls diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java index a7a7e6cd87270e64a92448f03f8b0b0c7e375ec7..9fb19162c0e436122087d03d37b502a19b31cb9e 100644 --- a/src/main/java/net/minecraft/world/level/biome/Biome.java +++ b/src/main/java/net/minecraft/world/level/biome/Biome.java @@ -219,6 +219,7 @@ public final class Biome { return this.generationSettings; } + private static final java.security.SecureRandom SECURE_RANDOM = new java.security.SecureRandom(); // Purpur public void generate(StructureFeatureManager structureAccessor, ChunkGenerator chunkGenerator, WorldGenRegion region, long populationSeed, WorldgenRandom random, BlockPos origin) { List>>> list = this.generationSettings.features(); Registry> registry = region.registryAccess().registryOrThrow(Registry.CONFIGURED_FEATURE_REGISTRY); @@ -257,13 +258,20 @@ public final class Biome { } } + // Purpur start + long populatorSeed = populationSeed; + if (((net.minecraft.server.level.ServerChunkCache) region.getChunkSource()).getLevel().purpurConfig.randomPopulatorSeed) { + populatorSeed = SECURE_RANDOM.nextLong(); + } + // Purpur end + if (list.size() > j) { for(Supplier> supplier2 : list.get(j)) { ConfiguredFeature configuredFeature = supplier2.get(); Supplier supplier3 = () -> { return registry.getResourceKey(configuredFeature).map(Object::toString).orElseGet(configuredFeature::toString); }; - random.setFeatureSeed(populationSeed, k, j); + random.setFeatureSeed(populatorSeed, k, j); // Purpur try { region.setCurrentlyGenerating(supplier3); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index faca09270c21c6312064f2176ceb740457da9628..3c5c9d66ff9bda8d6abfdabd86929fd5a12b701c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -2258,4 +2258,9 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); } + + public boolean randomPopulatorSeed = false; + private void seedSettings() { + randomPopulatorSeed = getBoolean("seed.random-populator-seed", randomPopulatorSeed); + } }