func nextLogoText() { lines := make([]string, len(stevenLogoLines)) copy(lines, stevenLogoLines) rs, _ := resource.OpenAll("minecraft", "texts/splashes.txt") for _, r := range rs { func() { defer r.Close() s := bufio.NewScanner(r) for s.Scan() { line := s.Text() if line != "" && !strings.ContainsRune(line, '§') { switch line { case "Now Java 6!": line = "Now Go!" case "OpenGL 2.1 (if supported)!": line = "OpenGL 3.2!" } lines = append(lines, line) } } }() } logoText = lines[r.Intn(len(lines))] }
func loadSoundData() { v := assets.Objects["minecraft/sounds.json"] loc := fmt.Sprintf("./resources/%s", hashPath(v.Hash)) f, err := os.Open(loc) if err != nil { panic(err) } snds, _ := resource.OpenAll("minecraft", "sounds.json") snds = append([]io.ReadCloser{f}, snds...) for _, s := range snds { func() { defer s.Close() data := map[string]soundData{} err := json.NewDecoder(s).Decode(&data) if err != nil { panic(err) } for k, v := range data { soundInfo[k] = v } }() } for k, v := range soundInfo { soundInfo[k] = flattenSoundData(v) } }
func nextLogoTexture() { var textures []string rs, _ := resource.OpenAll("steven", "logo/textures.txt") for _, r := range rs { func() { defer r.Close() s := bufio.NewScanner(r) for s.Scan() { texture := s.Text() textures = append(textures, texture) } }() } if len(textures) > 0 { logoTargetTexture = textures[r.Intn(len(textures))] } }