Repository navigation
Add scene object, global service and file API paths across all SDKs - #35
Merged
Merged
Conversation
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.
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 usegame.rustic; Explorer-file operations usegame.rustic.filesand 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 warningsandcargo fmt --all -- --checkpass.Windows installer validation remains blocked: the required
powershell -ExecutionPolicy Bypass -File ./tools/build-windows-installer.ps1invocation 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.