atomicbeef 0907ec1d94
Use a SystemSet for system ordering (#5)
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>
2023-11-10 07:55:23 +00:00

2.4 KiB

Features

Lots of space to play in.

This is a simple floating origin plugin, useful if you want to work with very, very large scales. It works with bevy's existing f32-based Transforms, which means it's largely compatible with the bevy ecosystem.

The plugin is generic over a few integer types, to trade off scale and precision for memory use. Some fun numbers with a worst case precision of 0.5mm:

  • i8: 2,560 km = 74% of the diameter of the Moon
  • i16: 655,350 km = 85% of the diameter of the Moon's orbit around Earth
  • i32: 0.0045 light years = ~4 times the width of the solar system
  • i64: 19.5 million light years = ~100 times the width of the milky way galaxy
  • i128: 3.6e+26 light years = ~3.9e+15 times the width of the observable universe

From the docs: https://docs.rs/big_space/latest/big_space/struct.GridCell.html

Bevy Version Support

I intend to track the main branch of Bevy. PRs supporting this are welcome!

bevy big_space
0.12 0.4
0.11 0.3
0.10 0.2
0.9 0.1

License

This project is dual licensed:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.