Refactors plugins to make usage more flexible. Originally intended to
allow for running in the fixed update schedule, but decided against this
in favor of making plugins more granular, and realizing running in fixed
update wouldn't actually be desirable.
---------
Co-authored-by: Zachary Harrold <zac@harrold.com.au>
Migrate to the Bevy 0.15 RC.
- Migrate examples
- Add `with_child` to `ReferenceFrameCommands` and
`SpatialEntityCommands` to match Bevy's `EntityCommands::with_child`
- Add `Typed` bound to `GridPrecision` (required for `register_type`)
---------
Co-authored-by: Aevyrie <aevyrie@gmail.com>
Changes the design of the plugin to work with multiple, independent
high-precision hierarchies at the root with the `BigSpace` component at
the root of each of these hierarchies.
Closes#17Closes#19Closes#21
Adds the concept of reference frames, allowing hierarchies of high
precision objects, e.g. objects in the reference frame of a planet,
which is itself rotating, and orbiting about a star.
---------
Co-authored-by: Oliver Scherer <github@oli-obk.de>
Currently, when the `FloatingOrigin` component is removed from one
entity and added to another, no `GlobalTransform`s are updated. This can
cause problems for things like switching between playable characters
that are in different `GridCell`s.
---------
Co-authored-by: Aevyrie <aevyrie@gmail.com>
I ran into an issue when trying to add the transform propagation systems
to a schedule more than once. The app would panic because there was more
than one instance of `propagate_transforms::<P>` and
`recenter_transform_on_grid::<P>` in the system graph, so Bevy didn't
know how to actually resolve the dependencies. By using a `SystemSet`,
we can avoid this issue nicely.
Unfortunately, I couldn't come up with a good name for the set, so I
decided to stick the definition inside the `build()` method itself. That
way at least the poor naming won't be exposed 😛. It still feels a little
icky to me though.
---------
Co-authored-by: Aevyrie <aevyrie@gmail.com>
Co-authored-by: Pyxrs <simplycmd00@gmail.com>