Releases: libriscv/godot-sandbox
v0.8: Basic Node API in Rust, improved C++ API
In this release, the Rust API has received basic support for Node as well as the ability to make function calls into the engine. With that it's possible to do some basic scripting in Rust. In C++ the Node and Object API is now more complete with full support for methods, properties and signals. Node manipulation should also be complete with both regular and deferred operations.
Note: Use to docker pull
to get the latest C++ or Rust compiler containers.
What's Changed
- Add basic exception handling in guest C++ programs by @fwsGonzo in #55
- Improve Rust compiler feedback, print using array by @fwsGonzo in #56
Full Changelog: v0.7...v0.8
v0.7: API and stability improvements
Add access to certain global objects, like Engine, Input. Add access to current scene tree. Add property get/set for objects. Fixed some bugs with C++ guest strings and vectors.
There is now a demo project that showcases this Godot extension.
If you're updating from a previous version, remember to docker pull
the Docker containers for each language.
Full Changelog: v0.6...v0.7
v0.6: API additions and improvements
In this release a demo project has been used to test the ability of the sandboxing extension.
- Basic Node3D support added
- Method-call support for nodes (call, call_deferred)
- Node get(), get_children(), get_method_list()
- Variant StringName support
- Variant destructor now has native performance
- main() is now optional in C++
Full Changelog: v0.5...v0.6
v0.5: Node and Node2D API for C++
It's now possible to set ELF scripts directly as scripts to any node. This means you can't access the Sandbox underneath, but it simplifies usage greatly. Public functions are still exposed, so that eg. signals can be connected and functions like _ready
also work. These scripts will auto-create a Sandbox instance and share it among themselves, making it scalable. In the future, a property may be used to toggle between shared and dedicated sandbox for each instance.
A new Node and Node2D API has been implemented for C++, allowing access to Node duplication, freeing and child management. For Node2D all normal operations (position, rotation etc.) are supported.
What's Changed
- Implement basic Vector and Node2D API for C++ by @fwsGonzo in #50
- Add support for setting scripts directly onto nodes, and basic signal… by @fwsGonzo in #51
Full Changelog: v0.4...v0.5
v0.4: Rust support
Basic support for the Rust language has been implemented. Both Docker container and editor support.
What's Changed
- Add support for Rust in Godot editor by @fwsGonzo in #47
- Docker build and Rust icon by @Ughuuu in #48
Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.3...
v0.3: Script interface
This release implements ScriptInterface, so that auto-completion is possible in other scripts using @export var
. This is documented here.
The C++ container is also updated to build in parallel, greatly reducing compilation times. Remember to docker pull
!
Thanks to @Ughuuu for the idea and implementation.
Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.2...
Godot Sandbox Initial Release
This release adds all the required basic functionality for scripting with sandboxed C++.
- Create a .cpp resource in a folder and save it in order to create a program (.elf)
- Create a Node that extends Sandbox, assign the Program. Now Sandbox functions are available.
- Docker is now managed from the editor.
- All C++ files in the same folder produce a single executable (in that folder).
- There is now a C++ API inside the Docker container that can be extracted:
docker exec -t godot-cpp-compiler bash /usr/api/build.sh --api
Full Changelog: https://github.com/libriscv/godot-sandbox/compare/v0.1...
Godot Sandbox Pre-Release
This release implements basic sandboxed C++ for the purposes of modding.
What's Changed
- Updated submodule libriscv by @fire in #2
- Add a github action. by @fire in #4
- Use godot engine name property. by @fire in #3
- Update libriscv for mac support. by @fire in #6
- Streamline the github actions configuration by @fire in #7
- Update godot to 4.2 godot-cpp and macos fixes by @fire in #9
- Mingw windows by @fire in #10
- Refactor actions. by @fire in #11
- Try to make godot-riscv work on windows. by @fire in #13
- add build system to build all supported platforms by @Ughuuu in #14
- Implement support for PACKED_BYTE_ARRAY by @fwsGonzo in #16
- Create resource loader for .elf by @Ughuuu in #18
- Use fast-path threaded dispatch for most platforms by @fwsGonzo in #19
Full Changelog: https://github.com/libriscv/godot-sandbox/commits/v0.1