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:
@@ -113,15 +113,33 @@ func main() {
|
||||
}
|
||||
})
|
||||
|
||||
// 6. HANDLER: LEADERBOARD REQUEST
|
||||
// 6. HANDLER: LEADERBOARD REQUEST (alt, für Kompatibilität)
|
||||
_, _ = ec.Subscribe("leaderboard.get", func(subject, reply string, _ *struct{}) {
|
||||
top10 := server.GlobalLeaderboard.GetTop10()
|
||||
log.Printf("📊 Leaderboard-Request beantwortet: %d Einträge", len(top10))
|
||||
ec.Publish(reply, top10)
|
||||
})
|
||||
|
||||
// 7. HANDLER: LEADERBOARD REQUEST (neu, für WebSocket-Gateway)
|
||||
_, _ = ec.Subscribe("leaderboard.request", func(req *game.LeaderboardRequest) {
|
||||
top10 := server.GlobalLeaderboard.GetTop10()
|
||||
log.Printf("📊 Leaderboard-Request (Mode=%s): %d Einträge", req.Mode, len(top10))
|
||||
|
||||
// Response an den angegebenen Channel senden
|
||||
if req.ResponseChannel != "" {
|
||||
resp := game.LeaderboardResponse{
|
||||
Entries: top10,
|
||||
}
|
||||
ec.Publish(req.ResponseChannel, &resp)
|
||||
log.Printf("📤 Leaderboard-Response gesendet an %s", req.ResponseChannel)
|
||||
}
|
||||
})
|
||||
|
||||
log.Println("✅ Server bereit. Warte auf Spieler...")
|
||||
|
||||
// 5. WEBSOCKET-GATEWAY STARTEN (für Browser-Clients)
|
||||
go StartWebSocketGateway("8080", ec)
|
||||
|
||||
// Block forever
|
||||
select {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user