This is just a patch release because of a hiccup during the release process for 0.21.1, but is otherwise identical.
- bevy: Upgrade to bevy 0.14.0 (#101) (3a952a24)
- bevy: Update for bevy 0.13 (#93) (50415e55)
- scorers: Add support for generic types in ScorerBuilder (#96) (98337faa)
- derive: using prelude rather than ecs::xyz in derive (#99) (128f55e0)
- set_unchecked: Add
set_uncheckedmethod toScore(#78) (e179cb53) - bevy: Migrated to Bevy 0.12 (#86) (69c3a4a5)
- bevy: Update to bevy 0.12.1 (#87) (6befa384)
- thinker: make ThinkerBuilder be Clone (2e493d6b)
- generics: support generic actions (#88) (7f5a3845)
- despawn: don't try to despawn if an entity doesn't exist (bdf51c32)
- bevy: Update to bevy 0.11 (#79) (72bb861f)
- bevy: Update to bevy 0.10 (#72) (66ece025)
Probably the biggest change in this release is removal of the blanket
ActionBuilder and ScorerBuilder implementations for Clone types. This is
a fairly significant breaking change, but one that is fairly easy to resolve:
simply use the new #[derive(ActionBuilder)] and #[derive(ScorerBuilder)]
macros to derive the necessary implementations for your Action and Scorer
Components and you should be good to go.
- derive: Add derive macros for Action and Scorer (#65) (359bccef)
- BREAKING CHANGE: This gets rid of the blanket implementation for Action/ScorerBuilder on Clone things, and instead requires that people use derive macros (or manually implement the traits), if they want to go the clone-to-instantiate route.
- concurrenty: Add ConcurrentMode configuration to Concurrently Action (#68) (f6d04feb)
- reflection: Implement Reflect trait for all relevant types (#69) (31543c78)
- deps: Update to Bevy 0.9 (#59) (8ce5cd1b)
- spans: Make ActionSpan::new() private (4486af1d)
- BREAKING CHANGE: This function was previously public, but it was never meant to be used.
This is a fairly beefy release. The two main changes are the addition of significant new observability features, which let you debug/trace both big-brain and your own Scorers and Actions more easily in an integrated manner. Additionally, a new advanced composite Scorer was added, MeasuredScorer, which can be used to create some interesting behaviors when you have want to factor in multiple scorers when adding cases to Thinker.
Besides that, there's several bugfixes to long-standing bugs and a couple of other features.
Enjoy!
- entities: Rename ActionEnt and ScorerEnt to Action and Scorer (43f37959)
- BREAKING CHANGE: These are externally-exported, so you'll have to rename them yourself, too
- tracing: add tracing support for Thinker/Action/Scorer (#55) (a32bc01d)
- BREAKING CHANGE: In the process of doing this,
spawn_actionandspawn_scorerwere moved out ofActionBuilderandScorerBuildertraits, respectively. This will likely affect any user-side composite actions and scorers. Usescorers::spawn_scorerandactions::spawn_actioninstead.
- BREAKING CHANGE: In the process of doing this,
- thinker: Add support for scheduling one-off Actions on a Thinker (#57) (382d2014)
- measures: Implement MeasuredScorer and some initial measures (#54) (c6a6c5c9)
- actions,scorers: Transform/GlobalTransform are no longer needed for hierarchies. (df10f034)
- tracing: fix warnings and wrong cfg feature name (5ff39632)
- thinker:
otherwiseclause no longer overrides running action (#56) (849ab346)- BREAKING CHANGE: This patch changes the behavior for
otherwisesuch that it won't override an existing action if it's still running, but it'll still execute as soon as that action finishes. I think this is really what people expect this to do, so let's give it a shot!
- BREAKING CHANGE: This patch changes the behavior for
- tracing: drop action span scope before spawning next action (ee899e4a)
- scorers: make ScorerEnt public (#50) (9e6d7f63)
- scorers: make FixedScore members pub (#49) (f0ddb9e5)
- picker: Implement a Highest Picker (#52) (4b48f94d)
- scorers: Add ProductOfScorers composite scorer (#51) (e425e234)
- actions: make ActionEnt public, too (fc30e752)
- prelude: Add ScorerEnt and ActionEnt to the prelude (08b0598b)
- bevy: Upgrade to Bevy 0.8. (#43) (0f0c4479)
- deps: upgrade to Bevy 0.7. (#37) (38688789)
This is my first pass at a significant API improvement. I iterated on it for a while and this is what I settled on. I look forward to continuing to evolve this API as I get more feedback and experience with it! Please let me know what you think!
- thinker: stop cancelling actions when they go under Picker thresholds (4c72b3d1)
- stages: Strongly typed stages for BigBrainPlugin (65ca646e)
- builders: Blanket impls for ActionBuilder and ScorerBuilder when Clone (8bed75b5)
- api: rename attach and hide it from docs (6c64df4f)
- choice: return &Choice instead of cloning (a76dcbb6)
- example: update thirst example (edecc4c9)
- hierarchy: make sure all the hierarchy stuff is set up properly (372c13e2)
- tests: update tests (94e1b1f6)
- deps: Don't include Bevy default features when used as a dependency. (#25) (61558137)
- license: change license to Apache-2.0 (d7d17772)
- BREAKING CHANGE: This is a significant licensing change. Please review.
- actions: Concurrently was not setting its state to Failure (d4a689f6)
Got a few goodies in this release, mainly focused around composite actions and scorers, which were apparently broken.
Shout out again to @piedoomy for some of these contributions!
- actions: Add new Concurrently composite action (6c736374)
- evaluators: added inversed linear evaluator helper (#19) (f871d19e)
- scorers: Added WinningScorer composite scorer (#20) (748b30ae)
- scorers: Composite Scorers now all use
.push()instead of a mixture of.push()and.when(). Please update any usages of composite scorers (63bad1fd
- scorers:
- evaluators: Make all evaluators Clone (4d5a5121)
Previously, if a Picker re-picked the same action, and that action had been
set to Success or Failure, it would just keep running the action in that
state until it was time to switch to a different one.
With this version, that behavior is changed, and Failure and Success
actions that are re-picked will be respawned entirely (not even reused).
Cheers to @piedoomy on Discord for pointing out this weird behavior!
- thinker: launch a new action when the current action is in an end state (80d23f2f)
Welp. Turns out Thinkers were completely broken? This should work better :)
- prelude: Export ThinkerBuilder from prelude (06cc03e1)
- thinker:
This fixes an issue with more children being added to an Actor causing Thinkers to get clobbered in really annoying ways.
- thinker: stop using the child/parent system for toplevel thinkers (db16e2f6)
This is a quick bugfix. Shoutout to @ndarilek for finding this one and giving me a chance to debug it!
tl;dr: Bevy's hierarchy system requires that all children have Transform
and GlobalTransform also attached, otherwise it just... kills them.
- scorer: stop attaching duplicate scorers (10a6d022)
- thinker: add Transform and GlobalTransform (ed3a7cb3)
Just a quick release because I broke docs.rs :)
- build: remove .cargo/config.toml to make docs.rs happy (393d9807)
This is a major overhaul of the Bevy API. It removes .ron support
altogether, in favor of plain old Rust builders.
- The
.ronThinker definition API is gone. Use the ThinkerBuilder API instead. - The
ActionandScorerderive macros are gone, including all ofbig_brain_derive. - Measures and Weights are gone.
big-brainno longer exports everything from the toplevel. Usebig_brain::prelude::*instead.
Probably.
- New builder-based Thinker API!
- Composite Scorers:
FixedScore,AllOrNothing, andSumOfScorers. - Composite Action:
Steps, for sequential Action execution.