bevy_registry_export 0.4.0

Allows you to create a Json export of all your components/ registered types of your Bevy app/game
Documentation
[![Crates.io](https://img.shields.io/crates/v/bevy_registry_export)](https://crates.io/crates/bevy_registry_export)
[![Docs](https://img.shields.io/docsrs/bevy_registry_export)](https://docs.rs/bevy_registry_export/latest/bevy_registry_export/)
[![License](https://img.shields.io/crates/l/bevy_registry_export)](https://github.com/kaosat-dev/Blender_bevy_components_workflow/blob/main/crates/bevy_registry_export/License.md)
[![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)

# bevy_registry_export (deprecated in favor of Blenvy)

> bevy_registry_export has been deprecated in favor of its successor [Blenvy]https://crates.io/crates/blenvy, part of the [Blenvy project]https://github.com/kaosat-dev/Blenvy. No further development or maintenance will be done for Bevy bevy_registry_export. See [#194]https://github.com/kaosat-dev/Blenvy/issues/194 for background.


This plugin allows you to create a Json export of all your components/ registered types.
Its main use case is as a backbone for the [```bevy_components``` Blender add-on](https://github.com/kaosat-dev/Blender_bevy_components_workflow/tree/main/tools/bevy_components), that allows you to add & edit components directly in Blender, using the actual type definitions from Bevy 
(and any of your custom types & components that you register in Bevy).


## Usage

Here's a minimal usage example:

```toml
# Cargo.toml
[dependencies]
bevy="0.14"
bevy_registry_export = "0.4"
```

```rust no_run
use bevy::prelude::*;
use bevy_registry_export::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            ExportRegistryPlugin::default() // will save your registry schema json file to assets/registry.json
        ))
        .run();
}

```

take a look at the [example](https://github.com/kaosat-dev/Blender_bevy_components_workflow/tree/main/examples/bevy_registry_export/basic/src/core/mod.rs) for more clarity


##  Installation

Add the following to your `[dependencies]` section in `Cargo.toml`:

```toml
bevy_registry_export = "0.4"

```

Or use `cargo add`:

```toml
cargo add bevy_registry_export
```

## Setup

```rust no_run
use bevy::prelude::*;
use bevy_registry_export::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins
            ExportRegistryPlugin::default()
        ))
        .run();
}

```

you can also configure the output path

```rust no_run
use bevy::prelude::*;
use bevy_registry_export::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins
            ExportRegistryPlugin {
                save_path: "assets/registry.json".into(),
                ..Default::default()
            },
        ))
        .run();
}

```

## Usage

- The output file will be generated in the ```Startup``` schedule whenever you run your app.
- Every time you compile & run your app, the output json file will be updated.

## Examples

All examples are here:

> the examples use ```bevy_gltf_blueprints``` with the **legacy_mode** set to **FALSE** as the new custom properties generated by the Blender add-on require newer/ non legacy logic.

- https://github.com/kaosat-dev/Blender_bevy_components_workflow/tree/main/examples/bevy_registry_export/basic


## Compatible Bevy versions

The main branch is compatible with the latest Bevy release, while the branch `bevy_main` tries to track the `main` branch of Bevy (PRs updating the tracked commit are welcome).

Compatibility of `bevy_registry_export` versions:
| `bevy_registry_export` | `bevy` |  `bevy_components (Blender add-on)` |
| :--                 | :--    |:--    |
| `0.4 `              | `0.14` | `0.3` |
| `0.3 `              | `0.13` | `0.3` |
| `0.2 `              | `0.12` | `0.3` |
| `0.1 `              | `0.12` | `0.1 -0.2` |
| branch `main`       | `0.12` | `0.1` |
| branch `bevy_main`  | `main` | `n/a` |


## Contributors

Thanks to all the contributors helping out with this project ! Big kudos to you, contributions are always appreciated ! :)
A big shout out to [killercup](https://github.com/killercup), that did the bulk of the Bevy side code !

## License

This crate, all its code, contents & assets is Dual-licensed under either of

- Apache License, Version 2.0, ([LICENSE-APACHE]./LICENSE_APACHE.md or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]./LICENSE_MIT.md or https://opensource.org/licenses/MIT)