|
4 | 4 | import com.gregtechceu.gtceu.api.data.worldgen.WorldGeneratorUtils; |
5 | 5 | import com.gregtechceu.gtceu.api.registry.GTRegistries; |
6 | 6 | import com.gregtechceu.gtceu.config.ConfigHolder; |
7 | | -import com.gregtechceu.gtceu.utils.GTMath; |
8 | 7 |
|
9 | 8 | import net.minecraft.MethodsReturnNonnullByDefault; |
10 | 9 | import net.minecraft.core.BlockPos; |
|
13 | 12 | import net.minecraft.nbt.ListTag; |
14 | 13 | import net.minecraft.nbt.Tag; |
15 | 14 | import net.minecraft.server.level.ServerLevel; |
16 | | -import net.minecraft.util.RandomSource; |
17 | 15 | import net.minecraft.world.level.ChunkPos; |
18 | 16 | import net.minecraft.world.level.biome.Biome; |
| 17 | +import net.minecraft.world.level.levelgen.XoroshiroRandomSource; |
19 | 18 | import net.minecraft.world.level.saveddata.SavedData; |
20 | 19 |
|
21 | 20 | import it.unimi.dsi.fastutil.objects.Object2IntMap; |
@@ -95,8 +94,8 @@ public OreVeinWorldEntry getOreVeinWorldEntry(int chunkX, int chunkZ) { |
95 | 94 | } |
96 | 95 |
|
97 | 96 | BedrockOreDefinition definition = null; |
98 | | - int query = RandomSource |
99 | | - .create(GTMath.hashLongs(serverLevel.getSeed(), getVeinCoord(chunkX), getVeinCoord(chunkZ))) |
| 97 | + int query = new XoroshiroRandomSource( |
| 98 | + serverLevel.getSeed() ^ ChunkPos.asLong(getVeinCoord(chunkX), getVeinCoord(chunkZ))) |
100 | 99 | .nextInt(); |
101 | 100 | var biome = serverLevel.getBiome(new BlockPos(chunkX << 4, 64, chunkZ << 4)); |
102 | 101 | int totalWeight = getTotalWeight(biome); |
@@ -138,8 +137,7 @@ public void createVein(ChunkPos pos, @Nullable BedrockOreDefinition definition) |
138 | 137 | distanceFromOriginal = distanceFromOriginal == 0 ? 1 : distanceFromOriginal; |
139 | 138 | distanceFromOriginal = (float) Math.pow(distanceFromOriginal, 2); |
140 | 139 |
|
141 | | - var random = RandomSource |
142 | | - .create(31L * 31 * pos2.x + pos2.z * 31L + Long.hashCode(serverLevel.getSeed())); |
| 140 | + var random = new XoroshiroRandomSource(serverLevel.getSeed() ^ pos2.toLong()); |
143 | 141 |
|
144 | 142 | int maximumYield; |
145 | 143 | if ((definition.yield().getMaxValue() - definition.yield().getMinValue()) / distanceFromOriginal <= |
|
0 commit comments