#component #bevy #gamedev #registry #assets #bevy-plugin #json-file

bevy_registry_export

Allows you to create a Json export of all your components/ registered types of your Bevy app/game

6 releases (3 breaking)

0.4.0 Jul 18, 2024
0.3.1 Mar 18, 2024
0.2.0 Mar 4, 2024
0.1.1 Feb 7, 2024

#1428 in Game dev

Download history 129/week @ 2024-07-29 55/week @ 2024-08-05 53/week @ 2024-08-12 50/week @ 2024-08-19 65/week @ 2024-08-26 53/week @ 2024-09-02 54/week @ 2024-09-09 56/week @ 2024-09-16 86/week @ 2024-09-23 80/week @ 2024-09-30 10/week @ 2024-10-07 48/week @ 2024-10-14 36/week @ 2024-10-21 40/week @ 2024-10-28 57/week @ 2024-11-04 16/week @ 2024-11-11

151 downloads per month

MIT/Apache

20KB
311 lines

Crates.io Docs License Bevy tracking

bevy_registry_export (deprecated in favor of Blenvy)

bevy_registry_export has been deprecated in favor of its successor Blenvy, part of the Blenvy project. No further development or maintenance will be done for Bevy bevy_registry_export. See #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, 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:

# Cargo.toml
[dependencies]
bevy="0.14"
bevy_registry_export = "0.4"
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 for more clarity

Installation

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

bevy_registry_export = "0.4"

Or use cargo add:

cargo add bevy_registry_export

Setup

use bevy::prelude::*;
use bevy_registry_export::*;

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

you can also configure the output path

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.

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, that did the bulk of the Bevy side code !

License

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

Dependencies

~25–60MB
~1M SLoC