-
-
Notifications
You must be signed in to change notification settings - Fork 4k
Generalised ECS reactivity with Observers #10839
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
136 commits
Select commit
Hold shift + click to select a range
001f900
Initial hooks implementation
james-j-obrien 26edb73
Perf improvements, archetype flags
james-j-obrien 4eb9a80
Refactoring
james-j-obrien e174cd8
Improve command application logic
james-j-obrien abc728b
Simplify command application to get recursive ordering
james-j-obrien 06d4db6
First docs and safety comment pass
james-j-obrien dec4cec
Miri pass
james-j-obrien 6589b9f
Add missing cfg(test)
james-j-obrien 43d7c74
Tidy iterator chains
james-j-obrien 3d55037
Cleanup
james-j-obrien 9754ae9
CI pass
james-j-obrien d237d0b
Re-generate README.md
james-j-obrien 79bbe67
Add missing safety comment
james-j-obrien ce371fc
Simplify asserts
james-j-obrien bbecffa
Relax restrictions on register_component
james-j-obrien 3600bee
Update example comments
james-j-obrien 1ffe76c
Initial implementation
james-j-obrien 779eabe
Initial hooks implementation
james-j-obrien 6ae319e
Perf improvements, archetype flags
james-j-obrien 5c47028
Refactoring
james-j-obrien cdd1ee0
Improve command application logic
james-j-obrien 21cd650
Simplify command application to get recursive ordering
james-j-obrien 4e08655
First docs and safety comment pass
james-j-obrien b620001
Miri pass
james-j-obrien 9b76944
Add missing cfg(test)
james-j-obrien 924fb5d
Tidy iterator chains
james-j-obrien d23d1b2
Cleanup
james-j-obrien 9b490ad
CI pass
james-j-obrien b7e5462
Re-generate README.md
james-j-obrien a4d164a
Add missing safety comment
james-j-obrien 78207c3
Simplify asserts
james-j-obrien a7b5f28
Relax restrictions on register_component
james-j-obrien 7ab60b9
Update example comments
james-j-obrien ae26886
API improvements, simplify some usages of unsafe
james-j-obrien b61f62a
Rebase main.
james-j-obrien 029f09f
Merge component-hooks
james-j-obrien 388036f
More complete example
james-j-obrien 8b15ee1
Additional comments
james-j-obrien f374ee8
Fix typo
james-j-obrien 4d1c719
Move command queue's off the function stack to prevent overflows
james-j-obrien ea80aa0
Merge hooks
james-j-obrien 6682da3
Remove unused code
james-j-obrien a52837c
Strip more code
james-j-obrien 615e232
Major cleanup
james-j-obrien a5e5f53
Add data_ptr
james-j-obrien 283c44d
Avoiding spawning entity during world bootstrap
james-j-obrien 91797f6
Move AttachObserver back to SparseSet
james-j-obrien 3bef2ce
Add method to register hooks in component trait definition
james-j-obrien 13240f0
Merge branch 'component-hooks' into observers
james-j-obrien 9cdb86f
Merge hooks, refactor to take advantage
james-j-obrien 233fd30
Remove most instances of unsafe in DeferredWorld
james-j-obrien ce47702
Merge main, revert to UnsafeWorldCell, incorporate other feedback
james-j-obrien cdde4d2
Simplify code in BundleInserter
james-j-obrien fa42ed2
Partial FnMut implementation
james-j-obrien 298c598
Address non-complex feedback
james-j-obrien 2e09bd4
Merge branch 'main' into component-hooks
james-j-obrien d800e7b
Merge main
james-j-obrien 642fb43
Address soundness concerns
james-j-obrien 95cfbe3
Improve docs
james-j-obrien ee8a9a4
Merge main
james-j-obrien 55b73fd
Merge main
james-j-obrien 1600f4b
Merge component-hooks
james-j-obrien 0dfe890
System refactor
james-j-obrien 940efbe
Clean-up
james-j-obrien ffecc78
Fix doc tests
james-j-obrien 49ee3eb
System refactor, merge main
james-j-obrien 6c948d4
Merge main
james-j-obrien 961bff7
Remove In<>
james-j-obrien dcee208
Add bundle generic
james-j-obrien 43f6d43
Minor fixes
james-j-obrien 22ed176
Incorporate feedback, fix command application
james-j-obrien 9bc868b
Merge branch 'main' into component-hooks
james-j-obrien e92c745
Fix example metadata, simplify flush_commands
james-j-obrien fe4fca3
Remove missing doc link
james-j-obrien 1c2b188
Improve documentation
james-j-obrien a1a1eeb
Merge main
james-j-obrien 329544a
Clean up pass: tidy up code, make APIs more consistent, add prelimina…
james-j-obrien 3f9c119
Minor safety doc fix
james-j-obrien 2615958
Merge branch 'main' into observers
james-j-obrien 84c8531
Doc fixes
james-j-obrien 277d301
Allow DeferredWorld as a system parameter, clean up docs
james-j-obrien 0022c7c
Improve handling of command queue buffers
james-j-obrien bf5a6fe
Merge branch 'main' into component-hooks
james-j-obrien 9091800
Merge main
james-j-obrien c8df047
Merge main
james-j-obrien 84ff2c7
Elaborate on ObserverSystem
james-j-obrien 43c5aec
Merge main
james-j-obrien 42de22b
Spelling and typos
james-j-obrien 6b64539
Fix lints
james-j-obrien 8c0f855
Typos
james-j-obrien de77347
Merge main
james-j-obrien 238aa90
Cleanup unsafe code, simplify types and trait definitions
james-j-obrien 8db24ac
CI Fixes
james-j-obrien 5faba35
Fix bugs, add tests
james-j-obrien 19e55c0
Revamp example
james-j-obrien 4678743
Merge branch 'main' into observers
james-j-obrien 09fc6b7
CI Fixes
james-j-obrien b025837
Slightly tidy up example
james-j-obrien 4ddbb94
Minor example tidying
james-j-obrien 50c8c71
Minor cleanup
james-j-obrien df1f0b8
Merge main
james-j-obrien a6732fe
Satisfy MIRI at the cost of performance
james-j-obrien 4e41128
Merge branch 'main' into observers
james-j-obrien ae56005
Merge main, incorporate some feedback
james-j-obrien 908cdbb
Rebrand ECS events as Triggers
james-j-obrien f2b29f8
Apply easy doc improvements
james-j-obrien 5757352
Merge branch 'main' into observers
james-j-obrien 9fa8e9f
Merge branch 'observers' of https://github.com/james-j-obrien/bevy in…
james-j-obrien 890d8fb
Improve `EntityCommands::observe` docs
alice-i-cecile e0ac5db
Better notes
alice-i-cecile a8bc2f0
Make Observers directly spawnable, auto-init, improve trigger API, Ap…
cart b5d3304
Remove println
cart 39c9000
Event + Trigger unification renames.
cart 65f7587
Renames: ObserverSystemComponent -> Observer, ObserverComponent -> Ob…
cart e91dfb7
Despawn Observers if all of their entity targets have been despawned
cart d27ccfe
Remove unused Components field on Commands
cart 28b18e6
Merge remote-tracking branch 'upstream/main' into pr/james-j-obrien/1…
cart b5d9ef0
Implement SystemParam::queue for Commands
cart 5be1dbe
Commit correct file for SystemParam::queue Commands impl :)
cart 9303a4a
Rework CommandQueue application logic to apply commands at the right …
cart de76720
Add panic recovery
cart 79596ce
Merge remote-tracking branch 'origin/main' into pr/james-j-obrien/108…
cart 03ef65b
Merge remote-tracking branch 'origin/main' into pr/james-j-obrien/108…
cart c2a43af
Clippy
cart 76c6543
Update observers example to illustrate Observer components and reuse
cart ed58fab
Rename "source" concept to "entity"
cart cfb5ca1
Don't spawn observers on their target entities (this was an accident)
cart 8040b94
Resolve some comments
cart 949a3d4
Remove some duplicate code
cart 9b2c982
Rename emit_trigger module to trigger_event
cart af4c082
Do a full flush (including entities) in command queue application ins…
cart 1017f39
Add primary / top level observer docs
cart 85004b4
Update example readme
cart 1a5846a
Add missing World to readme example
cart 6277f00
Flag observer example for wasm builds
cart 85ff016
Set wasm=true explicitly
cart File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.