Supports Godot 4.5+
Island Builder (Breaking!)
Complete refactor! Island generation has changed, so you may need to do some migration!
- Island Builder is now entirely isolated to Rust, so it can be used outside of Godot if desired.
- New
IslandBuilderSettingsresource and associated sub-resources, allowing you to easily share the same settings between many islands. - Added
addons/stag_toolkit/island_builder/default_settingsproject setting to specify whatIslandBuilderSettingsresource to use as default if none are provided. - New
IslandBuilderSettingsTweaksresource which allow you to specify per-island random seeds. - Added Ambient Occlusion baking. This is really slow, but can be automated with a level build pipeline.
- Mesh normals are now weighted by face-area to reduce artifacts.
- There are now multiple noise steps, allowing for rockier islands with more striations.
- Added an editor gizmo that displays the voxel boundaries and voxel size of the island once serialized.
- Very destructive operations are now locked behind a checkbox in the builder UI
- Memory and threading optimizations
- Island Previews now use rust-native threads and a swap buffer to improve speed and stability.
- Known issue: If the island input is changed while the preview is generating, the preview will not re-generate again to show the new change. I will fix this in a patch.
I plan to make a video tutorial on how to use the new Island Builder in the near-ish future.
StagTest (Breaking!)
- SignalExpector no longer requires an argument to specify how many variables are passed with a signal (thanks to Godot implementing variadic functions (godotengine/godot#82808)
- StagTest will now detect script errors,
push_errorandassertand fail the test. - Added
--suffixes=command-line option to specify what files should be opened as tests (i.e. I want to open only--suffixes=.tscnfiles, instead of--suffixes=.tscn,.scn)
Miscellaneous
- Update to Godot 4.5, godot-rust v0.4.2
- Added StagLogger class for error catching and granular logs (i.e. disabling certain log levels, or logging to a temp file)
- Added
StagUtils.walk_directorymethod for easily gathering lists of resources SimulatedRopeBindingdrops reference to boundSimulatedRopewhen the rope exits the scene tree (...please remove yourSimulatedRopefrom the scene tree before freeing it!)- Fix SimpleLOD not properly removing collision-only meshes when using
--importflag - Fix SimpleLOD import failing if values are not configured
- Improve internal benchmarks
Experimental
Add StagPhysicsServer class. This has not been thoroughly tested and needs refinement as I figure out what I'm doing, so expect a lot of breaking changes! The intent of this node is to provide parallelization options for physics operations like raycasting (i.e. rope collision).
Full Changelog: v0.4.1...v0.5.0