# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 0.2.0 (2023-06-01)
### Chore
- add serde to bones color.
Add serde Serialize / Deserailize to bones color.
### Documentation
- update changelogs.
### New Features
- upgrade to Bevy 0.10.
- implement `BonesBevyAssetLoad` for `Duration`.
- add time resource + sync system
- implement BonesBevyAssetLoad for `Key`.
This makes it easier to deserialize `Key`s in bevy assets.
### Bug Fixes
- makes bones asset path representation more consistent.
Previously the normalize method on a bones path would remove the leading
`/` to make it support Bevy paths, which can't start with a `/`, but
this was not consistent with the way that the handle was serialized.
Now, the bones path representations always maintain the leading `/` to
indicate a root path, and the leading `/` is removed when converting to
a Bevy handle.
This fixes issues run into when trying to read serialized bones handles
during map saving in Jumpy.
### New Features (BREAKING)
- add `from_world` implementation similar to Bevy.
Allows resources to be added with either a `Default` implementation,
or a custom `FromWorld` implementation that allows them to derive their,
value from any other data currently in the world.
### Commit Statistics
- 8 commits contributed to the release over the course of 119 calendar days.
- 133 days passed between releases.
- 8 commits were understood as [conventional](https://www.conventionalcommits.org).
- 8 unique issues were worked on: [#102](https://github.com/fishfolk/bones/issues/102), [#106](https://github.com/fishfolk/bones/issues/106), [#112](https://github.com/fishfolk/bones/issues/112), [#122](https://github.com/fishfolk/bones/issues/122), [#124](https://github.com/fishfolk/bones/issues/124), [#83](https://github.com/fishfolk/bones/issues/83), [#92](https://github.com/fishfolk/bones/issues/92), [#95](https://github.com/fishfolk/bones/issues/95)
### Commit Details
view details
* **[#102](https://github.com/fishfolk/bones/issues/102)**
- implement `BonesBevyAssetLoad` for `Duration`. ([`e7330d9`](https://github.com/fishfolk/bones/commit/e7330d9cdb590564c3c01255401d8530425e18f0))
* **[#106](https://github.com/fishfolk/bones/issues/106)**
- makes bones asset path representation more consistent. ([`632ef4e`](https://github.com/fishfolk/bones/commit/632ef4e2d7647f6cb704a1b5eaeb2fbba9562314))
* **[#112](https://github.com/fishfolk/bones/issues/112)**
- add serde to bones color. ([`c57a208`](https://github.com/fishfolk/bones/commit/c57a2089f4dcf6bd63e8f0e0609cf6ff3506084f))
* **[#122](https://github.com/fishfolk/bones/issues/122)**
- upgrade to Bevy 0.10. ([`3f2e348`](https://github.com/fishfolk/bones/commit/3f2e3485f9556cc68eb4c04df34d3aa2c6087330))
* **[#124](https://github.com/fishfolk/bones/issues/124)**
- update changelogs. ([`3f18051`](https://github.com/fishfolk/bones/commit/3f18051e023a4deb676a5f895f1478beda513f04))
* **[#83](https://github.com/fishfolk/bones/issues/83)**
- implement BonesBevyAssetLoad for `Key`. ([`a699f5d`](https://github.com/fishfolk/bones/commit/a699f5d9254037d6127becae77f09527759fd408))
* **[#92](https://github.com/fishfolk/bones/issues/92)**
- add `from_world` implementation similar to Bevy. ([`00110c2`](https://github.com/fishfolk/bones/commit/00110c27b0aa76ed597c7e4d62bec70cfd1b2a23))
* **[#95](https://github.com/fishfolk/bones/issues/95)**
- add time resource + sync system ([`605345b`](https://github.com/fishfolk/bones/commit/605345bd3d4fa2f8f540ae106b114d52c45b904a))
## 0.1.0 (2023-01-18)
### Chore
- add missing crate descriptions.
### Chore
- generate changelogs for all crates.
### Documentation
- document source repository in cargo manifest.
The `repository` key under `bones_ecs` previously pointed to https://github.com/fishfolk/jumpy.
This updates this to point to the bones repo, and also adds the `repository` key to the other
crates in the repository.
### New Features
- implement `BonesBevyAssetLoad` for more types.
Added implementations for `Option`, `HashMap`,
and `bevy_utils::HashMap` when the values implement
`BonesBevyAssetLoad`.
- add extra derive support & type implementations.
- The derive macro for `BonesBevyAssetLoad` can now be used on enums.
### Style
- use `if let` statement instead of `Option::map()`
### New Features (BREAKING)
- add asset integration with bevy.
This is a big overall change that adds ways to integrate Bones with bevy assets.
### Refactor (BREAKING)
- prepare for release.
- Remove `bones_has_load_progress`: for now we don't use it, and if we
want something similar we will work it into `bones_bevy_asset`.
- Remove `bones_camera_shake`: it was moved into `bones_lib::camera`.
- Add version numbers for all local dependencies.
- make world in `BevyWorld` resource optional.
Since the bevy world can't be cloned, we previously had it in
an Arc, but that didn't play nicely with world snapshots.
Now the bevy world inside the `BevyWorld` resource is an
option, with the `BevyAssets` system param panicking if it
doesn't find the world when it needs it.
### Commit Statistics
- 12 commits contributed to the release over the course of 14 calendar days.
- 10 commits were understood as [conventional](https://www.conventionalcommits.org).
- 9 unique issues were worked on: [#29](https://github.com/fishfolk/bones/issues/29), [#33](https://github.com/fishfolk/bones/issues/33), [#37](https://github.com/fishfolk/bones/issues/37), [#39](https://github.com/fishfolk/bones/issues/39), [#41](https://github.com/fishfolk/bones/issues/41), [#52](https://github.com/fishfolk/bones/issues/52), [#63](https://github.com/fishfolk/bones/issues/63), [#65](https://github.com/fishfolk/bones/issues/65), [#67](https://github.com/fishfolk/bones/issues/67)
### Commit Details
view details
* **[#29](https://github.com/fishfolk/bones/issues/29)**
- add asset integration with bevy. ([`89b44d7`](https://github.com/fishfolk/bones/commit/89b44d7b4f64ec266eb0ea674c220e07376a03b7))
* **[#33](https://github.com/fishfolk/bones/issues/33)**
- add derive macro for `BonesBevyAssetLoad`. ([`3206a4d`](https://github.com/fishfolk/bones/commit/3206a4d9559df5e9aafdc22e7c464308e3a9eac7))
* **[#37](https://github.com/fishfolk/bones/issues/37)**
- document source repository in cargo manifest. ([`a693894`](https://github.com/fishfolk/bones/commit/a69389412d22b8cb48bab0ed96d739b0fee35348))
* **[#39](https://github.com/fishfolk/bones/issues/39)**
- add extra derive support & type implementations. ([`7fd1c59`](https://github.com/fishfolk/bones/commit/7fd1c592c61e3032d803b8f70364b826b4a9ebaf))
* **[#41](https://github.com/fishfolk/bones/issues/41)**
- make world in `BevyWorld` resource optional. ([`ef12c3f`](https://github.com/fishfolk/bones/commit/ef12c3fb681cc826199b1564e1a033a56a5ce2d4))
* **[#52](https://github.com/fishfolk/bones/issues/52)**
- use `if let` statement instead of `Option::map()` ([`de43e3c`](https://github.com/fishfolk/bones/commit/de43e3cf45b9108bebecd4196aa7524c87758e35))
* **[#63](https://github.com/fishfolk/bones/issues/63)**
- prepare for release. ([`ae0a761`](https://github.com/fishfolk/bones/commit/ae0a761fc9b82ba2fc639c2b6f7af09fb650cd31))
* **[#65](https://github.com/fishfolk/bones/issues/65)**
- add missing crate descriptions. ([`2725246`](https://github.com/fishfolk/bones/commit/27252465ad0506ff2f8c377531fa079ec64d1750))
* **[#67](https://github.com/fishfolk/bones/issues/67)**
- generate changelogs for all crates. ([`a68cb79`](https://github.com/fishfolk/bones/commit/a68cb79e6b7d3774c53c0236edf3a12175f297b5))
* **Uncategorized**
- Release bones_bevy_asset_macros v0.2.0, bones_bevy_asset v0.1.0, bones_bevy_renderer v0.1.0, safety bump 2 crates ([`7f7bb38`](https://github.com/fishfolk/bones/commit/7f7bb38fca7b54fd1ad408bd63f63515d07ef2ab))
- Release type_ulid_macros v0.1.0, type_ulid v0.1.0, bones_bevy_utils v0.1.0, bones_ecs v0.1.0, bones_asset v0.1.0, bones_input v0.1.0, bones_render v0.1.0, bones_lib v0.1.0 ([`db0333d`](https://github.com/fishfolk/bones/commit/db0333ddacb6f29aed8664db67973e72ea586dce))
- implement `BonesBevyAssetLoad` for more types. ([`c0a14c5`](https://github.com/fishfolk/bones/commit/c0a14c5681a82d8e2db725a678b3dbccfa8a80b4))