Skip to content

Commit

Permalink
Docs: Update README.md and MIGRATING.md for 0.12.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
ptsd committed Dec 15, 2024
1 parent 8db026e commit 87e2fc9
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 16 deletions.
35 changes: 35 additions & 0 deletions MIGRATING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
## 0.12.0

### Minimum `bevy` version is `0.15.0`

### Replaced `Xpbd` support with its replacement `Avian3d`

See [Rebrand Bevy XPBD](https://github.com/Jondolf/avian/issues/346).

Currently `Avian3D` has yet to publish an official `bevy:0.15` release, so you will need to use a crates-io patch to use this backend:

```toml
[dependencies]
avian3d = { version = "0.1" }
oxidized_navigation = { version = "0.12.0", features = ["avian"] }

[patch.crates-io]
avian3d = { git = "https://github.com/Jondolf/avian.git", branch = "main", rev = "52cbcec" }
```

### Removed `parry_<version>` features

If you were depending on the `parry_015` / `parry_016` features these have been replaced with a single `parry3d` feature that currently adds a dependency on `parry3d:0.17`:

```toml
# 0.11:
[dependencies]
parry3d = { version = "0.16" }
oxidized_navigation = { version = "0.11.0", features = ["parry_016"] }

# 0.12:
[dependencies]
parry3d = { version = "0.17" }
oxidized_navigation = { version = "0.12.0", features = ["parry3d"] }
```

## 0.7

### ``OxidizedNavigationPlugin`` is now generic over OxidizedColliders.
Expand Down
39 changes: 23 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Takes in [Parry3d](https://crates.io/crates/parry3d) colliders that implement th

## Quick-start:
**Nav-mesh generation:**
1. Choose which backend you're going to use (bevy_rapier3d, avian_3d, or custom parry3d based colliders) and enable the relevant crate features ("rapier", "avian", or "parry_016" features).
1. Choose which backend you're going to use (bevy_rapier3d, avian_3d, or custom parry3d based colliders) and enable the relevant crate features (`rapier`, `avian`, or `parry3d` features).
2. If you opted for custom parry3d colliders, implement the `OxidizedCollider` trait for your collider component that wraps a `parry3d::shape::SharedShape`. This is already done for `bevy_rapier3d` and `avian_3d`.
3. Add ``OxidizedNavigationPlugin`` as a plugin. (eg. for avian `OxidizedNavigationPlugin::<Collider>::new(NavMeshSettings {...}`)
4. Attach a ``NavMeshAffector`` component and a collider that implements the `OxidizedCollider` trait (already implemented for `bevy_rapier3d` and `avian_3d`) to any entity you want to affect the nav-mesh.
Expand Down Expand Up @@ -57,21 +57,28 @@ Debug draw is available behind the ``debug_draw`` feature and using the ``Oxidiz

## Supported versions

| Crate Version | Bevy Version | Bevy Rapier 3D Version | Bevy Xpbd 3D Version | Parry3d Version |
| ------------- | ------------ | ---------------------- | -------------------- | --------------- |
| 0.11.0 | 0.14 | 0.27 | 0.5 | 0.15/0.16 |
| 0.10.0 | 0.13 | 0.25 | 0.4 | 0.13 |
| 0.9.0 | 0.12 | 0.24 | 0.3 | 0.13 |
| 0.8.0 | 0.12 | 0.23 | 0.3 | 0.13 |
| 0.7.0 | 0.11 | 0.22 | 0.2 | 0.13 |
| 0.6.0 | 0.11 | 0.22 | unsupported | unsupported |
| 0.5.X | 0.10.X | 0.21 | unsupported | unsupported |
| 0.4.0 | 0.10.X | 0.21 | unsupported | unsupported |
| 0.3.0 | 0.10.0 | 0.21 | unsupported | unsupported |
| 0.2.0 | 0.9.X | 0.20 | unsupported | unsupported |
| 0.1.X | 0.9.X | 0.19 | unsupported | unsupported |

**Using an unsupported Rapier, Xpbd, or parry3d version will cause Oxidized Navigation to fail as it tries to get the wrong version of components.**
| Crate Version | Bevy Version | Bevy Rapier 3D Version | Bevy Xpbd 3D Version | Avian3D Version | Parry3d Version |
|---------------|--------------|------------------------|----------------------|---------------------|-----------------|
| 0.12.0 | 0.15 | 0.28 | unsupported | git-rev-52cbcec (1) | 0.17 |
| 0.11.0 | 0.14 | 0.27 | 0.5 | unsupported | 0.15/0.16 |
| 0.9.0 | 0.12 | 0.24 | 0.3 | unsupported | 0.13 |
| 0.10.0 | 0.13 | 0.25 | 0.4 | unsupported | 0.13 |
| 0.8.0 | 0.12 | 0.23 | 0.3 | unsupported | 0.13 |
| 0.7.0 | 0.11 | 0.22 | 0.2 | unsupported | 0.13 |
| 0.6.0 | 0.11 | 0.22 | unsupported | unsupported | unsupported |
| 0.5.X | 0.10.X | 0.21 | unsupported | unsupported | unsupported |
| 0.4.0 | 0.10.X | 0.21 | unsupported | unsupported | unsupported |
| 0.3.0 | 0.10.0 | 0.21 | unsupported | unsupported | unsupported |
| 0.2.0 | 0.9.X | 0.20 | unsupported | unsupported | unsupported |
| 0.1.X | 0.9.X | 0.19 | unsupported | unsupported | unsupported |

### (1)
- Avian3D has yet to publish an official bevy-0.15 release. There will be a 0.12.1 release when they do
- You will need to use a `[patch.crates-io]` override for now see [MIGRATING - 0.12.0](https://github.com/TheGrimsey/oxidized_navigation/blob/master/MIGRATING.md#0120)
- The minimum git rev sha supported is [52cbcec](https://github.com/Jondolf/avian/commit/52cbcecce0fd05a65005ab6935ebeb231373c2c6)
- Newer git revs will possibly (probably) work but are untested with this crate, YMMV 🤷🏼

**Using an unsupported Rapier, Xpbd, Avian3d or parry3d version will cause Oxidized Navigation to fail as it tries to get the wrong version of components.**
In this case you may be able to [override which version Oxidized Navigation depends on](https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html).

## Non-exhaustive TODO-list:
Expand Down

0 comments on commit 87e2fc9

Please sign in to comment.