feat: Figurenauswahl, Autos, Debug-Panel und Namensnennung

Task 11: Figuren (Mannequin/Superhero Male/Female) mit auf ual.glb
retargeteten Animationen, Frisuren, vier SUVs auf angehefteten Chunks,
ein lil-gui-Debug-Panel (Figur/Frisur/Höhe/Hitbox/Chunk-Grenzen/
Kartenbild/Nebel/Wahrzeichen-Sprung) und die verpflichtende
Namensnennung fürs HUD (Kartenkacheln, Wahrzeichen, SUV, Texturen,
Palme, Figuren — jede Quelle mit ihrer eigenen Lizenz).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Sonnet 5 committed 2026-09-13 03:04:49 +02:00
1 parent 02d0f36580
commit d30aae68a1
42 files changed
+13143 -4

No files matched your search

+6 -1
View File
@@ -32,11 +32,15 @@ function dist(k, position) {
}
export class ChunkStreamer {
constructor({ scene, player, materials, props, baseUrl = "./data/vice-a" }) {
constructor({ scene, player, materials, props, baseUrl = "./data/vice-a", pinned = [] }) {
Object.assign(this, { scene, player, materials, props, baseUrl });
this.active = new Map(); // key -> { group, handle }
this.pending = new Set();
this.queue = [];
// Chunks, die #unload nie abbaut (Task 11, Schritt 5): die vier Fahrzeug-Spawnpunkte
// liegen darauf, und ein Fahrzeug ohne Boden fällt ins Nichts, sobald der Spieler
// sich weit genug entfernt und der normale Radius-Abbau eingreift.
this.pinned = new Set(pinned);
}
update(position) {
@@ -110,6 +114,7 @@ export class ChunkStreamer {
}
#unload(k) {
if (this.pinned.has(k)) return;
const entry = this.active.get(k);
if (!entry) return;
// Ruling 51: collider-lose Chunks (offenes Wasser) haben kein handle abzumelden.