forked from phenom/healer-man
74 lines
4.3 KiB
Markdown
74 lines
4.3 KiB
Markdown
# RuneWaker WDB environment assembly audit
|
|
|
|
Structural validation: **green**
|
|
Source-behavior review: **review-required**
|
|
|
|
This deterministic audit reads the checked-in WDB reports and environment recipes. It does
|
|
not convert or replace shipping GLBs. The builder now supports every valid ROS placement
|
|
resource with normalized-path model caching validated by source hashes and the complete translation/quaternion/scale
|
|
transform relative to the reviewed primary placement.
|
|
|
|
## Coverage
|
|
|
|
- 30 dungeon WDB packages and 15976 source descriptors.
|
|
- 2799 per-dungeon unique ROS resources (resources reused across dungeons share cache keys).
|
|
- 15976 static placements and 0 explicitly reviewed dynamic placements.
|
|
- 107 filename-based dynamic candidates remain static and review-required; names never prove behavior.
|
|
- 0 unsupported placement records and 0 missing source ROS resources.
|
|
|
|
| Dungeon | Mode | Descriptors | Resources | Static | Dynamic | Dynamic review | Unsupported | Missing ROS |
|
|
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
| aeternal-circle | all-ros | 575 | 182 | 575 | 0 | 54 | 0 | 0 |
|
|
| barren-caves | all-ros | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
|
|
| cave-water-dragon | all-ros | 121 | 16 | 121 | 0 | 0 | 0 | 0 |
|
|
| demon-stronghold | all-ros | 90 | 4 | 90 | 0 | 0 | 0 | 0 |
|
|
| demon-stronghold-125 | all-ros | 90 | 4 | 90 | 0 | 0 | 0 | 0 |
|
|
| dungeon-of-dalanis | all-ros | 652 | 124 | 652 | 0 | 5 | 0 | 0 |
|
|
| forsaken-abbey | all-ros | 184 | 26 | 184 | 0 | 1 | 0 | 0 |
|
|
| grafu-castle | all-ros | 899 | 286 | 899 | 0 | 17 | 0 | 0 |
|
|
| hall-of-survivors | all-ros | 296 | 32 | 296 | 0 | 0 | 0 | 0 |
|
|
| hoto | all-ros | 1627 | 119 | 1627 | 0 | 0 | 0 | 0 |
|
|
| ice-dwarf-kingdom | all-ros | 1054 | 209 | 1054 | 0 | 0 | 0 | 0 |
|
|
| kal-turok-hive | all-ros | 2 | 2 | 2 | 0 | 1 | 0 | 0 |
|
|
| kalins-shrine | all-ros | 943 | 133 | 943 | 0 | 0 | 0 | 0 |
|
|
| kawaks-tomb | all-ros | 573 | 60 | 573 | 0 | 0 | 0 | 0 |
|
|
| kulech-bones-nest | all-ros | 199 | 52 | 199 | 0 | 0 | 0 | 0 |
|
|
| lair-demon-dragon | all-ros | 530 | 96 | 530 | 0 | 0 | 0 | 0 |
|
|
| mystic-altar | all-ros | 2096 | 48 | 2096 | 0 | 0 | 0 | 0 |
|
|
| paspers-shrine | all-ros | 564 | 143 | 564 | 0 | 0 | 0 | 0 |
|
|
| raksha-temple | all-ros | 1028 | 228 | 1028 | 0 | 11 | 0 | 0 |
|
|
| sand-vortex | primary-only-procedural-fallback | 20 | 14 | 20 | 0 | 0 | 0 | 0 |
|
|
| sardo-castle | all-ros | 436 | 132 | 436 | 0 | 0 | 0 | 0 |
|
|
| the-origin | all-ros | 693 | 220 | 693 | 0 | 17 | 0 | 0 |
|
|
| tomb-seven-heroes | all-ros | 450 | 56 | 450 | 0 | 0 | 0 | 0 |
|
|
| treasure-trove | all-ros | 908 | 193 | 908 | 0 | 1 | 0 | 0 |
|
|
| warnorken-arena | all-ros | 256 | 14 | 256 | 0 | 0 | 0 | 0 |
|
|
| ystra-labyrinth-boss1 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
|
|
| ystra-labyrinth-boss2 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
|
|
| ystra-labyrinth-boss3 | all-ros | 3 | 1 | 3 | 0 | 0 | 0 | 0 |
|
|
| zurhidon-stronghold | all-ros | 840 | 201 | 840 | 0 | 0 | 0 | 0 |
|
|
| zurhidon-stronghold-124 | all-ros | 840 | 201 | 840 | 0 | 0 | 0 | 0 |
|
|
|
|
## Runtime-facing output
|
|
|
|
A full build writes `wdb-placement-manifest.json` beside the environment package. Each
|
|
placement has a stable WDB GUID ID, normalized resource/cache key, source TRS, primary-local
|
|
Three.js matrix, bounds, flags, asset status, and optional reviewed dynamic definition.
|
|
Static placements are assembled into the optimized visual and navigation collision. Reviewed
|
|
dynamic placements are omitted from static collision and packaged as separately addressable GLBs.
|
|
|
|
## Unsupported or review-required behavior
|
|
|
|
- WDB placement resources other than ROS are recorded but not converted.
|
|
- Particle, light, sound, camera, and script-only components absent from ROS mesh descriptors remain unsupported.
|
|
- Animated/stateful behavior remains unsupported until an exact reviewed dynamic-placement rule supplies its kind, initial state, collision policy, and evidence.
|
|
- A ROS that the preserved exporter cannot decode is skipped, recorded with its resource path and failure, and never replaced with guessed geometry.
|
|
- The primary-only top-down preview and editable `.blend` do not include the final merged WDB
|
|
assembly; the generated GLB and placement manifest are authoritative.
|
|
- Dynamic-candidate filenames are not enough to remove geometry from the static package. Add a
|
|
reviewed `source.wdbAssembly.dynamicPlacements` rule with evidence first.
|
|
|
|
## Validation issues
|
|
|
|
- None.
|