Skip to content

Scene refact3 to dev#9

Closed
KudenikovNS wants to merge 50 commits into
devfrom
scene-refact3
Closed

Scene refact3 to dev#9
KudenikovNS wants to merge 50 commits into
devfrom
scene-refact3

Conversation

@KudenikovNS

Copy link
Copy Markdown
Collaborator

No description provided.

z-hunter added 30 commits April 25, 2026 18:18
fix(trigger): ensure keyId takes precedence over idKey
…the two visible closed-console lines (according the GDD).
…e SVG icons.

Since we're using Vite's import.meta.glob('../../../assets/components-icon/*.svg') function, the builder automatically scans this folder and collects a list of all available files.

All you need to do is place a new .svg file in the src/assets/components-icon/ folder and name it the same as the component (use lowercase).

For example, if a "Teleport" component appears, simply drop the teleport.svg file into the folder, and the icon will immediately appear in the editor without any code changes. The only caveat is that if the game is running locally at the time, the development server (Vite) will automatically update everything on the fly via Hot Reload.
z-hunter added 20 commits May 9, 2026 14:29
Add runtime-only Parser Notes for the LLM cascade so unsupported but plausible player intents can produce grounded Game Master narration without forcing the request into nearby standard actions.

Implemented scene and entity PN storage on runtime Scene state, structured setSceneParserNote/setEntityParserNote actions, PN context injection for scene/entities/knownEntities/inventory/focused target, and #PEEK/#PEEKPN debug visibility for PN context and mutations.

Added parserNoteNeedsCheck stale markers. Real runtime mutations such as TAKE, PUT, OPEN, CLOSE, and inventory removal now mark existing affected PN as needing verification instead of deleting or silently editing them. LLM prompts now require stale PN to be confirmed, corrected, or cleared before player-facing output.

Tightened the LLM prompt contract around creative Game Master behavior, unsupported recognized intent, world-model authority, inventory/spatial separation, and PN ownership so notes describe persistent object or scene facts rather than temporary player character state.

Updated Parser.md, GDD.md, and TextAssets.md, and added focused parser, LLM cascade, PN debug, and world-model context coverage. Validation: npm test; npm run typecheck; git diff --check.
Extend object LOOK and EXAMINE responses with contextual extras.

When a target object has an Inventory relation for contents, append the same visible contents text produced by LOOK IN before any fresh object Parser Note. Empty containers and stale Parser Notes marked needsCheck are not shown as extras.

Adds parser command coverage for fresh/stale Parser Notes, visible inventory contents, empty containers, and the required contents-before-notes ordering.
…y FX

- Integrated Web Audio API with HRTF-based 3D spatialization.
- Implemented a physically grounded 2.5D sound model:
    * Parallax 1.1: Head level (Z=0, 20% Reverb/80% Dry, proximity EQ).
    * Parallax 1.0: Near field (Z=-400).
    * Parallax 0.0: Infinity foreground (Z=-10000, 100% Reverb/0% Dry, mono).
    * Parallax < 0: Sound source behind the listener (+Z).
- Dynamic Camera Zoom integration: scales audio Z-depth to simulate distance.
- Advanced DSP chain: Convolution Reverb (Impulse Response support), Slapback Delay, and Distance-based Proximity EQ (+6dB bass boost at 250Hz when close).
- Exponential crossfading between dry and wet signals based on distance.
- Full ScriptAPI exposure and comprehensive technical documentation (SoundSys.md).
…ide default reverb

- Added '3D SOUND ENV.' section to Scene Properties panel.
- Implemented Scene-wide Default Reverb IR with real-time hot-swapping.
- Refactored SoundManager for robust ConvolverNode management and gain staging.
- Added 'Reverb Min %' and 'noReverb' flag to Script API.
- Updated documentation (SoundSys.md, tech-spec.md) and added test scripts.
…arallax significantly different from 1

The cause was the double application of parallax during hit testing: Entity.hitTest() already expects visual world coordinates and takes camera * (parallax - 1) into account, while the editor passed layer coordinates via cam * parallax.

Changed:

EditorTransformManager.ts (line 104) and EditorTransformManager.ts (line 471) now correctly select/start dragging entities with parallax != 1.
SceneInteraction.ts (line 65) has also been updated to use the same contract so that runtime clicks on parallax entities don't suffer from the same error.
Added regression tests: editor-snapping-system.test.ts (line 129) and scene-interaction.test.ts (line 61).
- Refactored api.setInterval and api.setTimeout to use engine-ticked custom timers instead of native JS timers.

- Added support for scene-bound and global script scopes (api.makeGlobal()).

- Scripts now automatically pause when their bound scene unloads and resume when it reloads.

- Added api.wait(ms) for asynchronous pause-aware delay.

- Exposed getScriptRuntimeState for debug profiling.

- Updated ScriptSys.md to detail lifecycle, scopes, and async limits.
@KudenikovNS KudenikovNS deleted the scene-refact3 branch May 13, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants