aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-01-08 03:13:52 +0800
committerGitHub <noreply@github.com>2022-01-07 20:13:52 +0100
commitcfe0df76ab423d4dc9853d3ef5625ec2983f3523 (patch)
tree71fc69727096ee3a47630e922f8ad2467efb4e21 /src
parent4f44b72e98e2c41f426332a8f03e0651528982e9 (diff)
downloadGT5-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.java8
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);
}