mirror of
https://github.com/eliasstepanik/big_space_with_trim.git
synced 2026-01-11 18:08:28 +00:00
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>
54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
<div align="center">
|
|
|
|
# Big Space
|
|
|
|
[](https://crates.io/crates/big_space)
|
|
[](https://docs.rs/big_space)
|
|
[](https://github.com/aevyrie/big_space/actions/workflows/rust.yml)
|
|
[](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)
|
|
|
|
A floating origin plugin for [Bevy](https://github.com/bevyengine/bevy).
|
|
|
|
https://user-images.githubusercontent.com/2632925/215318129-5bab3095-a7dd-455b-a4b6-71840cde096c.mp4
|
|
|
|
### [Read the docs](https://docs.rs/big_space)
|
|
|
|
</div>
|
|
|
|
## 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 `Transform`s, 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:
|
|
|
|
* MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
|
|
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))
|
|
|
|
## 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.
|