Releases: YarnSpinnerTool/YarnSpinner-Rust
v0.6.0
What's Changed
- no-std support for runtime by @stargazing-dino in #239
- Improve cache by @janhohenheim in #241
- Fix clippy lints by @Person-93 in #248
- Fix LocalizedLine::text_for_attribute by @Person-93 in #251
- Bump to Bevy 0.17.0 rc by @janhohenheim in #252
- Fix oopses by @janhohenheim in #253
- put "line:" into const by @exoego in #254
- Use bevy's dynamic linking in CI by @Person-93 in #262
- Stop denying warnings in CI aside from lint job by @Person-93 in #261
- Replace git repo link by @Person-93 in #260
- Move some errors from runtime to compile time by @Person-93 in #259
- Bevy 0.17 by @Person-93 in #257
- Prep release by @janhohenheim in #265
New Contributors
- @Person-93 made their first contribution in #248
- @exoego made their first contribution in #254
Full Changelog: v0.5.0...v0.6.0
v0.6.0-rc
What's Changed
- no-std support for runtime by @stargazing-dino in #239
- Improve cache by @janhohenheim in #241
- Fix LocalizedLine::text_for_attribute by @Person-93 in #251
- Bump to Bevy 0.17.0 rc by @janhohenheim in #252
New Contributors
- @Person-93 made their first contribution in #248
Full Changelog: v0.5.0...v0.6.0-rc
v0.5.0
What's Changed
Bevy version
This release supports Bevy 0.16
Bevy systems as Yarn functions
@alec-deason has kindly spearheaded a long-requested feature. Yarn functions can now be regular Bevy systems! This means that your functions can query the ECS directly.
Take this dialogue for example:
<<if get_player_money() < 3>>
Shopkeeper: Sorry, you don't have enough cash on hand
<<else>>
Shopkeeper: Pleasure doing business with you!
<<subtract_money 3>>
<<endif>>
===
the relevant function looks like this:
fn get_player_money(wallet: Single<Wallet, With<Player>>) -> usize {
wallet.available_money()
}and is registered like that:
dialogue_runner
.library_mut()
.add_function("get_player_money", commands.register_system(get_player_money));Users that don't use Bevy are not affected by this. If you are interfacing deeply with the Yarn Spinner API, you should know that calls to Dialogue::continue_ should be replace with Dialogue::continue_with_world in Bevy contexts.
Function and Command unification
In Bevy, Yarn function and Yarn commands now work very similar under the hood. This means that some previous limitations, like having to provide In<()> to commands without params, no longer apply:
// before
fn refresh_health(_: In<()>, health: Single<&mut Health, With<Player>>) {
*health = 100.0;
}
// now
fn refresh_health(health: Single<&mut Health, With<Player>>) {
*health = 100.0;
}no_std progress
There's some progress towards #[no_std], kindly implemented by @stargazing-dino. Let's see if we can get Yarn Spinner running on a Game Boy Advance one day!
Migration
Yarn functions and commands are now registered systems, so we need to pass their system id instead of their function pointers when creating them:
// before
dialogue_runner
.commands_mut()
.add_command("change_sprite", change_sprite);
dialogue_runner
.library_mut()
.add_function("has_enough_money", has_enough_money);
// now
dialogue_runner
.commands_mut()
.add_command("change_sprite", commands.register_system(change_sprite));
dialogue_runner
.library_mut()
.add_function("has_enough_money", commands.register_system(has_enough_money));where commands is a good old mut commands: Commands.
New Contributors
- @alec-deason made their first contribution in #223
Full Changelog: v0.4.0...v0.5.0
v0.5.0-rc.1
What's Changed
- Update to Bevy 0.16.0-RC by @janhohenheim in #221
- Add missing feature by @janhohenheim in #222
Full Changelog: v0.4.0...v0.5.0-rc.1
v0.4.0
What's Changed
- Fix compiler error for 2024 edition by @janhohenheim in #208
- Fix CI by @janhohenheim in #212
- Invert text_for_attribute length assertion comparison by @soaosdev in #211
- Update to Bevy 0.15 by @wiggleforlife in #217
New Contributors
- @soaosdev made their first contribution in #211
- @wiggleforlife made their first contribution in #217
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- Don't panic on no function by @stargazing-dino in #180
- Pass thru markup error by @stargazing-dino in #179
- Add no program loaded error by @stargazing-dino in #181
- Implement a basic TUI example for using yarnspinner standalone (fixes #123) by @17cupsofcoffee in #182
- Fix variable storage not being updated with initial values from program by @stargazing-dino in #183
- add get_headers_for_node by @stargazing-dino in #185
- Fix CI by @stargazing-dino in #188
- Fixes for CI by @stargazing-dino in #190
- Make dialogue clone by @stargazing-dino in #189
- Fix dialogue variables not mimicking actual narrative variables by @stargazing-dino in #184
- Strip the BOM from the source string if it is present by @JoshLee0915 in #192
- Track KnownTypes per file by @zmbush in #193
- Update Checkout Action by @bash in #194
- Reduce proc-macro dependencies by @bash in #195
- Bump mio from 0.8.10 to 0.8.11 in the cargo group across 1 directory by @dependabot in #196
- Breaking: Replace Extension traits with one
TypedValuetrait by @bash in #197 - Replace hand-written
Debugimpls with derive by @bash in #198 - Support optional command arguments by @zmbush in #200
- Validate that optional params appear only at the end by @bash in #202
- Export
Optionalitymarkers by @zmbush in #203 - Upgrade to Bevy 0.14 by @janhohenheim in #207
New Contributors
- @17cupsofcoffee made their first contribution in #182
- @JoshLee0915 made their first contribution in #192
- @zmbush made their first contribution in #193
Full Changelog: v0.2.0...v0.3.0
v0.2.0
v0.1.0
Initial release