mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-03 00:17:15 +00:00
Solving seed collisions on generators?
This commit is contained in:
parent
91d60e56df
commit
cf85d300f4
@ -91,6 +91,14 @@ public class IrisGenerator extends IrisRegistrant {
|
|||||||
@Desc("The noise gen for cliff height.")
|
@Desc("The noise gen for cliff height.")
|
||||||
private IrisNoiseGenerator cliffHeightGenerator = new IrisNoiseGenerator();
|
private IrisNoiseGenerator cliffHeightGenerator = new IrisNoiseGenerator();
|
||||||
|
|
||||||
|
boolean seedAdjusted = false;
|
||||||
|
|
||||||
|
public long getSeed() {
|
||||||
|
if(!seedAdjusted)
|
||||||
|
seed += (long)(cliffHeightMax + cliffHeightMin + (offsetX * offsetZ) - zoom + (multiplicitive ? 82 : 21) * cellPercentSize);
|
||||||
|
return seed;
|
||||||
|
}
|
||||||
|
|
||||||
public double getMax() {
|
public double getMax() {
|
||||||
return opacity;
|
return opacity;
|
||||||
}
|
}
|
||||||
@ -213,24 +221,24 @@ public class IrisGenerator extends IrisRegistrant {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * seed + offsetX + offsetZ);
|
int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * getSeed() + offsetX + offsetZ);
|
||||||
double h = multiplicitive ? 1 : 0;
|
double h = multiplicitive ? 1 : 0;
|
||||||
double tp = 0;
|
double tp = 0;
|
||||||
|
|
||||||
if(composite.size() == 1) {
|
if(composite.size() == 1) {
|
||||||
if(multiplicitive) {
|
if(multiplicitive) {
|
||||||
h *= composite.get(0).getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
h *= composite.get(0).getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
||||||
} else {
|
} else {
|
||||||
tp += composite.get(0).getOpacity();
|
tp += composite.get(0).getOpacity();
|
||||||
h += composite.get(0).getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
h += composite.get(0).getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for(IrisNoiseGenerator i : composite) {
|
for(IrisNoiseGenerator i : composite) {
|
||||||
if(multiplicitive) {
|
if(multiplicitive) {
|
||||||
h *= i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
h *= i.getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
||||||
} else {
|
} else {
|
||||||
tp += i.getOpacity();
|
tp += i.getOpacity();
|
||||||
h += i.getNoise(seed + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
h += i.getNoise(getSeed() + superSeed + hc, (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,8 +256,8 @@ public class IrisGenerator extends IrisRegistrant {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public double cell(double rx, double rz, double v, double superSeed) {
|
public double cell(double rx, double rz, double v, double superSeed) {
|
||||||
getCellGenerator(seed + 46222).setShuffle(getCellFractureShuffle());
|
getCellGenerator(getSeed() + 46222).setShuffle(getCellFractureShuffle());
|
||||||
return getCellGenerator(seed + 46222).getDistance(rx / getCellFractureZoom(), rz / getCellFractureZoom()) > getCellPercentSize() ? (v * getCellFractureHeight()) : v;
|
return getCellGenerator(getSeed() + 46222).getDistance(rx / getCellFractureZoom(), rz / getCellFractureZoom()) > getCellPercentSize() ? (v * getCellFractureHeight()) : v;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasCellCracks() {
|
private boolean hasCellCracks() {
|
||||||
@ -257,8 +265,8 @@ public class IrisGenerator extends IrisRegistrant {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public double getCliffHeight(double rx, double rz, double superSeed) {
|
public double getCliffHeight(double rx, double rz, double superSeed) {
|
||||||
int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * seed + offsetX + offsetZ);
|
int hc = (int) ((cliffHeightMin * 10) + 10 + cliffHeightMax * getSeed() + offsetX + offsetZ);
|
||||||
double h = cliffHeightGenerator.getNoise((long) (seed + superSeed + hc), (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
double h = cliffHeightGenerator.getNoise((long) (getSeed() + superSeed + hc), (rx + offsetX) / zoom, (rz + offsetZ) / zoom, getLoader());
|
||||||
return IrisInterpolation.lerp(cliffHeightMin, cliffHeightMax, h);
|
return IrisInterpolation.lerp(cliffHeightMin, cliffHeightMax, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user