mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
Component related conveniences
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
||||
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<Supplier<ConfiguredFeature<?, ?>>>> list = this.generationSettings.features();
|
||||
Registry<ConfiguredFeature<?, ?>> 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<ConfiguredFeature<?, ?>> supplier2 : list.get(j)) {
|
||||
ConfiguredFeature<?, ?> configuredFeature = supplier2.get();
|
||||
Supplier<String> 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 6629addad421042fae15d1b70c0a8d51ecf5f3e2..de47ddf70c993a1f8600062005eab6dd44475b56 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -2242,4 +2242,20 @@ 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() {
|
||||
+ if (PurpurConfig.version < 16) {
|
||||
+ try {
|
||||
+ java.lang.reflect.Method method = TuinityConfig.WorldConfig.class.getDeclaredMethod("getString", String.class, String.class);
|
||||
+ method.setAccessible(true);
|
||||
+ String def = (String) method.invoke(level.tuinityConfig, "worldgen.seeds.populator", "default");
|
||||
+ if (def.equalsIgnoreCase("random")) {
|
||||
+ set("seed.random-populator-seed", true);
|
||||
+ }
|
||||
+ } catch (NoSuchMethodException | java.lang.reflect.InvocationTargetException | IllegalAccessException ignore) {
|
||||
+ }
|
||||
+ }
|
||||
+ randomPopulatorSeed = getBoolean("seed.random-populator-seed", randomPopulatorSeed);
|
||||
+ }
|
||||
}
|
||||
Reference in New Issue
Block a user