//go:build !wasm // +build !wasm package main import ( "encoding/json" "fmt" "io/ioutil" "log" "path/filepath" "github.com/hajimehoshi/ebiten/v2/ebitenutil" "git.zb-server.de/ZB-Server/EscapeFromTeacher/pkg/game" ) func (g *Game) loadAssets() { // Pfad anpassen: Wir suchen im relativen Pfad baseDir := "./cmd/client/web/assets" manifestPath := filepath.Join(baseDir, "assets.json") data, err := ioutil.ReadFile(manifestPath) if err == nil { var m game.AssetManifest json.Unmarshal(data, &m) g.world.Manifest = m fmt.Println("✅ Assets Manifest geladen (Native):", len(m.Assets), "Einträge") } else { log.Println("⚠️ assets.json NICHT gefunden! Pfad:", manifestPath) // Fallback: Leeres Manifest, damit das Spiel nicht abstürzt g.world.Manifest = game.AssetManifest{Assets: make(map[string]game.AssetDefinition)} } // Chunks laden (plattformspezifisch via Build-Tags) g.loadChunks() // Bilder vorladen loadedImages := 0 failedImages := 0 for id, def := range g.world.Manifest.Assets { if def.Filename != "" { path := filepath.Join(baseDir, def.Filename) img, _, err := ebitenutil.NewImageFromFile(path) if err == nil { g.assetsImages[id] = img loadedImages++ } else { log.Printf("⚠️ Bild nicht geladen: %s (%s) - Fehler: %v", id, def.Filename, err) failedImages++ } } } fmt.Printf("🖼️ Bilder (Native): %d geladen, %d fehlgeschlagen\n", loadedImages, failedImages) }