Skip to content

Add scene object, global service and file API paths across all SDKs - #35

Merged
JamieW105 merged 2 commits into
mainfrom
feat/canonical-game-api-paths
Oct 14, 2026
Merged

JamieW105 merged 2 commits into
mainfrom
feat/canonical-game-api-paths

Conversation

@JamieW105

@JamieW105 JamieW105 commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

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.

@JamieW105
JamieW105 marked this pull request as ready for review October 14, 2026 01:52
@JamieW105
JamieW105 merged commit 66d1dc6 into main Oct 14, 2026
8 checks passed
@github-actions
github-actions Bot deleted the feat/canonical-game-api-paths branch October 14, 2026 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants