Add platform-specific implementations for assets, audio, WebSocket, and rendering on Desktop and WebAssembly platforms. Introduce embedded assets for WebAssembly and native file handling for Desktop. Add platform-specific chunk loading and game state synchronization.
This commit is contained in:
55
cmd/client/chunks_wasm.go
Normal file
55
cmd/client/chunks_wasm.go
Normal file
@@ -0,0 +1,55 @@
|
||||
//go:build wasm
|
||||
// +build wasm
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
"log"
|
||||
|
||||
"git.zb-server.de/ZB-Server/EscapeFromTeacher/pkg/game"
|
||||
)
|
||||
|
||||
//go:embed assets/chunks/start.json
|
||||
var chunkStartData []byte
|
||||
|
||||
//go:embed assets/chunks/chunk_01.json
|
||||
var chunk01Data []byte
|
||||
|
||||
//go:embed assets/chunks/chunk_02.json
|
||||
var chunk02Data []byte
|
||||
|
||||
//go:embed assets/chunks/chunk_03.json
|
||||
var chunk03Data []byte
|
||||
|
||||
//go:embed assets/chunks/chunk_04.json
|
||||
var chunk04Data []byte
|
||||
|
||||
// loadChunks lädt alle Chunks aus eingebetteten Daten (WebAssembly)
|
||||
func (g *Game) loadChunks() {
|
||||
chunkDataMap := map[string][]byte{
|
||||
"start": chunkStartData,
|
||||
"chunk_01": chunk01Data,
|
||||
"chunk_02": chunk02Data,
|
||||
"chunk_03": chunk03Data,
|
||||
"chunk_04": chunk04Data,
|
||||
}
|
||||
|
||||
count := 0
|
||||
for id, data := range chunkDataMap {
|
||||
var c game.Chunk
|
||||
if err := json.Unmarshal(data, &c); err == nil {
|
||||
if c.ID == "" {
|
||||
c.ID = id
|
||||
}
|
||||
g.world.ChunkLibrary[c.ID] = c
|
||||
count++
|
||||
log.Printf("📦 Chunk geladen: %s (Width=%d, Objects=%d)", c.ID, c.Width, len(c.Objects))
|
||||
} else {
|
||||
log.Printf("⚠️ Fehler beim Laden von Chunk %s: %v", id, err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("✅ %d Chunks für WASM geladen", count)
|
||||
}
|
||||
Reference in New Issue
Block a user