package generators import ( "encoding/json" "math/rand" "os" ) type HumanArrays struct { Nm1 []string `json:"nm1"` Nm2 []string `json:"nm2"` Nm3 []string `json:"nm3"` Nm4 []string `json:"nm4"` Nm5 []string `json:"nm5"` Nm6 []string `json:"nm6"` Nm7 []string `json:"nm7"` Nm8 []string `json:"nm8"` Nm9 []string `json:"nm9"` Nm10 []string `json:"nm10"` Nm11 []string `json:"nm11"` Nm12 []string `json:"nm12"` Nm13 []string `json:"nm13"` Nm14 []string `json:"nm14"` Nm15 []string `json:"nm15"` Nm16 []string `json:"nm16"` Nm17 []string `json:"nm17"` Nm18 []string `json:"nm18"` Nm19 []string `json:"nm19"` Nm20 []string `json:"nm20"` Nm21 []string `json:"nm21"` Nm22 []string `json:"nm22"` } func LoadHumanArrays(path string) (HumanArrays, error) { var arrays HumanArrays file, err := os.Open(path) if err != nil { return arrays, err } defer file.Close() decoder := json.NewDecoder(file) err = decoder.Decode(&arrays) return arrays, err } // Example: Generate a simple human name (Calashite male) func HumanNameCalashiteMas(arr *HumanArrays, swearFilter func(string) bool) string { rnd := rand.Intn(len(arr.Nm1)) rnd2 := rand.Intn(len(arr.Nm2)) rnd3 := rand.Intn(len(arr.Nm3)) rnd4 := rand.Intn(len(arr.Nm4)) rnd5 := rand.Intn(len(arr.Nm5)) nMs := arr.Nm1[rnd] + arr.Nm2[rnd2] + arr.Nm3[rnd3] + arr.Nm4[rnd4] + arr.Nm5[rnd5] if swearFilter == nil || !swearFilter(nMs) { return nMs } return "" } // Add more generators for other ethnicities and genders as needed func GenerateHumanNames(arr *HumanArrays, gender string, swearFilter func(string) bool) []string { names := make([]string, 0, 10) for i := 0; i < 10; i++ { var nMs string if gender == "female" { // Placeholder: implement female logic as needed nMs = HumanNameCalashiteMas(arr, swearFilter) // Replace with actual female logic for nMs == "" { nMs = HumanNameCalashiteMas(arr, swearFilter) } } else { nMs = HumanNameCalashiteMas(arr, swearFilter) for nMs == "" { nMs = HumanNameCalashiteMas(arr, swearFilter) } } names = append(names, nMs) } return names }