diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-01-08 03:13:52 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-07 20:13:52 +0100 |
commit | cfe0df76ab423d4dc9853d3ef5625ec2983f3523 (patch) | |
tree | 71fc69727096ee3a47630e922f8ad2467efb4e21 /src | |
parent | 4f44b72e98e2c41f426332a8f03e0651528982e9 (diff) | |
download | GT5-Unofficial-cfe0df76ab423d4dc9853d3ef5625ec2983f3523.tar.gz GT5-Unofficial-cfe0df76ab423d4dc9853d3ef5625ec2983f3523.tar.bz2 GT5-Unofficial-cfe0df76ab423d4dc9853d3ef5625ec2983f3523.zip |
Review how per chunk modifier for oil is calculated (#855)
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/common/GT_UndergroundOil.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/gregtech/common/GT_UndergroundOil.java b/src/main/java/gregtech/common/GT_UndergroundOil.java index 02a625d8a2..0010de8223 100644 --- a/src/main/java/gregtech/common/GT_UndergroundOil.java +++ b/src/main/java/gregtech/common/GT_UndergroundOil.java @@ -114,12 +114,16 @@ public class GT_UndergroundOil { if (dimension == null) return null; // prepare RNG final XSTR tVeinRNG = new XSTR(world.getSeed() + dimensionId * 2L + (chunkX >> 3) + 8267L * (chunkZ >> 3)); - final XSTR tChunkRNG = new XSTR(world.getSeed() + dimensionId * 2L + chunkX + 8267L * chunkZ); GT_UO_Fluid uoFluid = dimension.getRandomFluid(tVeinRNG); // nothing here :( if (uoFluid == null || uoFluid.getFluid() == null) return null; // offset each chunk's fluid amount by +-25% - int amount = (int) ((float) uoFluid.getRandomAmount(tVeinRNG) * (0.75f + (tChunkRNG.nextFloat() / 2f))); + // discard random values not for current chunk + int veinAverage = uoFluid.getRandomAmount(tVeinRNG); + for (int i = 0; i < (((chunkX & 0x7) << 3) | chunkZ & 0x7); i++) { + tVeinRNG.next(24); + } + int amount = (int) ((float) veinAverage * (0.75f + (tVeinRNG.nextFloat() / 2f))); return Pair.of(uoFluid, amount); } |