fixes
This commit is contained in:
+26
-18
@@ -26,14 +26,16 @@ var NoiseParamMap = map[NoiseParam]NoiseParamMapV{
|
||||
NoiseParamWeirdness: {A: []float64{1, 2, 1, 0, 0, 0}, S: "minecraft:ridge", O: -7},
|
||||
}
|
||||
|
||||
func InitClimateSeed(n NoiseParam, x Xoroshiro, large bool, nmax int) DoublePerlin {
|
||||
func initClimateSeed(n NoiseParam, x Xoroshiro, large bool, nmax int) DoublePerlin {
|
||||
v := NoiseParamMap[n]
|
||||
s := v.S
|
||||
omin := v.O
|
||||
if large && n != NoiseParamShift && n != NoiseParamWeirdness {
|
||||
s += "_large"
|
||||
omin -= 2
|
||||
}
|
||||
x.XorString(s) // SLOW potential
|
||||
return DoublePerlinFromXoroshiro(x, v.A, v.O, len(v.A), nmax)
|
||||
x.XorString(s)
|
||||
return DoublePerlinFromXoroshiro(&x, v.A, omin, len(v.A), nmax)
|
||||
}
|
||||
|
||||
type BiomeNoise struct {
|
||||
@@ -43,28 +45,34 @@ type BiomeNoise struct {
|
||||
func BiomeNoiseFromXoroshiro(x Xoroshiro, large bool) (v BiomeNoise) {
|
||||
x = x.Split()
|
||||
|
||||
v.Temperature = InitClimateSeed(NoiseParamTemperature, x, large, -1)
|
||||
v.Humidity = InitClimateSeed(NoiseParamHumidity, x, large, -1)
|
||||
v.ContinentalNess = InitClimateSeed(NoiseParamContinentalNess, x, large, -1)
|
||||
v.Erosion = InitClimateSeed(NoiseParamErosion, x, large, -1)
|
||||
v.Shift = InitClimateSeed(NoiseParamShift, x, large, -1)
|
||||
v.Weirdness = InitClimateSeed(NoiseParamWeirdness, x, large, -1)
|
||||
v.Temperature = initClimateSeed(NoiseParamTemperature, x, large, -1)
|
||||
v.Humidity = initClimateSeed(NoiseParamHumidity, x, large, -1)
|
||||
v.ContinentalNess = initClimateSeed(NoiseParamContinentalNess, x, large, -1)
|
||||
v.Erosion = initClimateSeed(NoiseParamErosion, x, large, -1)
|
||||
v.Shift = initClimateSeed(NoiseParamShift, x, large, -1)
|
||||
v.Weirdness = initClimateSeed(NoiseParamWeirdness, x, large, -1)
|
||||
return
|
||||
}
|
||||
|
||||
func (b BiomeNoise) Sample(x, y, z int) {
|
||||
func (b BiomeNoise) Sample(x, y, z int) (t, h, c, e, d, w float64, combinedData [6]int64, id int) {
|
||||
px := float64(x)
|
||||
pz := float64(z)
|
||||
px += b.Shift.Sample(px, 0, pz) * 4
|
||||
pz += b.Shift.Sample(pz, float64(x), 0) * 4
|
||||
|
||||
c := b.ContinentalNess.Sample(px, 0, pz)
|
||||
e := b.Erosion.Sample(px, 0, pz)
|
||||
w := b.Weirdness.Sample(px, 0, pz)
|
||||
t := b.Temperature.Sample(px, 0, pz)
|
||||
h := b.Humidity.Sample(px, 0, pz)
|
||||
c = b.ContinentalNess.Sample(px, 0, pz)
|
||||
e = b.Erosion.Sample(px, 0, pz)
|
||||
w = b.Weirdness.Sample(px, 0, pz)
|
||||
t = b.Temperature.Sample(px, 0, pz)
|
||||
h = b.Humidity.Sample(px, 0, pz)
|
||||
|
||||
d := float64(0) // FIXME
|
||||
var combinedData = [6]int64{int64(t * 10000), int64(h * 10000), int64(c * 10000), int64(e * 10000), int64(d * 10000), int64(w * 10000)}
|
||||
_ = combinedData
|
||||
combinedData = [6]int64{
|
||||
int64(float32(t) * 10000.0),
|
||||
int64(float32(h) * 10000.0),
|
||||
int64(float32(c) * 10000.0),
|
||||
int64(float32(e) * 10000.0),
|
||||
int64(float32(d) * 10000.0),
|
||||
int64(float32(w) * 10000.0),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user