0.2.6: the device slabs stay drawn on an official scene (GitHub #569) — 射击台, 特制水上平台 and 封印的地面 lived only in the procedural board's bucket that a scene replaces, so 战场#03's raised tiles by the blue gate were flat and 战场#05(上半)'s water platforms read as open water; buildBoard repeats them into buckets.raised / raisedDecal with sides reaching under the scene's ground and setStage draws just those on a scene (the 'h' high ground is the scenes' own and is not repeated); DESIGN §31.11, client §15; golden: unchanged

This commit is contained in:
sganggs committed 2026-10-13 17:45:04 +08:00
1 parent d8aab0a2db
commit 205f3bb7f7
7 files changed
+99 -8

No files matched your search

+7 -1
View File
@@ -19,7 +19,8 @@
// static crates (merged, same material),
// decals (MT_autochess_common), fence pipes, blowers (merged, unlit), gate boxes (additive + alpha, merged per
// material), cyan field edges, terrain overlays (≤ 4), background plane + its shadow catcher — ~12–16 in total.
// An official scene replaces the tiles, glass, decals, pipes and background with one mesh per material and lightmap
// An official scene replaces the tiles, glass, decals, pipes and background (all but the device slabs, layout.js
// buckets.raised — GitHub #569) with one mesh per material and lightmap
// page of the parts the built areas show (load.js mergeSceneChunks). Devices, gates, edges and terrain stay.
// The key light's shadow map is rendered only when the geometry changes (autoUpdate off).
@@ -303,6 +304,11 @@ export class BoardScene {
M.glass = this._mesh(board.buckets.glass, this.mat.glass);
M.decal = this._mesh(board.buckets.decal, this.mat.decal, { cast: false });
M.pipe = this._mesh(board.buckets.pipe, this.mat.pipe);
} else {
// the scene has no device slabs: the 射击台 / 特制水上平台 / 封印的地面 slabs stay drawn on it (units stand
// on them at tiles.js heightAt; GitHub #569)
M.raised = this._mesh(board.buckets.raised, this.mat.board);
M.raisedDecal = this._mesh(board.buckets.raisedDecal, this.mat.decal, { cast: false });
}
this._buildDevices(board);
this._buildGates(board);