From a7799a9c710cf4ef902fc00c8b9b91246e7999dc Mon Sep 17 00:00:00 2001 From: Michael Mainguy Date: Tue, 9 Dec 2025 13:53:10 -0600 Subject: [PATCH] Fix asteroid remaining count by using config length directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of looking up meshes by name (which failed due to naming mismatch), return asteroidCount directly from the config - the authoritative source. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/levels/config/levelDeserializer.ts | 18 +++++------------- src/levels/level1.ts | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/levels/config/levelDeserializer.ts b/src/levels/config/levelDeserializer.ts index ef2968b..de272cc 100644 --- a/src/levels/config/levelDeserializer.ts +++ b/src/levels/config/levelDeserializer.ts @@ -67,7 +67,7 @@ export class LevelDeserializer { startBase: AbstractMesh | null; sun: AbstractMesh; planets: AbstractMesh[]; - asteroids: AbstractMesh[]; + asteroidCount: number; }> { log.debug(`[LevelDeserializer] Deserializing meshes (hidden: ${hidden})`); this._scoreObservable = scoreObservable; @@ -80,13 +80,13 @@ export class LevelDeserializer { const planets = this.createPlanets(); // Create asteroid meshes (no physics) - const asteroids = await this.createAsteroidMeshes(scoreObservable, hidden); + await this.createAsteroidMeshes(scoreObservable, hidden); return { startBase: baseResult?.baseMesh || null, sun, planets, - asteroids + asteroidCount: this.config.asteroids.length }; } @@ -239,9 +239,7 @@ export class LevelDeserializer { private async createAsteroidMeshes( scoreObservable: Observable, hidden: boolean - ): Promise { - const asteroids: AbstractMesh[] = []; - + ): Promise { for (let i = 0; i < this.config.asteroids.length; i++) { const asteroidConfig = this.config.asteroids[i]; const useOrbitConstraints = this.config.useOrbitConstraints !== false; @@ -279,15 +277,9 @@ export class LevelDeserializer { asteroidConfig.targetMode, rotation ); - - const mesh = this.scene.getMeshByName(asteroidConfig.id); - if (mesh) { - asteroids.push(mesh); - } } - log.debug(`[LevelDeserializer] Created ${asteroids.length} asteroid meshes (hidden: ${hidden})`); - return asteroids; + log.debug(`[LevelDeserializer] Created ${this.config.asteroids.length} asteroid meshes (hidden: ${hidden})`); } diff --git a/src/levels/level1.ts b/src/levels/level1.ts index 54206d4..33d2211 100644 --- a/src/levels/level1.ts +++ b/src/levels/level1.ts @@ -406,7 +406,7 @@ export class Level1 implements Level { ); this._startBase = entities.startBase; - this._asteroidCount = entities.asteroids.length; + this._asteroidCount = entities.asteroidCount; // Initialize scoreboard with asteroid count this._ship.scoreboard.setRemainingCount(this._asteroidCount);