Skip to content

v0.5.0

Latest

Choose a tag to compare

@arocull arocull released this 03 Nov 01:13

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 IslandBuilderSettings resource and associated sub-resources, allowing you to easily share the same settings between many islands.
  • Added addons/stag_toolkit/island_builder/default_settings project setting to specify what IslandBuilderSettings resource to use as default if none are provided.
  • New IslandBuilderSettingsTweaks resource 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_error and assert and 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=.tscn files, 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_directory method for easily gathering lists of resources
  • SimulatedRopeBinding drops reference to bound SimulatedRope when the rope exits the scene tree (...please remove your SimulatedRope from the scene tree before freeing it!)
  • Fix SimpleLOD not properly removing collision-only meshes when using --import flag
  • 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