From cd6abb016f70be9d9c8652203a2bc5414620fb60 Mon Sep 17 00:00:00 2001 From: marti Date: Sat, 3 Jan 2026 00:19:30 +0100 Subject: [PATCH] Implement randomized tile textures. - DungeonGenerator: Selects a random texture from the card definition when finalizing tile placement. - GameRenderer: Renders the specific chosen texture for each tile instance instead of the default. --- src/engine/dungeon/DungeonGenerator.js | 11 ++++++++++- src/view/GameRenderer.js | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/engine/dungeon/DungeonGenerator.js b/src/engine/dungeon/DungeonGenerator.js index 9e77c4a..def3d3e 100644 --- a/src/engine/dungeon/DungeonGenerator.js +++ b/src/engine/dungeon/DungeonGenerator.js @@ -261,11 +261,20 @@ export class DungeonGenerator { placeCardFinal(card, x, y, rotation) { const variant = card.variants[rotation]; + // Randomize Texture if multiple are available + let selectedTexture = null; + if (card.textures && card.textures.length > 0) { + const idx = Math.floor(Math.random() * card.textures.length); + selectedTexture = card.textures[idx]; + console.log(`[DungeonGenerator] Selected texture for ${card.id}:`, selectedTexture); + } + const instance = { id: `tile_${this.placedTiles.length}`, defId: card.id, x, y, rotation, - name: card.name + name: card.name, + texture: selectedTexture }; this.grid.placeTile(instance, variant, card); diff --git a/src/view/GameRenderer.js b/src/view/GameRenderer.js index 3ebbadf..611d407 100644 --- a/src/view/GameRenderer.js +++ b/src/view/GameRenderer.js @@ -498,7 +498,8 @@ export class GameRenderer { // Draw Texture Plane (The Image) - WAIT FOR TEXTURE TO LOAD if (tileDef && tileInstance && tileDef.textures && tileDef.textures.length > 0) { - const texturePath = tileDef.textures[0]; + // Use specific texture if assigned (randomized), otherwise default to first + const texturePath = tileInstance.texture || tileDef.textures[0]; // Load texture with callback this.getTexture(texturePath, (texture) => {