move data stuff

This commit is contained in:
adman
2026-07-11 23:08:03 +02:00
parent efd7049859
commit b966925212
4 changed files with 48 additions and 39 deletions
@@ -1,10 +1,8 @@
package gen package data
import ( import (
"fmt" "fmt"
"math" "math"
"github.com/admin-else/strom/mc/data"
) )
// MultiNoisePreset names the two built-in multi-noise parameter lists. // MultiNoisePreset names the two built-in multi-noise parameter lists.
@@ -59,7 +57,7 @@ type rawMultiNoise map[string][]rawEntry
// "multi_noise_biome_source_parameter_list" key in minecraft-data. // "multi_noise_biome_source_parameter_list" key in minecraft-data.
func LoadMultiNoise(version string) (*MultiNoiseData, error) { func LoadMultiNoise(version string) (*MultiNoiseData, error) {
var raw rawMultiNoise var raw rawMultiNoise
if err := data.LoadVersionedJson(version, "multi_noise_biome_source_parameter_list", &raw); err != nil { if err := LoadVersionedJson(version, "multi_noise_biome_source_parameter_list", &raw); err != nil {
return nil, fmt.Errorf("load multi_noise for %s: %w", version, err) return nil, fmt.Errorf("load multi_noise for %s: %w", version, err)
} }
+34
View File
@@ -0,0 +1,34 @@
package data
import (
"testing"
)
func TestLoadMultiNoise(t *testing.T) {
for _, version := range []string{"1.21.8", "1.21.9", "1.21.11"} {
data, err := LoadMultiNoise(version)
if err != nil {
t.Fatalf("LoadMultiNoise(%q): %v", version, err)
}
if len(data.Presets[MultiNoiseOverworld]) == 0 {
t.Errorf("%s: overworld preset empty", version)
}
if len(data.Presets[MultiNoiseNether]) == 0 {
t.Errorf("%s: nether preset empty", version)
}
}
}
func TestMultiNoiseLookup_NetherOrigin(t *testing.T) {
data, err := LoadMultiNoise("1.21.11")
if err != nil {
t.Fatalf("LoadMultiNoise: %v", err)
}
biome, err := data.Lookup(MultiNoiseNether, 0, 0, 0, 0, 0, 0)
if err != nil {
t.Fatalf("Lookup: %v", err)
}
if biome != "minecraft:nether_wastes" {
t.Errorf("nether origin = %s, want minecraft:nether_wastes", biome)
}
}
+8 -4
View File
@@ -1,6 +1,10 @@
package gen package gen
import "math" import (
"math"
"github.com/admin-else/strom/mc/data"
)
type NoiseParam int type NoiseParam int
@@ -91,8 +95,8 @@ func (b BiomeNoise) Sample(x, y, z int) (t, h, c, e, d, w float64, combinedData
// SampleBiome samples the climate noise at (x, y, z) and resolves it through // SampleBiome samples the climate noise at (x, y, z) and resolves it through
// the supplied multi-noise parameter list. preset should be one of the // the supplied multi-noise parameter list. preset should be one of the
// MultiNoise* constants. // data.MultiNoise* constants.
func (b BiomeNoise) SampleBiome(x, y, z int, data *MultiNoiseData, preset string) (string, error) { func (b BiomeNoise) SampleBiome(x, y, z int, mnd *data.MultiNoiseData, preset string) (string, error) {
_, _, _, _, _, _, combined, _ := b.Sample(x, y, z) _, _, _, _, _, _, combined, _ := b.Sample(x, y, z)
return data.Lookup(preset, combined[0], combined[1], combined[2], combined[3], combined[4], combined[5]) return mnd.Lookup(preset, combined[0], combined[1], combined[2], combined[3], combined[4], combined[5])
} }
+4 -31
View File
@@ -2,48 +2,21 @@ package gen
import ( import (
"testing" "testing"
"github.com/admin-else/strom/mc/data"
) )
func TestLoadMultiNoise(t *testing.T) {
for _, version := range []string{"1.21.8", "1.21.9", "1.21.11"} {
data, err := LoadMultiNoise(version)
if err != nil {
t.Fatalf("LoadMultiNoise(%q): %v", version, err)
}
if len(data.Presets[MultiNoiseOverworld]) == 0 {
t.Errorf("%s: overworld preset empty", version)
}
if len(data.Presets[MultiNoiseNether]) == 0 {
t.Errorf("%s: nether preset empty", version)
}
}
}
func TestMultiNoiseLookup_NetherOrigin(t *testing.T) {
data, err := LoadMultiNoise("1.21.11")
if err != nil {
t.Fatalf("LoadMultiNoise: %v", err)
}
biome, err := data.Lookup(MultiNoiseNether, 0, 0, 0, 0, 0, 0)
if err != nil {
t.Fatalf("Lookup: %v", err)
}
if biome != "minecraft:nether_wastes" {
t.Errorf("nether origin = %s, want minecraft:nether_wastes", biome)
}
}
func TestBiomeNoise_SampleBiome(t *testing.T) { func TestBiomeNoise_SampleBiome(t *testing.T) {
var worldSeed int64 = 70388202460762 var worldSeed int64 = 70388202460762
x := XoroshiroFromSeed(worldSeed) x := XoroshiroFromSeed(worldSeed)
x.Mix() x.Mix()
b := BiomeNoiseFromXoroshiro(x, false) b := BiomeNoiseFromXoroshiro(x, false)
data, err := LoadMultiNoise("1.21.11") mnd, err := data.LoadMultiNoise("1.21.11")
if err != nil { if err != nil {
t.Fatalf("LoadMultiNoise: %v", err) t.Fatalf("LoadMultiNoise: %v", err)
} }
biome, err := b.SampleBiome(-1, -16, 0, data, MultiNoiseOverworld) biome, err := b.SampleBiome(-1, -16, 0, mnd, data.MultiNoiseOverworld)
if err != nil { if err != nil {
t.Fatalf("SampleBiome: %v", err) t.Fatalf("SampleBiome: %v", err)
} }