From ab42d1c1fbccf0534c017ce26685d1115b3446c7 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 5 Mar 2025 09:45:22 +0700 Subject: [PATCH] Use Xoshiro256SSRandom instead of CMWC in enormous placements --- .../mc/otm/worldgen/placement/AbstractEnormousPlacement.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/placement/AbstractEnormousPlacement.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/placement/AbstractEnormousPlacement.kt index 6263b40e7..defd2c7c4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/placement/AbstractEnormousPlacement.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/placement/AbstractEnormousPlacement.kt @@ -14,6 +14,7 @@ import net.minecraft.world.level.ChunkPos import net.minecraft.world.level.levelgen.placement.PlacementContext import net.minecraft.world.level.levelgen.placement.PlacementModifier import ru.dbotthepony.mc.otm.core.util.CMWCRandom +import ru.dbotthepony.mc.otm.core.util.Xoshiro256SSRandom import ru.dbotthepony.mc.otm.data.codec.inRange import ru.dbotthepony.mc.otm.data.codec.minRange import java.time.Duration @@ -71,7 +72,7 @@ abstract class AbstractEnormousPlacement(val parameters: Parameters) : Placement .build() private fun computeChunk(context: PlacementContext, pos: ChunkPos): GeneratedChunk { - val random = CMWCRandom(context.level.seed + HashCommon.murmurHash3(pos.x + pos.z * 31) + parameters.seedMix) + val random = Xoshiro256SSRandom(context.level.seed, parameters.seedMix, pos.x.toLong(), pos.z.toLong()) var stream = Stream.of(BlockPos(pos.minBlockX, 0, pos.minBlockZ)) parameters.placementModifiers.forEach { modifier -> stream = stream.flatMap { modifier.getPositions(context, random, it).sequential() } } return GeneratedChunk(stream.flatMap { getPositions(it, random) })