feat(world): Hood Yard im Spiel
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ef2001542a
commit
9f6570b11d
1 file changed
+5
@@ -8,6 +8,7 @@ import { createMaterials } from "./world/materials.js";
|
|||||||
import { createSky } from "./world/sky.js";
|
import { createSky } from "./world/sky.js";
|
||||||
import { createSunShadows } from "./world/shadows.js";
|
import { createSunShadows } from "./world/shadows.js";
|
||||||
import { PropLayer } from "./world/props.js";
|
import { PropLayer } from "./world/props.js";
|
||||||
|
import { PlaceLayer } from "./world/places.js";
|
||||||
import { chunkForWorld, threeToWorld } from "./world/coords.js";
|
import { chunkForWorld, threeToWorld } from "./world/coords.js";
|
||||||
import { createCharacterModule } from "./characters/index.js";
|
import { createCharacterModule } from "./characters/index.js";
|
||||||
import { activeVehicleOrNull, playerIsGrounded, playerPosition } from "./player.js";
|
import { activeVehicleOrNull, playerIsGrounded, playerPosition } from "./player.js";
|
||||||
@@ -236,6 +237,9 @@ await props.load();
|
|||||||
// endlose Fall-Auffang-Schleife laufen, sobald der Chunk dauerhaft ausbleibt. Nach 15s gibt
|
// endlose Fall-Auffang-Schleife laufen, sobald der Chunk dauerhaft ausbleibt. Nach 15s gibt
|
||||||
// es nur noch eine einmalige Warnung, kein Verhaltenswechsel.
|
// es nur noch eine einmalige Warnung, kein Verhaltenswechsel.
|
||||||
const streamer = new ChunkStreamer({ scene, player, materials, props, pinned: VEHICLE_PINNED_CHUNKS });
|
const streamer = new ChunkStreamer({ scene, player, materials, props, pinned: VEHICLE_PINNED_CHUNKS });
|
||||||
|
// Fest platzierte Modelle aus three-d-stage (src/world/places.js). Eigene Radien, damit ein Ort nur in
|
||||||
|
// der Szene ist, solange die Chunks unter ihm geladen sind.
|
||||||
|
const places = new PlaceLayer({ scene, player });
|
||||||
player.setSkipCapsuleCollision(true);
|
player.setSkipCapsuleCollision(true);
|
||||||
let settled = false;
|
let settled = false;
|
||||||
let warnedSlowSpawn = false;
|
let warnedSlowSpawn = false;
|
||||||
@@ -250,6 +254,7 @@ function tick(delta) {
|
|||||||
// Sitzplatz-Offset, nicht die Weltposition (Begründung in src/player.js). Ohne diese
|
// Sitzplatz-Offset, nicht die Weltposition (Begründung in src/player.js). Ohne diese
|
||||||
// Umstellung hört das Streaming beim Fahren auf nachzuladen.
|
// Umstellung hört das Streaming beim Fahren auf nachzuladen.
|
||||||
streamer.update(playerPosition(player));
|
streamer.update(playerPosition(player));
|
||||||
|
places.update(playerPosition(player));
|
||||||
if (!settled) {
|
if (!settled) {
|
||||||
// Ein Sprung vor dem ersten Boden — Karte und Panel sind schon vor props.load() bedienbar —
|
// Ein Sprung vor dem ersten Boden — Karte und Panel sind schon vor props.load() bedienbar —
|
||||||
// ersetzt den Spawn als Startpunkt, statt beim Einrasten stillschweigend verloren zu gehen.
|
// ersetzt den Spawn als Startpunkt, statt beim Einrasten stillschweigend verloren zu gehen.
|
||||||
|
|||||||
Reference in new issue
Block a user