Repository navigation
Document scene object, global service and Explorer file API paths - #41
Merged
Merged
Conversation
JamieW105
added a commit
to Rustic-Game-Engine/engine
that referenced
this pull request
Oct 14, 2026
) Scene actions can now use `game.scene.SceneName.ObjectPath:api(...)` in Lua/Luau and the corresponding native member syntax in every other gameplay SDK. The path supplies the receiver, so a script attached to Controller can tween Player without passing Player again. Objectless services use `game.rustic`; Explorer-file operations use `game.rustic.files` and insert the selected source file into the correct argument position. Add receiver methods for tweens, movement, effects, cameras, physics, animation, signals, groups/tags, hierarchy, lifetime and components; retain existing API tables for compatibility. Resolve canonical scene targets against the live world, including queued renames in the same callback. Cache Lua/Luau file children so repeated audio selections share their decoded clip. Update generated editor declarations and engine documentation. C uses explicit receiver values because it has no implicit method receiver. Validation: - `RUSTIC_REQUIRE_ALL_SDKS=1 cargo test -p engine-scripting -p engine-play --lib`: 113 tests pass. The new real-runtime fixture executes all ten scripting types, verifies a renamed target, receiver argument placement, Python/PHP named arguments, a global timer and an Explorer file operation; the script owner remains unchanged. - `cargo clippy -p engine-scripting -p engine-play --all-targets -- -D warnings` and `cargo fmt --all -- --check` pass. - Lua/Luau decoded-audio reuse tests pass; Python, JavaScript and PHP syntax checks pass; native C, C++, C# and Java SDKs compile and execute in the runtime tests. Windows installer validation remains blocked: the required `powershell -ExecutionPolicy Bypass -File ./tools/build-windows-installer.ps1` invocation fails because PowerShell is unavailable in this Linux environment. No fresh setup executable was produced. Keep this PR in draft until the Windows installer build passes. Companion website documentation PR: Rustic-Game-Engine/docs#41 Conflict resolution: merged current `main`, preserved SDK parity and canonical path APIs, and removed an automatically duplicated C++ method. Reran all 113 engine-play/engine-scripting tests with every SDK required; Clippy and formatting pass. Windows installer validation remains blocked because PowerShell is unavailable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scripts can address object APIs through
game.scene.SceneName.ObjectPath, global APIs throughgame.rustic, and file APIs throughgame.rustic.files.ExplorerPath. Add a reachable guide with setup, native syntax for every scripting language, receiver argument rules, file/audio behavior, compatibility and troubleshooting. Update generated API-reference sources and explain the JavaScript command flush that makes renamed scene targets resolve in the same callback.Validation: lint with zero warnings, production build, TypeScript checking, seven API-reference tests, documentation/content and exported-link checks, and dependency audit (zero vulnerabilities). Examples match the engine's all-ten-language runtime conformance test.
Companion engine PR: Rustic-Game-Engine/engine#35 (draft pending the required Windows installer build).