diff --git a/Cargo.toml b/Cargo.toml index f19a978..ecf33d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,9 @@ members = [ "examples/bevy_gltf_save_load/basic/", "examples/bevy_registry_export/basic", - "testing/bevy_registry_export/basic" + "testing/bevy_registry_export/basic", + "testing/bevy_example" + ] resolver = "2" diff --git a/testing/auto_export_template.blend b/testing/auto_export_template.blend new file mode 100644 index 0000000..a951a89 Binary files /dev/null and b/testing/auto_export_template.blend differ diff --git a/testing/bevy_example/Cargo.toml b/testing/bevy_example/Cargo.toml new file mode 100644 index 0000000..9b8d995 --- /dev/null +++ b/testing/bevy_example/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "bevy_example" +version = "0.3.0" +edition = "2021" +license = "MIT OR Apache-2.0" + +[dependencies] +bevy="0.12" +bevy_gltf_blueprints = { path = "../../crates/bevy_gltf_blueprints" } +bevy_registry_export = { path = "../../crates/bevy_registry_export" } +bevy_gltf_worlflow_examples_common = { path = "../../examples/common" } + +bevy_rapier3d = { version = "0.23.0", features = [ "serde-serialize", "debug-render-3d", "enhanced-determinism"] } +bevy_asset_loader = { version = "0.18", features = ["standard_dynamic_assets" ]} +bevy_editor_pls = { version = "0.6" } +rand = "0.8.5" diff --git a/testing/bevy_example/README.md b/testing/bevy_example/README.md new file mode 100644 index 0000000..5d2e087 --- /dev/null +++ b/testing/bevy_example/README.md @@ -0,0 +1,15 @@ +# Bevy registry export example/demo + +This example showcases +* the use of the bevy_registry_export crate to extract all components & types information into a json file. +* That file is then used by the [Blender addon](https://github.com/kaosat-dev/Blender_bevy_components_workflow/tree/main/tools/bevy_components) to create Uis for each component, +to be able to add & edit Bevy components easilly in Blender ! + + +## Running this example + +``` +cargo run --features bevy/dynamic_linking +``` + +Running the example also regenerates the registry.json file. diff --git a/testing/bevy_example/assets/assets_core.assets.ron b/testing/bevy_example/assets/assets_core.assets.ron new file mode 100644 index 0000000..8d0a099 --- /dev/null +++ b/testing/bevy_example/assets/assets_core.assets.ron @@ -0,0 +1 @@ +({}) \ No newline at end of file diff --git a/testing/bevy_example/assets/assets_game.assets.ron b/testing/bevy_example/assets/assets_game.assets.ron new file mode 100644 index 0000000..5b1e969 --- /dev/null +++ b/testing/bevy_example/assets/assets_game.assets.ron @@ -0,0 +1,6 @@ +({ + "world":File (path: "models/World.glb"), + "models": Folder ( + path: "models/library", + ), +}) \ No newline at end of file diff --git a/testing/bevy_example/assets/registry.json b/testing/bevy_example/assets/registry.json new file mode 100644 index 0000000..e104314 --- /dev/null +++ b/testing/bevy_example/assets/registry.json @@ -0,0 +1,10732 @@ +{ + "$defs": { + "(f32, f32)": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + }, + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "(f32, f32)", + "title": "(f32, f32)", + "type": "array", + "typeInfo": "Tuple" + }, + "alloc::borrow::Cow": { + "isComponent": false, + "isResource": false, + "short_name": "Cow", + "title": "alloc::borrow::Cow", + "type": "object", + "typeInfo": "Value" + }, + "alloc::borrow::Cow": { + "isComponent": false, + "isResource": false, + "short_name": "Cow", + "title": "alloc::borrow::Cow", + "type": "object", + "typeInfo": "Value" + }, + "alloc::string::String": { + "isComponent": false, + "isResource": false, + "short_name": "String", + "title": "alloc::string::String", + "type": "string", + "typeInfo": "Value" + }, + "alloc::vec::Vec<(f32, f32)>": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/(f32, f32)" + } + }, + "short_name": "Vec<(f32, f32)>", + "title": "alloc::vec::Vec<(f32, f32)>", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::TupleVec3" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/bevy_text::text::TextSection" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "alloc::vec::Vec": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "short_name": "Vec", + "title": "alloc::vec::Vec", + "type": "array", + "typeInfo": "List" + }, + "bevy_animation::AnimationClip": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "curves": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec>" + } + }, + "duration": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "paths": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap" + } + } + }, + "required": [ + "curves", + "paths", + "duration" + ], + "short_name": "AnimationClip", + "title": "bevy_animation::AnimationClip", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_animation::AnimationPlayer": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "animation": { + "type": { + "$ref": "#/$defs/bevy_animation::PlayingAnimation" + } + }, + "paused": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "paused", + "animation" + ], + "short_name": "AnimationPlayer", + "title": "bevy_animation::AnimationPlayer", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_asset::handle::Handle<()>": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId<()>" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle<()>", + "title": "bevy_asset::handle::Handle<()>", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle>": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId>" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle>", + "title": "bevy_asset::handle::Handle>", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::handle::Handle": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/std::sync::Arc" + } + } + ], + "short_name": "Strong", + "title": "Strong", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::id::AssetId" + } + } + ], + "short_name": "Weak", + "title": "Weak", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Handle", + "title": "bevy_asset::handle::Handle", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId<()>": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId<()>", + "title": "bevy_asset::id::AssetId<()>", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId>": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId>", + "title": "bevy_asset::id::AssetId>", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_asset::id::AssetId": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "index": { + "title": "index", + "type": { + "$ref": "#/$defs/bevy_asset::assets::AssetIndex" + } + } + }, + "required": [ + "index" + ], + "short_name": "Index", + "title": "Index", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "uuid": { + "title": "uuid", + "type": { + "$ref": "#/$defs/bevy_utils::Uuid" + } + } + }, + "required": [ + "uuid" + ], + "short_name": "Uuid", + "title": "Uuid", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "AssetId", + "title": "bevy_asset::id::AssetId", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_core::name::Name": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "hash": { + "type": { + "$ref": "#/$defs/u64" + } + }, + "name": { + "type": { + "$ref": "#/$defs/alloc::borrow::Cow" + } + } + }, + "required": [ + "hash", + "name" + ], + "short_name": "Name", + "title": "bevy_core::name::Name", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::bloom::settings::BloomCompositeMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "EnergyConserving", + "Additive" + ], + "short_name": "BloomCompositeMode", + "title": "bevy_core_pipeline::bloom::settings::BloomCompositeMode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_core_pipeline::bloom::settings::BloomPrefilterSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "threshold": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "threshold_softness": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "threshold", + "threshold_softness" + ], + "short_name": "BloomPrefilterSettings", + "title": "bevy_core_pipeline::bloom::settings::BloomPrefilterSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::bloom::settings::BloomSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "composite_mode": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::bloom::settings::BloomCompositeMode" + } + }, + "high_pass_frequency": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "intensity": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "low_frequency_boost": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "low_frequency_boost_curvature": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "prefilter_settings": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::bloom::settings::BloomPrefilterSettings" + } + } + }, + "required": [ + "intensity", + "low_frequency_boost", + "low_frequency_boost_curvature", + "high_pass_frequency", + "prefilter_settings", + "composite_mode" + ], + "short_name": "BloomSettings", + "title": "bevy_core_pipeline::bloom::settings::BloomSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::clear_color::ClearColor": { + "isComponent": false, + "isResource": true, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + ], + "short_name": "ClearColor", + "title": "bevy_core_pipeline::clear_color::ClearColor", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_core_pipeline::clear_color::ClearColorConfig": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Default" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + ], + "short_name": "Custom", + "title": "Custom", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "None" + } + ], + "short_name": "ClearColorConfig", + "title": "bevy_core_pipeline::clear_color::ClearColorConfig", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_core_pipeline::contrast_adaptive_sharpening::ContrastAdaptiveSharpeningSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "denoise": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "enabled": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "sharpening_strength": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "enabled", + "sharpening_strength", + "denoise" + ], + "short_name": "ContrastAdaptiveSharpeningSettings", + "title": "bevy_core_pipeline::contrast_adaptive_sharpening::ContrastAdaptiveSharpeningSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::core_2d::camera_2d::Camera2d": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "clear_color": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::clear_color::ClearColorConfig" + } + } + }, + "required": [ + "clear_color" + ], + "short_name": "Camera2d", + "title": "bevy_core_pipeline::core_2d::camera_2d::Camera2d", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::core_3d::camera_3d::Camera3d": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "clear_color": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::clear_color::ClearColorConfig" + } + }, + "depth_load_op": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::core_3d::camera_3d::Camera3dDepthLoadOp" + } + }, + "depth_texture_usages": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::core_3d::camera_3d::Camera3dDepthTextureUsage" + } + }, + "screen_space_specular_transmission_quality": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::core_3d::camera_3d::ScreenSpaceTransmissionQuality" + } + }, + "screen_space_specular_transmission_steps": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "clear_color", + "depth_load_op", + "depth_texture_usages", + "screen_space_specular_transmission_steps", + "screen_space_specular_transmission_quality" + ], + "short_name": "Camera3d", + "title": "bevy_core_pipeline::core_3d::camera_3d::Camera3d", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::core_3d::camera_3d::Camera3dDepthLoadOp": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Clear", + "title": "Clear", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "Load" + } + ], + "short_name": "Camera3dDepthLoadOp", + "title": "bevy_core_pipeline::core_3d::camera_3d::Camera3dDepthLoadOp", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_core_pipeline::fxaa::Fxaa": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "edge_threshold": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::fxaa::Sensitivity" + } + }, + "edge_threshold_min": { + "type": { + "$ref": "#/$defs/bevy_core_pipeline::fxaa::Sensitivity" + } + }, + "enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "enabled", + "edge_threshold", + "edge_threshold_min" + ], + "short_name": "Fxaa", + "title": "bevy_core_pipeline::fxaa::Fxaa", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::prepass::DepthPrepass": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "DepthPrepass", + "title": "bevy_core_pipeline::prepass::DepthPrepass", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::prepass::NormalPrepass": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "NormalPrepass", + "title": "bevy_core_pipeline::prepass::NormalPrepass", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_core_pipeline::tonemapping::DebandDither": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Disabled", + "Enabled" + ], + "short_name": "DebandDither", + "title": "bevy_core_pipeline::tonemapping::DebandDither", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_core_pipeline::tonemapping::Tonemapping": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "None", + "Reinhard", + "ReinhardLuminance", + "AcesFitted", + "AgX", + "SomewhatBoringDisplayTransform", + "TonyMcMapface", + "BlenderFilmic" + ], + "short_name": "Tonemapping", + "title": "bevy_core_pipeline::tonemapping::Tonemapping", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ecs::Entity": { + "isComponent": false, + "isResource": false, + "short_name": "Entity", + "title": "bevy_ecs::Entity", + "type": "object", + "typeInfo": "Value" + }, + "bevy_egui::EguiSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "default_open_url_target": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "scale_factor": { + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "scale_factor" + ], + "short_name": "EguiSettings", + "title": "bevy_egui::EguiSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::AComponentWithAnExtremlyExageratedOrMaybeNotButCouldBeNameOrWut": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "AComponentWithAnExtremlyExageratedOrMaybeNotButCouldBeNameOrWut", + "title": "bevy_example::test_components::AComponentWithAnExtremlyExageratedOrMaybeNotButCouldBeNameOrWut", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::BasicTest": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "a": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "b": { + "type": { + "$ref": "#/$defs/u64" + } + }, + "c": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + }, + "required": [ + "a", + "b", + "c" + ], + "short_name": "BasicTest", + "title": "bevy_example::test_components::BasicTest", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::EnumComplex": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Float", + "title": "Float", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + ], + "short_name": "Wood", + "title": "Wood", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_example::test_components::BasicTest" + } + } + ], + "short_name": "Vec", + "title": "Vec", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "SomeThing" + }, + { + "additionalProperties": false, + "properties": { + "a": { + "title": "a", + "type": { + "$ref": "#/$defs/f32" + } + }, + "b": { + "title": "b", + "type": { + "$ref": "#/$defs/u32" + } + }, + "c": { + "title": "c", + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + }, + "required": [ + "a", + "b", + "c" + ], + "short_name": "StructLike", + "title": "StructLike", + "type": "object", + "typeInfo": "Struct" + }, + { + "title": "None" + } + ], + "short_name": "EnumComplex", + "title": "bevy_example::test_components::EnumComplex", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_example::test_components::EnumTest": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Metal", + "Wood", + "Rock", + "Cloth", + "Squishy", + "None" + ], + "short_name": "EnumTest", + "title": "bevy_example::test_components::EnumTest", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_example::test_components::NestedTupleStuff": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + }, + { + "type": { + "$ref": "#/$defs/u64" + } + }, + { + "type": { + "$ref": "#/$defs/bevy_example::test_components::NestingTestLevel2" + } + } + ], + "short_name": "NestedTupleStuff", + "title": "bevy_example::test_components::NestedTupleStuff", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::NestingTestLevel2": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "basic": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::BasicTest" + } + }, + "color": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::TupleTestColor" + } + }, + "colors_list": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::VecOfColors" + } + }, + "enable": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "enum_inner": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::EnumTest" + } + }, + "nested": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::NestingTestLevel3" + } + }, + "text": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + }, + "toggle": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::TupleTestBool" + } + } + }, + "required": [ + "text", + "enable", + "enum_inner", + "color", + "toggle", + "basic", + "nested", + "colors_list" + ], + "short_name": "NestingTestLevel2", + "title": "bevy_example::test_components::NestingTestLevel2", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::NestingTestLevel3": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "vec": { + "type": { + "$ref": "#/$defs/bevy_example::test_components::TupleVec3" + } + } + }, + "required": [ + "vec" + ], + "short_name": "NestingTestLevel3", + "title": "bevy_example::test_components::NestingTestLevel3", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::TupleTest2": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + }, + { + "type": { + "$ref": "#/$defs/u64" + } + }, + { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + ], + "short_name": "TupleTest2", + "title": "bevy_example::test_components::TupleTest2", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleTestBool": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bool" + } + } + ], + "short_name": "TupleTestBool", + "title": "bevy_example::test_components::TupleTestBool", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleTestColor": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + ], + "short_name": "TupleTestColor", + "title": "bevy_example::test_components::TupleTestColor", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleTestF32": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "TupleTestF32", + "title": "bevy_example::test_components::TupleTestF32", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleTestStr": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + ], + "short_name": "TupleTestStr", + "title": "bevy_example::test_components::TupleTestStr", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleTestU64": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u64" + } + } + ], + "short_name": "TupleTestU64", + "title": "bevy_example::test_components::TupleTestU64", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleVec": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "TupleVec", + "title": "bevy_example::test_components::TupleVec", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleVec2": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + ], + "short_name": "TupleVec2", + "title": "bevy_example::test_components::TupleVec2", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleVec3": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + ], + "short_name": "TupleVec3", + "title": "bevy_example::test_components::TupleVec3", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::TupleVecF32F32": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec<(f32, f32)>" + } + } + ], + "short_name": "TupleVecF32F32", + "title": "bevy_example::test_components::TupleVecF32F32", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::UnitTest": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "UnitTest", + "title": "bevy_example::test_components::UnitTest", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_example::test_components::VecOfColors": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "VecOfColors", + "title": "bevy_example::test_components::VecOfColors", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::VecOfF32s": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "VecOfF32s", + "title": "bevy_example::test_components::VecOfF32s", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_example::test_components::VecOfVec3s2": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "VecOfVec3s2", + "title": "bevy_example::test_components::VecOfVec3s2", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_gltf::GltfExtras": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "value": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + }, + "required": [ + "value" + ], + "short_name": "GltfExtras", + "title": "bevy_gltf::GltfExtras", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_blueprints::animation::Animations": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "named_animations": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap, bevy_utils::hashbrown::hash_map::DefaultHashBuilder>" + } + } + }, + "required": [ + "named_animations" + ], + "short_name": "Animations", + "title": "bevy_gltf_blueprints::animation::Animations", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_blueprints::materials::MaterialInfo": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "name": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + }, + "source": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + }, + "required": [ + "name", + "source" + ], + "short_name": "MaterialInfo", + "title": "bevy_gltf_blueprints::materials::MaterialInfo", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_blueprints::spawn_from_blueprints::BlueprintName": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + ], + "short_name": "BlueprintName", + "title": "bevy_gltf_blueprints::spawn_from_blueprints::BlueprintName", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_gltf_blueprints::spawn_from_blueprints::SpawnHere": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "SpawnHere", + "title": "bevy_gltf_blueprints::spawn_from_blueprints::SpawnHere", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::camera::camera_replace_proxies::SSAOSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "SSAOSettings", + "title": "bevy_gltf_worlflow_examples_common::core::camera::camera_replace_proxies::SSAOSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTrackable": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "CameraTrackable", + "title": "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTrackable", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTracking": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "offset": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "offset" + ], + "short_name": "CameraTracking", + "title": "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTracking", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTrackingOffset": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + ], + "short_name": "CameraTrackingOffset", + "title": "bevy_gltf_worlflow_examples_common::core::camera::camera_tracking::CameraTrackingOffset", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_gltf_worlflow_examples_common::core::lighting::lighting_replace_proxies::AmbientLightSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "brightness": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + }, + "required": [ + "color", + "brightness" + ], + "short_name": "AmbientLightSettings", + "title": "bevy_gltf_worlflow_examples_common::core::lighting::lighting_replace_proxies::AmbientLightSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::lighting::lighting_replace_proxies::ShadowmapSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "size" + ], + "short_name": "ShadowmapSettings", + "title": "bevy_gltf_worlflow_examples_common::core::lighting::lighting_replace_proxies::ShadowmapSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::core::physics::physics_replace_proxies::AutoAABBCollider": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Cuboid", + "Ball", + "Capsule" + ], + "short_name": "AutoAABBCollider", + "title": "bevy_gltf_worlflow_examples_common::core::physics::physics_replace_proxies::AutoAABBCollider", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_gltf_worlflow_examples_common::core::physics::physics_replace_proxies::Collider": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Ball", + "title": "Ball", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + ], + "short_name": "Cuboid", + "title": "Cuboid", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Capsule", + "title": "Capsule", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "Mesh" + } + ], + "short_name": "Collider", + "title": "bevy_gltf_worlflow_examples_common::core::physics::physics_replace_proxies::Collider", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_gltf_worlflow_examples_common::game::picking::Pickable": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Pickable", + "title": "bevy_gltf_worlflow_examples_common::game::picking::Pickable", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_gltf_worlflow_examples_common::game::player::Player": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Player", + "title": "bevy_gltf_worlflow_examples_common::game::player::Player", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_hierarchy::components::children::Children": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/smallvec::SmallVec<[bevy_ecs::Entity; 8]>" + } + } + ], + "short_name": "Children", + "title": "bevy_hierarchy::components::children::Children", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_hierarchy::components::parent::Parent": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + ], + "short_name": "Parent", + "title": "bevy_hierarchy::components::parent::Parent", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_input::ButtonState": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Pressed", + "Released" + ], + "short_name": "ButtonState", + "title": "bevy_input::ButtonState", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_input::gamepad::AxisSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "deadzone_lowerbound": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "deadzone_upperbound": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "livezone_lowerbound": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "livezone_upperbound": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "threshold": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "livezone_upperbound", + "deadzone_upperbound", + "deadzone_lowerbound", + "livezone_lowerbound", + "threshold" + ], + "short_name": "AxisSettings", + "title": "bevy_input::gamepad::AxisSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::ButtonAxisSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "high": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "low": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "threshold": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "high", + "low", + "threshold" + ], + "short_name": "ButtonAxisSettings", + "title": "bevy_input::gamepad::ButtonAxisSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::ButtonSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "press_threshold": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "release_threshold": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "press_threshold", + "release_threshold" + ], + "short_name": "ButtonSettings", + "title": "bevy_input::gamepad::ButtonSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::Gamepad": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "id": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "id" + ], + "short_name": "Gamepad", + "title": "bevy_input::gamepad::Gamepad", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::GamepadAxis": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "axis_type": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::GamepadAxisType" + } + }, + "gamepad": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::Gamepad" + } + } + }, + "required": [ + "gamepad", + "axis_type" + ], + "short_name": "GamepadAxis", + "title": "bevy_input::gamepad::GamepadAxis", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::GamepadAxisType": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "LeftStickX" + }, + { + "title": "LeftStickY" + }, + { + "title": "LeftZ" + }, + { + "title": "RightStickX" + }, + { + "title": "RightStickY" + }, + { + "title": "RightZ" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u8" + } + } + ], + "short_name": "Other", + "title": "Other", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "GamepadAxisType", + "title": "bevy_input::gamepad::GamepadAxisType", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_input::gamepad::GamepadButton": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "button_type": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::GamepadButtonType" + } + }, + "gamepad": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::Gamepad" + } + } + }, + "required": [ + "gamepad", + "button_type" + ], + "short_name": "GamepadButton", + "title": "bevy_input::gamepad::GamepadButton", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::GamepadButtonInput": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "button": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::GamepadButton" + } + }, + "state": { + "type": { + "$ref": "#/$defs/bevy_input::ButtonState" + } + } + }, + "required": [ + "button", + "state" + ], + "short_name": "GamepadButtonInput", + "title": "bevy_input::gamepad::GamepadButtonInput", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::gamepad::GamepadButtonType": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "South" + }, + { + "title": "East" + }, + { + "title": "North" + }, + { + "title": "West" + }, + { + "title": "C" + }, + { + "title": "Z" + }, + { + "title": "LeftTrigger" + }, + { + "title": "LeftTrigger2" + }, + { + "title": "RightTrigger" + }, + { + "title": "RightTrigger2" + }, + { + "title": "Select" + }, + { + "title": "Start" + }, + { + "title": "Mode" + }, + { + "title": "LeftThumb" + }, + { + "title": "RightThumb" + }, + { + "title": "DPadUp" + }, + { + "title": "DPadDown" + }, + { + "title": "DPadLeft" + }, + { + "title": "DPadRight" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u8" + } + } + ], + "short_name": "Other", + "title": "Other", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "GamepadButtonType", + "title": "bevy_input::gamepad::GamepadButtonType", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_input::gamepad::GamepadConnection": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::GamepadInfo" + } + } + ], + "short_name": "Connected", + "title": "Connected", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "Disconnected" + } + ], + "short_name": "GamepadConnection", + "title": "bevy_input::gamepad::GamepadConnection", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_input::gamepad::GamepadSettings": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "axis_settings": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap" + } + }, + "button_axis_settings": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap" + } + }, + "button_settings": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap" + } + }, + "default_axis_settings": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::AxisSettings" + } + }, + "default_button_axis_settings": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::ButtonAxisSettings" + } + }, + "default_button_settings": { + "type": { + "$ref": "#/$defs/bevy_input::gamepad::ButtonSettings" + } + } + }, + "required": [ + "default_button_settings", + "default_axis_settings", + "default_button_axis_settings", + "button_settings", + "axis_settings", + "button_axis_settings" + ], + "short_name": "GamepadSettings", + "title": "bevy_input::gamepad::GamepadSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::keyboard::KeyCode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Key1", + "Key2", + "Key3", + "Key4", + "Key5", + "Key6", + "Key7", + "Key8", + "Key9", + "Key0", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "Escape", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "F11", + "F12", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "F24", + "Snapshot", + "Scroll", + "Pause", + "Insert", + "Home", + "Delete", + "End", + "PageDown", + "PageUp", + "Left", + "Up", + "Right", + "Down", + "Back", + "Return", + "Space", + "Compose", + "Caret", + "Numlock", + "Numpad0", + "Numpad1", + "Numpad2", + "Numpad3", + "Numpad4", + "Numpad5", + "Numpad6", + "Numpad7", + "Numpad8", + "Numpad9", + "AbntC1", + "AbntC2", + "NumpadAdd", + "Apostrophe", + "Apps", + "Asterisk", + "Plus", + "At", + "Ax", + "Backslash", + "Calculator", + "Capital", + "Colon", + "Comma", + "Convert", + "NumpadDecimal", + "NumpadDivide", + "Equals", + "Grave", + "Kana", + "Kanji", + "AltLeft", + "BracketLeft", + "ControlLeft", + "ShiftLeft", + "SuperLeft", + "Mail", + "MediaSelect", + "MediaStop", + "Minus", + "NumpadMultiply", + "Mute", + "MyComputer", + "NavigateForward", + "NavigateBackward", + "NextTrack", + "NoConvert", + "NumpadComma", + "NumpadEnter", + "NumpadEquals", + "Oem102", + "Period", + "PlayPause", + "Power", + "PrevTrack", + "AltRight", + "BracketRight", + "ControlRight", + "ShiftRight", + "SuperRight", + "Semicolon", + "Slash", + "Sleep", + "Stop", + "NumpadSubtract", + "Sysrq", + "Tab", + "Underline", + "Unlabeled", + "VolumeDown", + "VolumeUp", + "Wake", + "WebBack", + "WebFavorites", + "WebForward", + "WebHome", + "WebRefresh", + "WebSearch", + "WebStop", + "Yen", + "Copy", + "Paste", + "Cut" + ], + "short_name": "KeyCode", + "title": "bevy_input::keyboard::KeyCode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_input::keyboard::KeyboardInput": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "key_code": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "scan_code": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "state": { + "type": { + "$ref": "#/$defs/bevy_input::ButtonState" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "scan_code", + "state", + "window" + ], + "short_name": "KeyboardInput", + "title": "bevy_input::keyboard::KeyboardInput", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::keyboard::ScanCode": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u32" + } + } + ], + "short_name": "ScanCode", + "title": "bevy_input::keyboard::ScanCode", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_input::mouse::MouseButton": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Left" + }, + { + "title": "Right" + }, + { + "title": "Middle" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u16" + } + } + ], + "short_name": "Other", + "title": "Other", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "MouseButton", + "title": "bevy_input::mouse::MouseButton", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_input::mouse::MouseButtonInput": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "button": { + "type": { + "$ref": "#/$defs/bevy_input::mouse::MouseButton" + } + }, + "state": { + "type": { + "$ref": "#/$defs/bevy_input::ButtonState" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "button", + "state", + "window" + ], + "short_name": "MouseButtonInput", + "title": "bevy_input::mouse::MouseButtonInput", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::mouse::MouseMotion": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "delta": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "delta" + ], + "short_name": "MouseMotion", + "title": "bevy_input::mouse::MouseMotion", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::mouse::MouseScrollUnit": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Line", + "Pixel" + ], + "short_name": "MouseScrollUnit", + "title": "bevy_input::mouse::MouseScrollUnit", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_input::mouse::MouseWheel": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "unit": { + "type": { + "$ref": "#/$defs/bevy_input::mouse::MouseScrollUnit" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + }, + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "unit", + "x", + "y", + "window" + ], + "short_name": "MouseWheel", + "title": "bevy_input::mouse::MouseWheel", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::touch::ForceTouch": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "altitude_angle": { + "title": "altitude_angle", + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "force": { + "title": "force", + "type": { + "$ref": "#/$defs/f64" + } + }, + "max_possible_force": { + "title": "max_possible_force", + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "force", + "max_possible_force" + ], + "short_name": "Calibrated", + "title": "Calibrated", + "type": "object", + "typeInfo": "Struct" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f64" + } + } + ], + "short_name": "Normalized", + "title": "Normalized", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "ForceTouch", + "title": "bevy_input::touch::ForceTouch", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_input::touch::TouchInput": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "force": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "id": { + "type": { + "$ref": "#/$defs/u64" + } + }, + "phase": { + "type": { + "$ref": "#/$defs/bevy_input::touch::TouchPhase" + } + }, + "position": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "phase", + "position", + "id" + ], + "short_name": "TouchInput", + "title": "bevy_input::touch::TouchInput", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_input::touch::TouchPhase": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Started", + "Moved", + "Ended", + "Canceled" + ], + "short_name": "TouchPhase", + "title": "bevy_input::touch::TouchPhase", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_input::touchpad::TouchpadMagnify": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "TouchpadMagnify", + "title": "bevy_input::touchpad::TouchpadMagnify", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_input::touchpad::TouchpadRotate": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "TouchpadRotate", + "title": "bevy_input::touchpad::TouchpadRotate", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_math::Rect": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "max": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "min": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "min", + "max" + ], + "short_name": "Rect", + "title": "bevy_math::Rect", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::alpha::AlphaMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Opaque" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Mask", + "title": "Mask", + "type": "array", + "typeInfo": "Tuple" + }, + { + "title": "Blend" + }, + { + "title": "Premultiplied" + }, + { + "title": "Add" + }, + { + "title": "Multiply" + } + ], + "short_name": "AlphaMode", + "title": "bevy_pbr::alpha::AlphaMode", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_pbr::bundle::CascadesVisibleEntities": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "CascadesVisibleEntities", + "title": "bevy_pbr::bundle::CascadesVisibleEntities", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::bundle::CubemapVisibleEntities": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "CubemapVisibleEntities", + "title": "bevy_pbr::bundle::CubemapVisibleEntities", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::environment_map::EnvironmentMapLight": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "diffuse_map": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + }, + "specular_map": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + } + }, + "required": [ + "diffuse_map", + "specular_map" + ], + "short_name": "EnvironmentMapLight", + "title": "bevy_pbr::environment_map::EnvironmentMapLight", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::fog::FogSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "directional_light_color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "directional_light_exponent": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "falloff": { + "type": { + "$ref": "#/$defs/bevy_pbr::fog::FogFalloff" + } + } + }, + "required": [ + "color", + "directional_light_color", + "directional_light_exponent", + "falloff" + ], + "short_name": "FogSettings", + "title": "bevy_pbr::fog::FogSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::AmbientLight": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "brightness": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + }, + "required": [ + "color", + "brightness" + ], + "short_name": "AmbientLight", + "title": "bevy_pbr::light::AmbientLight", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::Cascade": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "projection": { + "type": { + "$ref": "#/$defs/glam::Mat4" + } + }, + "texel_size": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "view_projection": { + "type": { + "$ref": "#/$defs/glam::Mat4" + } + }, + "view_transform": { + "type": { + "$ref": "#/$defs/glam::Mat4" + } + } + }, + "required": [ + "view_transform", + "projection", + "view_projection", + "texel_size" + ], + "short_name": "Cascade", + "title": "bevy_pbr::light::Cascade", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::CascadeShadowConfig": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "bounds": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "minimum_distance": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "overlap_proportion": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "bounds", + "overlap_proportion", + "minimum_distance" + ], + "short_name": "CascadeShadowConfig", + "title": "bevy_pbr::light::CascadeShadowConfig", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::Cascades": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "cascades": { + "type": { + "$ref": "#/$defs/bevy_utils::hashbrown::HashMap, bevy_utils::hashbrown::hash_map::DefaultHashBuilder>" + } + } + }, + "required": [ + "cascades" + ], + "short_name": "Cascades", + "title": "bevy_pbr::light::Cascades", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::ClusterConfig": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "title": "Single" + }, + { + "additionalProperties": false, + "properties": { + "dimensions": { + "title": "dimensions", + "type": { + "$ref": "#/$defs/glam::UVec3" + } + }, + "dynamic_resizing": { + "title": "dynamic_resizing", + "type": { + "$ref": "#/$defs/bool" + } + }, + "z_config": { + "title": "z_config", + "type": { + "$ref": "#/$defs/bevy_pbr::light::ClusterZConfig" + } + } + }, + "required": [ + "dimensions", + "z_config", + "dynamic_resizing" + ], + "short_name": "XYZ", + "title": "XYZ", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "dynamic_resizing": { + "title": "dynamic_resizing", + "type": { + "$ref": "#/$defs/bool" + } + }, + "total": { + "title": "total", + "type": { + "$ref": "#/$defs/u32" + } + }, + "z_config": { + "title": "z_config", + "type": { + "$ref": "#/$defs/bevy_pbr::light::ClusterZConfig" + } + }, + "z_slices": { + "title": "z_slices", + "type": { + "$ref": "#/$defs/u32" + } + } + }, + "required": [ + "total", + "z_slices", + "z_config", + "dynamic_resizing" + ], + "short_name": "FixedZ", + "title": "FixedZ", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "ClusterConfig", + "title": "bevy_pbr::light::ClusterConfig", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_pbr::light::ClusterFarZMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "MaxLightRange" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Constant", + "title": "Constant", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "ClusterFarZMode", + "title": "bevy_pbr::light::ClusterFarZMode", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_pbr::light::ClusterZConfig": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "far_z_mode": { + "type": { + "$ref": "#/$defs/bevy_pbr::light::ClusterFarZMode" + } + }, + "first_slice_depth": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "first_slice_depth", + "far_z_mode" + ], + "short_name": "ClusterZConfig", + "title": "bevy_pbr::light::ClusterZConfig", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::DirectionalLight": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "illuminance": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_depth_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_normal_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadows_enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "color", + "illuminance", + "shadows_enabled", + "shadow_depth_bias", + "shadow_normal_bias" + ], + "short_name": "DirectionalLight", + "title": "bevy_pbr::light::DirectionalLight", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::DirectionalLightShadowMap": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "size" + ], + "short_name": "DirectionalLightShadowMap", + "title": "bevy_pbr::light::DirectionalLightShadowMap", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::NotShadowCaster": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "NotShadowCaster", + "title": "bevy_pbr::light::NotShadowCaster", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::NotShadowReceiver": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "NotShadowReceiver", + "title": "bevy_pbr::light::NotShadowReceiver", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::PointLight": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "intensity": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "radius": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "range": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_depth_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_normal_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadows_enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "color", + "intensity", + "range", + "radius", + "shadows_enabled", + "shadow_depth_bias", + "shadow_normal_bias" + ], + "short_name": "PointLight", + "title": "bevy_pbr::light::PointLight", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::PointLightShadowMap": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "size" + ], + "short_name": "PointLightShadowMap", + "title": "bevy_pbr::light::PointLightShadowMap", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::light::ShadowFilteringMethod": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Hardware2x2", + "Castano13", + "Jimenez14" + ], + "short_name": "ShadowFilteringMethod", + "title": "bevy_pbr::light::ShadowFilteringMethod", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_pbr::light::SpotLight": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "inner_angle": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "intensity": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "outer_angle": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "radius": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "range": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_depth_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadow_normal_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "shadows_enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "color", + "intensity", + "range", + "radius", + "shadows_enabled", + "shadow_depth_bias", + "shadow_normal_bias", + "outer_angle", + "inner_angle" + ], + "short_name": "SpotLight", + "title": "bevy_pbr::light::SpotLight", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::material::DefaultOpaqueRendererMethod": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_pbr::material::OpaqueRendererMethod" + } + } + ], + "short_name": "DefaultOpaqueRendererMethod", + "title": "bevy_pbr::material::DefaultOpaqueRendererMethod", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_pbr::pbr_material::StandardMaterial": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "alpha_mode": { + "type": { + "$ref": "#/$defs/bevy_pbr::alpha::AlphaMode" + } + }, + "attenuation_color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "attenuation_distance": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "base_color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "base_color_texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "deferred_lighting_pass_id": { + "type": { + "$ref": "#/$defs/u8" + } + }, + "depth_bias": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "depth_map": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "diffuse_transmission": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "double_sided": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "emissive": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "emissive_texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "flip_normal_map_y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "fog_enabled": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "ior": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "max_parallax_layer_count": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "metallic": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "metallic_roughness_texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "normal_map_texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "occlusion_texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "opaque_render_method": { + "type": { + "$ref": "#/$defs/bevy_pbr::material::OpaqueRendererMethod" + } + }, + "parallax_depth_scale": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "parallax_mapping_method": { + "type": { + "$ref": "#/$defs/bevy_pbr::parallax::ParallaxMappingMethod" + } + }, + "perceptual_roughness": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "reflectance": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "specular_transmission": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "thickness": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "unlit": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "base_color", + "emissive", + "perceptual_roughness", + "metallic", + "reflectance", + "diffuse_transmission", + "specular_transmission", + "thickness", + "ior", + "attenuation_distance", + "attenuation_color", + "flip_normal_map_y", + "double_sided", + "unlit", + "fog_enabled", + "alpha_mode", + "depth_bias", + "parallax_depth_scale", + "parallax_mapping_method", + "max_parallax_layer_count", + "opaque_render_method", + "deferred_lighting_pass_id" + ], + "short_name": "StandardMaterial", + "title": "bevy_pbr::pbr_material::StandardMaterial", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::ssao::ScreenSpaceAmbientOcclusionSettings": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "quality_level": { + "type": { + "$ref": "#/$defs/bevy_pbr::ssao::ScreenSpaceAmbientOcclusionQualityLevel" + } + } + }, + "required": [ + "quality_level" + ], + "short_name": "ScreenSpaceAmbientOcclusionSettings", + "title": "bevy_pbr::ssao::ScreenSpaceAmbientOcclusionSettings", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::wireframe::NoWireframe": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "NoWireframe", + "title": "bevy_pbr::wireframe::NoWireframe", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::wireframe::Wireframe": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Wireframe", + "title": "bevy_pbr::wireframe::Wireframe", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_pbr::wireframe::WireframeConfig": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "default_color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "global": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "global", + "default_color" + ], + "short_name": "WireframeConfig", + "title": "bevy_pbr::wireframe::WireframeConfig", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::AdditionalMassProperties": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Mass", + "title": "Mass", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_rapier3d::dynamics::rigid_body::MassProperties" + } + } + ], + "short_name": "MassProperties", + "title": "MassProperties", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "AdditionalMassProperties", + "title": "bevy_rapier3d::dynamics::rigid_body::AdditionalMassProperties", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_rapier3d::dynamics::rigid_body::Ccd": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "enabled" + ], + "short_name": "Ccd", + "title": "bevy_rapier3d::dynamics::rigid_body::Ccd", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::Damping": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "angular_damping": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "linear_damping": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "linear_damping", + "angular_damping" + ], + "short_name": "Damping", + "title": "bevy_rapier3d::dynamics::rigid_body::Damping", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::Dominance": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "groups": { + "type": { + "$ref": "#/$defs/i8" + } + } + }, + "required": [ + "groups" + ], + "short_name": "Dominance", + "title": "bevy_rapier3d::dynamics::rigid_body::Dominance", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::ExternalForce": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "force": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "torque": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "force", + "torque" + ], + "short_name": "ExternalForce", + "title": "bevy_rapier3d::dynamics::rigid_body::ExternalForce", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::ExternalImpulse": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "impulse": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "torque_impulse": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "impulse", + "torque_impulse" + ], + "short_name": "ExternalImpulse", + "title": "bevy_rapier3d::dynamics::rigid_body::ExternalImpulse", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::GravityScale": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "GravityScale", + "title": "bevy_rapier3d::dynamics::rigid_body::GravityScale", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_rapier3d::dynamics::rigid_body::LockedAxes": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u8" + } + } + ], + "short_name": "LockedAxes", + "title": "bevy_rapier3d::dynamics::rigid_body::LockedAxes", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_rapier3d::dynamics::rigid_body::MassProperties": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "local_center_of_mass": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "mass": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "principal_inertia": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "principal_inertia_local_frame": { + "type": { + "$ref": "#/$defs/glam::Quat" + } + } + }, + "required": [ + "local_center_of_mass", + "mass", + "principal_inertia_local_frame", + "principal_inertia" + ], + "short_name": "MassProperties", + "title": "bevy_rapier3d::dynamics::rigid_body::MassProperties", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::RigidBody": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Dynamic", + "Fixed", + "KinematicPositionBased", + "KinematicVelocityBased" + ], + "short_name": "RigidBody", + "title": "bevy_rapier3d::dynamics::rigid_body::RigidBody", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_rapier3d::dynamics::rigid_body::Sleeping": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "angular_threshold": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "linear_threshold": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "sleeping": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "linear_threshold", + "angular_threshold", + "sleeping" + ], + "short_name": "Sleeping", + "title": "bevy_rapier3d::dynamics::rigid_body::Sleeping", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::dynamics::rigid_body::Velocity": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "angvel": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "linvel": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "linvel", + "angvel" + ], + "short_name": "Velocity", + "title": "bevy_rapier3d::dynamics::rigid_body::Velocity", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::geometry::collider::CollidingEntities": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_utils::HashSet" + } + } + ], + "short_name": "CollidingEntities", + "title": "bevy_rapier3d::geometry::collider::CollidingEntities", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_rapier3d::geometry::collider::CollisionGroups": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "filters": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::geometry::collider::Group" + } + }, + "memberships": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::geometry::collider::Group" + } + } + }, + "required": [ + "memberships", + "filters" + ], + "short_name": "CollisionGroups", + "title": "bevy_rapier3d::geometry::collider::CollisionGroups", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::geometry::collider::ContactForceEventThreshold": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "ContactForceEventThreshold", + "title": "bevy_rapier3d::geometry::collider::ContactForceEventThreshold", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_rapier3d::geometry::collider::Friction": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "coefficient": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "combine_rule": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::dynamics::CoefficientCombineRule" + } + } + }, + "required": [ + "coefficient", + "combine_rule" + ], + "short_name": "Friction", + "title": "bevy_rapier3d::geometry::collider::Friction", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::geometry::collider::Group": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u32" + } + } + ], + "short_name": "Group", + "title": "bevy_rapier3d::geometry::collider::Group", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_rapier3d::geometry::collider::Restitution": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "coefficient": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "combine_rule": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::dynamics::CoefficientCombineRule" + } + } + }, + "required": [ + "coefficient", + "combine_rule" + ], + "short_name": "Restitution", + "title": "bevy_rapier3d::geometry::collider::Restitution", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::geometry::collider::Sensor": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Sensor", + "title": "bevy_rapier3d::geometry::collider::Sensor", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::geometry::collider::SolverGroups": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "filters": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::geometry::collider::Group" + } + }, + "memberships": { + "type": { + "$ref": "#/$defs/bevy_rapier3d::geometry::collider::Group" + } + } + }, + "required": [ + "memberships", + "filters" + ], + "short_name": "SolverGroups", + "title": "bevy_rapier3d::geometry::collider::SolverGroups", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_rapier3d::render::DebugRenderContext": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "enabled": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "enabled" + ], + "short_name": "DebugRenderContext", + "title": "bevy_rapier3d::render::DebugRenderContext", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::camera::camera::Camera": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "hdr": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "is_active": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "msaa_writeback": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "order": { + "type": { + "$ref": "#/$defs/isize" + } + }, + "viewport": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [ + "order", + "is_active", + "hdr", + "msaa_writeback" + ], + "short_name": "Camera", + "title": "bevy_render::camera::camera::Camera", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::camera::camera::CameraRenderGraph": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::borrow::Cow" + } + } + ], + "short_name": "CameraRenderGraph", + "title": "bevy_render::camera::camera::CameraRenderGraph", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_render::camera::camera::RenderTarget": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowRef" + } + } + ], + "short_name": "Window", + "title": "Window", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + } + ], + "short_name": "Image", + "title": "Image", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::camera::manual_texture_view::ManualTextureViewHandle" + } + } + ], + "short_name": "TextureView", + "title": "TextureView", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "RenderTarget", + "title": "bevy_render::camera::camera::RenderTarget", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_render::camera::camera::Viewport": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "depth": { + "type": { + "$ref": "#/$defs/core::ops::Range" + } + }, + "physical_position": { + "type": { + "$ref": "#/$defs/glam::UVec2" + } + }, + "physical_size": { + "type": { + "$ref": "#/$defs/glam::UVec2" + } + } + }, + "required": [ + "physical_position", + "physical_size", + "depth" + ], + "short_name": "Viewport", + "title": "bevy_render::camera::camera::Viewport", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::camera::projection::OrthographicProjection": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "area": { + "type": { + "$ref": "#/$defs/bevy_math::Rect" + } + }, + "far": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "near": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "scale": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "scaling_mode": { + "type": { + "$ref": "#/$defs/bevy_render::camera::projection::ScalingMode" + } + }, + "viewport_origin": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "near", + "far", + "viewport_origin", + "scaling_mode", + "scale", + "area" + ], + "short_name": "OrthographicProjection", + "title": "bevy_render::camera::projection::OrthographicProjection", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::camera::projection::PerspectiveProjection": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "aspect_ratio": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "far": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "fov": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "near": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "fov", + "aspect_ratio", + "near", + "far" + ], + "short_name": "PerspectiveProjection", + "title": "bevy_render::camera::projection::PerspectiveProjection", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::camera::projection::Projection": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::camera::projection::PerspectiveProjection" + } + } + ], + "short_name": "Perspective", + "title": "Perspective", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::camera::projection::OrthographicProjection" + } + } + ], + "short_name": "Orthographic", + "title": "Orthographic", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Projection", + "title": "bevy_render::camera::projection::Projection", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_render::camera::projection::ScalingMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "height": { + "title": "height", + "type": { + "$ref": "#/$defs/f32" + } + }, + "width": { + "title": "width", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "width", + "height" + ], + "short_name": "Fixed", + "title": "Fixed", + "type": "object", + "typeInfo": "Struct" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "WindowSize", + "title": "WindowSize", + "type": "array", + "typeInfo": "Tuple" + }, + { + "additionalProperties": false, + "properties": { + "min_height": { + "title": "min_height", + "type": { + "$ref": "#/$defs/f32" + } + }, + "min_width": { + "title": "min_width", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "min_width", + "min_height" + ], + "short_name": "AutoMin", + "title": "AutoMin", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "max_height": { + "title": "max_height", + "type": { + "$ref": "#/$defs/f32" + } + }, + "max_width": { + "title": "max_width", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "max_width", + "max_height" + ], + "short_name": "AutoMax", + "title": "AutoMax", + "type": "object", + "typeInfo": "Struct" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "FixedVertical", + "title": "FixedVertical", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "FixedHorizontal", + "title": "FixedHorizontal", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "ScalingMode", + "title": "bevy_render::camera::projection::ScalingMode", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_render::color::Color": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "alpha": { + "title": "alpha", + "type": { + "$ref": "#/$defs/f32" + } + }, + "blue": { + "title": "blue", + "type": { + "$ref": "#/$defs/f32" + } + }, + "green": { + "title": "green", + "type": { + "$ref": "#/$defs/f32" + } + }, + "red": { + "title": "red", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "red", + "green", + "blue", + "alpha" + ], + "short_name": "Rgba", + "title": "Rgba", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "alpha": { + "title": "alpha", + "type": { + "$ref": "#/$defs/f32" + } + }, + "blue": { + "title": "blue", + "type": { + "$ref": "#/$defs/f32" + } + }, + "green": { + "title": "green", + "type": { + "$ref": "#/$defs/f32" + } + }, + "red": { + "title": "red", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "red", + "green", + "blue", + "alpha" + ], + "short_name": "RgbaLinear", + "title": "RgbaLinear", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "alpha": { + "title": "alpha", + "type": { + "$ref": "#/$defs/f32" + } + }, + "hue": { + "title": "hue", + "type": { + "$ref": "#/$defs/f32" + } + }, + "lightness": { + "title": "lightness", + "type": { + "$ref": "#/$defs/f32" + } + }, + "saturation": { + "title": "saturation", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "hue", + "saturation", + "lightness", + "alpha" + ], + "short_name": "Hsla", + "title": "Hsla", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "alpha": { + "title": "alpha", + "type": { + "$ref": "#/$defs/f32" + } + }, + "chroma": { + "title": "chroma", + "type": { + "$ref": "#/$defs/f32" + } + }, + "hue": { + "title": "hue", + "type": { + "$ref": "#/$defs/f32" + } + }, + "lightness": { + "title": "lightness", + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "lightness", + "chroma", + "hue", + "alpha" + ], + "short_name": "Lcha", + "title": "Lcha", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "Color", + "title": "bevy_render::color::Color", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_render::globals::GlobalsUniform": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "delta_time": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "frame_count": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "time": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "time", + "delta_time", + "frame_count" + ], + "short_name": "GlobalsUniform", + "title": "bevy_render::globals::GlobalsUniform", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::mesh::mesh::Indices": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "U16", + "title": "U16", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "U32", + "title": "U32", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Indices", + "title": "bevy_render::mesh::mesh::Indices", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_render::mesh::mesh::Mesh": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "indices": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "morph_target_names": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "morph_targets": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + } + }, + "required": [], + "short_name": "Mesh", + "title": "bevy_render::mesh::mesh::Mesh", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::mesh::mesh::skinning::SkinnedMesh": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "inverse_bindposes": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + }, + "joints": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + }, + "required": [ + "inverse_bindposes", + "joints" + ], + "short_name": "SkinnedMesh", + "title": "bevy_render::mesh::mesh::skinning::SkinnedMesh", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::mesh::morph::MeshMorphWeights": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "weights": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + }, + "required": [ + "weights" + ], + "short_name": "MeshMorphWeights", + "title": "bevy_render::mesh::morph::MeshMorphWeights", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::mesh::morph::MorphWeights": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "first_mesh": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + }, + "weights": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + }, + "required": [ + "weights" + ], + "short_name": "MorphWeights", + "title": "bevy_render::mesh::morph::MorphWeights", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::primitives::Aabb": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "center": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + }, + "half_extents": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + } + }, + "required": [ + "center", + "half_extents" + ], + "short_name": "Aabb", + "title": "bevy_render::primitives::Aabb", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::primitives::CascadesFrusta": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "CascadesFrusta", + "title": "bevy_render::primitives::CascadesFrusta", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::primitives::CubemapFrusta": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "CubemapFrusta", + "title": "bevy_render::primitives::CubemapFrusta", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::primitives::Frustum": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Frustum", + "title": "bevy_render::primitives::Frustum", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::texture::image::Image": { + "isComponent": false, + "isResource": false, + "short_name": "Image", + "title": "bevy_render::texture::image::Image", + "type": "object", + "typeInfo": "Value" + }, + "bevy_render::view::ColorGrading": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "exposure": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "gamma": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "post_saturation": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "pre_saturation": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "exposure", + "gamma", + "pre_saturation", + "post_saturation" + ], + "short_name": "ColorGrading", + "title": "bevy_render::view::ColorGrading", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::view::Msaa": { + "isComponent": false, + "isResource": true, + "oneOf": [ + "Off", + "Sample2", + "Sample4", + "Sample8" + ], + "short_name": "Msaa", + "title": "bevy_render::view::Msaa", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_render::view::visibility::InheritedVisibility": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bool" + } + } + ], + "short_name": "InheritedVisibility", + "title": "bevy_render::view::visibility::InheritedVisibility", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_render::view::visibility::NoFrustumCulling": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "NoFrustumCulling", + "title": "bevy_render::view::visibility::NoFrustumCulling", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::view::visibility::ViewVisibility": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bool" + } + } + ], + "short_name": "ViewVisibility", + "title": "bevy_render::view::visibility::ViewVisibility", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_render::view::visibility::Visibility": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Inherited", + "Hidden", + "Visible" + ], + "short_name": "Visibility", + "title": "bevy_render::view::visibility::Visibility", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_render::view::visibility::VisibleEntities": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "VisibleEntities", + "title": "bevy_render::view::visibility::VisibleEntities", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_render::view::visibility::render_layers::RenderLayers": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/u32" + } + } + ], + "short_name": "RenderLayers", + "title": "bevy_render::view::visibility::render_layers::RenderLayers", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_sprite::mesh2d::color_material::ColorMaterial": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "texture": { + "type": { + "$ref": "#/$defs/core::option::Option>" + } + } + }, + "required": [ + "color" + ], + "short_name": "ColorMaterial", + "title": "bevy_sprite::mesh2d::color_material::ColorMaterial", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_sprite::mesh2d::mesh::Mesh2dHandle": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + } + ], + "short_name": "Mesh2dHandle", + "title": "bevy_sprite::mesh2d::mesh::Mesh2dHandle", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_sprite::sprite::Anchor": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Center" + }, + { + "title": "BottomLeft" + }, + { + "title": "BottomCenter" + }, + { + "title": "BottomRight" + }, + { + "title": "CenterLeft" + }, + { + "title": "CenterRight" + }, + { + "title": "TopLeft" + }, + { + "title": "TopCenter" + }, + { + "title": "TopRight" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + ], + "short_name": "Custom", + "title": "Custom", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Anchor", + "title": "bevy_sprite::sprite::Anchor", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_sprite::sprite::Sprite": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "anchor": { + "type": { + "$ref": "#/$defs/bevy_sprite::sprite::Anchor" + } + }, + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "custom_size": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "flip_x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "flip_y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "rect": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [ + "color", + "flip_x", + "flip_y", + "anchor" + ], + "short_name": "Sprite", + "title": "bevy_sprite::sprite::Sprite", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_sprite::texture_atlas::TextureAtlas": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "texture": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + }, + "texture_handles": { + "type": { + "$ref": "#/$defs/core::option::Option, usize, bevy_utils::hashbrown::hash_map::DefaultHashBuilder>>" + } + }, + "textures": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + }, + "required": [ + "texture", + "size", + "textures" + ], + "short_name": "TextureAtlas", + "title": "bevy_sprite::texture_atlas::TextureAtlas", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_sprite::texture_atlas::TextureAtlasSprite": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "anchor": { + "type": { + "$ref": "#/$defs/bevy_sprite::sprite::Anchor" + } + }, + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "custom_size": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "flip_x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "flip_y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "index": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "color", + "index", + "flip_x", + "flip_y", + "anchor" + ], + "short_name": "TextureAtlasSprite", + "title": "bevy_sprite::texture_atlas::TextureAtlasSprite", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_text::pipeline::TextLayoutInfo": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "glyphs": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "logical_size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "glyphs", + "logical_size" + ], + "short_name": "TextLayoutInfo", + "title": "bevy_text::pipeline::TextLayoutInfo", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_text::text2d::Text2dBounds": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "size" + ], + "short_name": "Text2dBounds", + "title": "bevy_text::text2d::Text2dBounds", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_text::text::BreakLineOn": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "WordBoundary", + "AnyCharacter", + "NoWrap" + ], + "short_name": "BreakLineOn", + "title": "bevy_text::text::BreakLineOn", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_text::text::Text": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "alignment": { + "type": { + "$ref": "#/$defs/bevy_text::text::TextAlignment" + } + }, + "linebreak_behavior": { + "type": { + "$ref": "#/$defs/bevy_text::text::BreakLineOn" + } + }, + "sections": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + }, + "required": [ + "sections", + "alignment", + "linebreak_behavior" + ], + "short_name": "Text", + "title": "bevy_text::text::Text", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_text::text::TextAlignment": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Left", + "Center", + "Right" + ], + "short_name": "TextAlignment", + "title": "bevy_text::text::TextAlignment", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_text::text::TextSection": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "style": { + "type": { + "$ref": "#/$defs/bevy_text::text::TextStyle" + } + }, + "value": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + }, + "required": [ + "value", + "style" + ], + "short_name": "TextSection", + "title": "bevy_text::text::TextSection", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_text::text::TextStyle": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "font": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + }, + "font_size": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "font", + "font_size", + "color" + ], + "short_name": "TextStyle", + "title": "bevy_text::text::TextStyle", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::stopwatch::Stopwatch": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "elapsed": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "paused": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "elapsed", + "paused" + ], + "short_name": "Stopwatch", + "title": "bevy_time::stopwatch::Stopwatch", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::time::Time<()>": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "context": { + "type": { + "$ref": "#/$defs/()" + } + }, + "delta": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "delta_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "delta_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "elapsed_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_seconds_wrapped": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_wrapped_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_wrapped": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "wrap_period": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + } + }, + "required": [ + "context", + "wrap_period", + "delta", + "delta_seconds", + "delta_seconds_f64", + "elapsed", + "elapsed_seconds", + "elapsed_seconds_f64", + "elapsed_wrapped", + "elapsed_seconds_wrapped", + "elapsed_seconds_wrapped_f64" + ], + "short_name": "Time<()>", + "title": "bevy_time::time::Time<()>", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::time::Time": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "context": { + "type": { + "$ref": "#/$defs/bevy_time::fixed::Fixed" + } + }, + "delta": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "delta_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "delta_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "elapsed_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_seconds_wrapped": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_wrapped_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_wrapped": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "wrap_period": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + } + }, + "required": [ + "context", + "wrap_period", + "delta", + "delta_seconds", + "delta_seconds_f64", + "elapsed", + "elapsed_seconds", + "elapsed_seconds_f64", + "elapsed_wrapped", + "elapsed_seconds_wrapped", + "elapsed_seconds_wrapped_f64" + ], + "short_name": "Time", + "title": "bevy_time::time::Time", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::time::Time": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "context": { + "type": { + "$ref": "#/$defs/bevy_time::real::Real" + } + }, + "delta": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "delta_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "delta_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "elapsed_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_seconds_wrapped": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_wrapped_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_wrapped": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "wrap_period": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + } + }, + "required": [ + "context", + "wrap_period", + "delta", + "delta_seconds", + "delta_seconds_f64", + "elapsed", + "elapsed_seconds", + "elapsed_seconds_f64", + "elapsed_wrapped", + "elapsed_seconds_wrapped", + "elapsed_seconds_wrapped_f64" + ], + "short_name": "Time", + "title": "bevy_time::time::Time", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::time::Time": { + "additionalProperties": false, + "isComponent": false, + "isResource": true, + "properties": { + "context": { + "type": { + "$ref": "#/$defs/bevy_time::virt::Virtual" + } + }, + "delta": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "delta_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "delta_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "elapsed_seconds": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_seconds_wrapped": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "elapsed_seconds_wrapped_f64": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "elapsed_wrapped": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "wrap_period": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + } + }, + "required": [ + "context", + "wrap_period", + "delta", + "delta_seconds", + "delta_seconds_f64", + "elapsed", + "elapsed_seconds", + "elapsed_seconds_f64", + "elapsed_wrapped", + "elapsed_seconds_wrapped", + "elapsed_seconds_wrapped_f64" + ], + "short_name": "Time", + "title": "bevy_time::time::Time", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_time::timer::Timer": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "duration": { + "type": { + "$ref": "#/$defs/bevy_utils::Duration" + } + }, + "finished": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "mode": { + "type": { + "$ref": "#/$defs/bevy_time::timer::TimerMode" + } + }, + "stopwatch": { + "type": { + "$ref": "#/$defs/bevy_time::stopwatch::Stopwatch" + } + }, + "times_finished_this_tick": { + "type": { + "$ref": "#/$defs/u32" + } + } + }, + "required": [ + "stopwatch", + "duration", + "mode", + "finished", + "times_finished_this_tick" + ], + "short_name": "Timer", + "title": "bevy_time::timer::Timer", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_transform::components::global_transform::GlobalTransform": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::Affine3A" + } + } + ], + "short_name": "GlobalTransform", + "title": "bevy_transform::components::global_transform::GlobalTransform", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_transform::components::transform::Transform": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "rotation": { + "type": { + "$ref": "#/$defs/glam::Quat" + } + }, + "scale": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "translation": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "translation", + "rotation", + "scale" + ], + "short_name": "Transform", + "title": "bevy_transform::components::transform::Transform", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::UiScale": { + "isComponent": false, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f64" + } + } + ], + "short_name": "UiScale", + "title": "bevy_ui::UiScale", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_ui::camera_config::UiCameraConfig": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "show_ui": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "show_ui" + ], + "short_name": "UiCameraConfig", + "title": "bevy_ui::camera_config::UiCameraConfig", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::focus::FocusPolicy": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Block", + "Pass" + ], + "short_name": "FocusPolicy", + "title": "bevy_ui::focus::FocusPolicy", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::focus::Interaction": { + "isComponent": true, + "isResource": false, + "oneOf": [ + "Pressed", + "Hovered", + "None" + ], + "short_name": "Interaction", + "title": "bevy_ui::focus::Interaction", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::focus::RelativeCursorPosition": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "normalized": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "normalized_visible_node_rect": { + "type": { + "$ref": "#/$defs/bevy_math::Rect" + } + } + }, + "required": [ + "normalized_visible_node_rect" + ], + "short_name": "RelativeCursorPosition", + "title": "bevy_ui::focus::RelativeCursorPosition", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::geometry::UiRect": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "bottom": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "left": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "right": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "top": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + } + }, + "required": [ + "left", + "right", + "top", + "bottom" + ], + "short_name": "UiRect", + "title": "bevy_ui::geometry::UiRect", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::geometry::Val": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Auto" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Px", + "title": "Px", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Percent", + "title": "Percent", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Vw", + "title": "Vw", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Vh", + "title": "Vh", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "VMin", + "title": "VMin", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "VMax", + "title": "VMax", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Val", + "title": "bevy_ui::geometry::Val", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_ui::measurement::ContentSize": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "ContentSize", + "title": "bevy_ui::measurement::ContentSize", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::AlignContent": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Default", + "Start", + "End", + "FlexStart", + "FlexEnd", + "Center", + "Stretch", + "SpaceBetween", + "SpaceEvenly", + "SpaceAround" + ], + "short_name": "AlignContent", + "title": "bevy_ui::ui_node::AlignContent", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::AlignItems": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Default", + "Start", + "End", + "FlexStart", + "FlexEnd", + "Center", + "Baseline", + "Stretch" + ], + "short_name": "AlignItems", + "title": "bevy_ui::ui_node::AlignItems", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::AlignSelf": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Auto", + "Start", + "End", + "FlexStart", + "FlexEnd", + "Center", + "Baseline", + "Stretch" + ], + "short_name": "AlignSelf", + "title": "bevy_ui::ui_node::AlignSelf", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::BackgroundColor": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + ], + "short_name": "BackgroundColor", + "title": "bevy_ui::ui_node::BackgroundColor", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_ui::ui_node::BorderColor": { + "isComponent": true, + "isResource": false, + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + } + ], + "short_name": "BorderColor", + "title": "bevy_ui::ui_node::BorderColor", + "type": "array", + "typeInfo": "TupleStruct" + }, + "bevy_ui::ui_node::CalculatedClip": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "clip": { + "type": { + "$ref": "#/$defs/bevy_math::Rect" + } + } + }, + "required": [ + "clip" + ], + "short_name": "CalculatedClip", + "title": "bevy_ui::ui_node::CalculatedClip", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::Direction": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Inherit", + "LeftToRight", + "RightToLeft" + ], + "short_name": "Direction", + "title": "bevy_ui::ui_node::Direction", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::Display": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Flex", + "Grid", + "None" + ], + "short_name": "Display", + "title": "bevy_ui::ui_node::Display", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::FlexDirection": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Row", + "Column", + "RowReverse", + "ColumnReverse" + ], + "short_name": "FlexDirection", + "title": "bevy_ui::ui_node::FlexDirection", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::FlexWrap": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "NoWrap", + "Wrap", + "WrapReverse" + ], + "short_name": "FlexWrap", + "title": "bevy_ui::ui_node::FlexWrap", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::GridAutoFlow": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Row", + "Column", + "RowDense", + "ColumnDense" + ], + "short_name": "GridAutoFlow", + "title": "bevy_ui::ui_node::GridAutoFlow", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::GridPlacement": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "end": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "span": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "start": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [], + "short_name": "GridPlacement", + "title": "bevy_ui::ui_node::GridPlacement", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::GridTrack": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "max_sizing_function": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::MaxTrackSizingFunction" + } + }, + "min_sizing_function": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::MinTrackSizingFunction" + } + } + }, + "required": [ + "min_sizing_function", + "max_sizing_function" + ], + "short_name": "GridTrack", + "title": "bevy_ui::ui_node::GridTrack", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::JustifyContent": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Default", + "Start", + "End", + "FlexStart", + "FlexEnd", + "Center", + "Stretch", + "SpaceBetween", + "SpaceEvenly", + "SpaceAround" + ], + "short_name": "JustifyContent", + "title": "bevy_ui::ui_node::JustifyContent", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::JustifyItems": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Default", + "Start", + "End", + "Center", + "Baseline", + "Stretch" + ], + "short_name": "JustifyItems", + "title": "bevy_ui::ui_node::JustifyItems", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::JustifySelf": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Auto", + "Start", + "End", + "Center", + "Baseline", + "Stretch" + ], + "short_name": "JustifySelf", + "title": "bevy_ui::ui_node::JustifySelf", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::Node": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "calculated_size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "outline_offset": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "outline_width": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "stack_index": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "unrounded_size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "stack_index", + "calculated_size", + "outline_width", + "outline_offset", + "unrounded_size" + ], + "short_name": "Node", + "title": "bevy_ui::ui_node::Node", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::Outline": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "color": { + "type": { + "$ref": "#/$defs/bevy_render::color::Color" + } + }, + "offset": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "width": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + } + }, + "required": [ + "width", + "offset", + "color" + ], + "short_name": "Outline", + "title": "bevy_ui::ui_node::Outline", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::Overflow": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::OverflowAxis" + } + }, + "y": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::OverflowAxis" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "Overflow", + "title": "bevy_ui::ui_node::Overflow", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::OverflowAxis": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Visible", + "Clip" + ], + "short_name": "OverflowAxis", + "title": "bevy_ui::ui_node::OverflowAxis", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::PositionType": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Relative", + "Absolute" + ], + "short_name": "PositionType", + "title": "bevy_ui::ui_node::PositionType", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_ui::ui_node::RepeatedGridTrack": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "repetition": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::GridTrackRepetition" + } + }, + "tracks": { + "type": { + "$ref": "#/$defs/smallvec::SmallVec<[bevy_ui::ui_node::GridTrack; 1]>" + } + } + }, + "required": [ + "repetition", + "tracks" + ], + "short_name": "RepeatedGridTrack", + "title": "bevy_ui::ui_node::RepeatedGridTrack", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::Style": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "align_content": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::AlignContent" + } + }, + "align_items": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::AlignItems" + } + }, + "align_self": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::AlignSelf" + } + }, + "aspect_ratio": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "border": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::UiRect" + } + }, + "bottom": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "column_gap": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "direction": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::Direction" + } + }, + "display": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::Display" + } + }, + "flex_basis": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "flex_direction": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::FlexDirection" + } + }, + "flex_grow": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "flex_shrink": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "flex_wrap": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::FlexWrap" + } + }, + "grid_auto_columns": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "grid_auto_flow": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::GridAutoFlow" + } + }, + "grid_auto_rows": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "grid_column": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::GridPlacement" + } + }, + "grid_row": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::GridPlacement" + } + }, + "grid_template_columns": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "grid_template_rows": { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + }, + "height": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "justify_content": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::JustifyContent" + } + }, + "justify_items": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::JustifyItems" + } + }, + "justify_self": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::JustifySelf" + } + }, + "left": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "margin": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::UiRect" + } + }, + "max_height": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "max_width": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "min_height": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "min_width": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "overflow": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::Overflow" + } + }, + "padding": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::UiRect" + } + }, + "position_type": { + "type": { + "$ref": "#/$defs/bevy_ui::ui_node::PositionType" + } + }, + "right": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "row_gap": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "top": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + }, + "width": { + "type": { + "$ref": "#/$defs/bevy_ui::geometry::Val" + } + } + }, + "required": [ + "display", + "position_type", + "overflow", + "direction", + "left", + "right", + "top", + "bottom", + "width", + "height", + "min_width", + "min_height", + "max_width", + "max_height", + "align_items", + "justify_items", + "align_self", + "justify_self", + "align_content", + "justify_content", + "margin", + "padding", + "border", + "flex_direction", + "flex_wrap", + "flex_grow", + "flex_shrink", + "flex_basis", + "row_gap", + "column_gap", + "grid_auto_flow", + "grid_template_rows", + "grid_template_columns", + "grid_auto_rows", + "grid_auto_columns", + "grid_row", + "grid_column" + ], + "short_name": "Style", + "title": "bevy_ui::ui_node::Style", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::UiImage": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "flip_x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "flip_y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "texture": { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + } + }, + "required": [ + "texture", + "flip_x", + "flip_y" + ], + "short_name": "UiImage", + "title": "bevy_ui::ui_node::UiImage", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::UiTextureAtlasImage": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "flip_x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "flip_y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "index": { + "type": { + "$ref": "#/$defs/usize" + } + } + }, + "required": [ + "index", + "flip_x", + "flip_y" + ], + "short_name": "UiTextureAtlasImage", + "title": "bevy_ui::ui_node::UiTextureAtlasImage", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::ui_node::ZIndex": { + "isComponent": true, + "isResource": false, + "oneOf": [ + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/i32" + } + } + ], + "short_name": "Local", + "title": "Local", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/i32" + } + } + ], + "short_name": "Global", + "title": "Global", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "ZIndex", + "title": "bevy_ui::ui_node::ZIndex", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_ui::widget::button::Button": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Button", + "title": "bevy_ui::widget::button::Button", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::widget::image::UiImageSize": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "size": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "size" + ], + "short_name": "UiImageSize", + "title": "bevy_ui::widget::image::UiImageSize", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::widget::label::Label": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "Label", + "title": "bevy_ui::widget::label::Label", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_ui::widget::text::TextFlags": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "needs_new_measure_func": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "needs_recompute": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "needs_new_measure_func", + "needs_recompute" + ], + "short_name": "TextFlags", + "title": "bevy_ui::widget::text::TextFlags", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_utils::Duration": { + "isComponent": false, + "isResource": false, + "short_name": "Duration", + "title": "bevy_utils::Duration", + "type": "object", + "typeInfo": "Value" + }, + "bevy_utils::HashSet": { + "isComponent": false, + "isResource": false, + "short_name": "HashSet", + "title": "bevy_utils::HashSet", + "type": "object", + "typeInfo": "Value" + }, + "bevy_utils::Instant": { + "isComponent": false, + "isResource": false, + "short_name": "Instant", + "title": "bevy_utils::Instant", + "type": "object", + "typeInfo": "Value" + }, + "bevy_utils::Uuid": { + "isComponent": false, + "isResource": false, + "short_name": "Uuid", + "title": "bevy_utils::Uuid", + "type": "object", + "typeInfo": "Value" + }, + "bevy_window::cursor::CursorIcon": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Default", + "Crosshair", + "Hand", + "Arrow", + "Move", + "Text", + "Wait", + "Help", + "Progress", + "NotAllowed", + "ContextMenu", + "Cell", + "VerticalText", + "Alias", + "Copy", + "NoDrop", + "Grab", + "Grabbing", + "AllScroll", + "ZoomIn", + "ZoomOut", + "EResize", + "NResize", + "NeResize", + "NwResize", + "SResize", + "SeResize", + "SwResize", + "WResize", + "EwResize", + "NsResize", + "NeswResize", + "NwseResize", + "ColResize", + "RowResize" + ], + "short_name": "CursorIcon", + "title": "bevy_window::cursor::CursorIcon", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::event::ApplicationLifetime": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Started", + "Suspended", + "Resumed" + ], + "short_name": "ApplicationLifetime", + "title": "bevy_window::event::ApplicationLifetime", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::event::CursorEntered": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "CursorEntered", + "title": "bevy_window::event::CursorEntered", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::CursorLeft": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "CursorLeft", + "title": "bevy_window::event::CursorLeft", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::CursorMoved": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "position": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "position" + ], + "short_name": "CursorMoved", + "title": "bevy_window::event::CursorMoved", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::FileDragAndDrop": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "path_buf": { + "title": "path_buf", + "type": { + "$ref": "#/$defs/std::path::PathBuf" + } + }, + "window": { + "title": "window", + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "path_buf" + ], + "short_name": "DroppedFile", + "title": "DroppedFile", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "path_buf": { + "title": "path_buf", + "type": { + "$ref": "#/$defs/std::path::PathBuf" + } + }, + "window": { + "title": "window", + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "path_buf" + ], + "short_name": "HoveredFile", + "title": "HoveredFile", + "type": "object", + "typeInfo": "Struct" + }, + { + "additionalProperties": false, + "properties": { + "window": { + "title": "window", + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "HoveredFileCanceled", + "title": "HoveredFileCanceled", + "type": "object", + "typeInfo": "Struct" + } + ], + "short_name": "FileDragAndDrop", + "title": "bevy_window::event::FileDragAndDrop", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_window::event::ReceivedCharacter": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "char": { + "type": { + "$ref": "#/$defs/char" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "char" + ], + "short_name": "ReceivedCharacter", + "title": "bevy_window::event::ReceivedCharacter", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::RequestRedraw": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "RequestRedraw", + "title": "bevy_window::event::RequestRedraw", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowBackendScaleFactorChanged": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "scale_factor": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "scale_factor" + ], + "short_name": "WindowBackendScaleFactorChanged", + "title": "bevy_window::event::WindowBackendScaleFactorChanged", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowCloseRequested": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "WindowCloseRequested", + "title": "bevy_window::event::WindowCloseRequested", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowClosed": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "WindowClosed", + "title": "bevy_window::event::WindowClosed", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowCreated": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window" + ], + "short_name": "WindowCreated", + "title": "bevy_window::event::WindowCreated", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowFocused": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "focused": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "focused" + ], + "short_name": "WindowFocused", + "title": "bevy_window::event::WindowFocused", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowMoved": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "entity": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + }, + "position": { + "type": { + "$ref": "#/$defs/glam::IVec2" + } + } + }, + "required": [ + "entity", + "position" + ], + "short_name": "WindowMoved", + "title": "bevy_window::event::WindowMoved", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowResized": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "height": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "width": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "width", + "height" + ], + "short_name": "WindowResized", + "title": "bevy_window::event::WindowResized", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowScaleFactorChanged": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "scale_factor": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "scale_factor" + ], + "short_name": "WindowScaleFactorChanged", + "title": "bevy_window::event::WindowScaleFactorChanged", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::event::WindowThemeChanged": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "theme": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowTheme" + } + }, + "window": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + } + }, + "required": [ + "window", + "theme" + ], + "short_name": "WindowThemeChanged", + "title": "bevy_window::event::WindowThemeChanged", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::CompositeAlphaMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Auto", + "Opaque", + "PreMultiplied", + "PostMultiplied", + "Inherit" + ], + "short_name": "CompositeAlphaMode", + "title": "bevy_window::window::CompositeAlphaMode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::window::Cursor": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "grab_mode": { + "type": { + "$ref": "#/$defs/bevy_window::window::CursorGrabMode" + } + }, + "hit_test": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "icon": { + "type": { + "$ref": "#/$defs/bevy_window::cursor::CursorIcon" + } + }, + "visible": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "icon", + "visible", + "grab_mode", + "hit_test" + ], + "short_name": "Cursor", + "title": "bevy_window::window::Cursor", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::CursorGrabMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "None", + "Confined", + "Locked" + ], + "short_name": "CursorGrabMode", + "title": "bevy_window::window::CursorGrabMode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::window::EnabledButtons": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "close": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "maximize": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "minimize": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "minimize", + "maximize", + "close" + ], + "short_name": "EnabledButtons", + "title": "bevy_window::window::EnabledButtons", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::InternalWindowState": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "maximize_request": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "minimize_request": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "physical_cursor_position": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [], + "short_name": "InternalWindowState", + "title": "bevy_window::window::InternalWindowState", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::MonitorSelection": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Current" + }, + { + "title": "Primary" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/usize" + } + } + ], + "short_name": "Index", + "title": "Index", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "MonitorSelection", + "title": "bevy_window::window::MonitorSelection", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_window::window::PresentMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "AutoVsync", + "AutoNoVsync", + "Fifo", + "FifoRelaxed", + "Immediate", + "Mailbox" + ], + "short_name": "PresentMode", + "title": "bevy_window::window::PresentMode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::window::PrimaryWindow": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": {}, + "required": [], + "short_name": "PrimaryWindow", + "title": "bevy_window::window::PrimaryWindow", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::Window": { + "additionalProperties": false, + "isComponent": true, + "isResource": false, + "properties": { + "canvas": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + }, + "composite_alpha_mode": { + "type": { + "$ref": "#/$defs/bevy_window::window::CompositeAlphaMode" + } + }, + "cursor": { + "type": { + "$ref": "#/$defs/bevy_window::window::Cursor" + } + }, + "decorations": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "enabled_buttons": { + "type": { + "$ref": "#/$defs/bevy_window::window::EnabledButtons" + } + }, + "fit_canvas_to_parent": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "focused": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "ime_enabled": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "ime_position": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "internal": { + "type": { + "$ref": "#/$defs/bevy_window::window::InternalWindowState" + } + }, + "mode": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowMode" + } + }, + "position": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowPosition" + } + }, + "present_mode": { + "type": { + "$ref": "#/$defs/bevy_window::window::PresentMode" + } + }, + "prevent_default_event_handling": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "resizable": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "resize_constraints": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowResizeConstraints" + } + }, + "resolution": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowResolution" + } + }, + "title": { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + }, + "transparent": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "visible": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "window_level": { + "type": { + "$ref": "#/$defs/bevy_window::window::WindowLevel" + } + }, + "window_theme": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [ + "cursor", + "present_mode", + "mode", + "position", + "resolution", + "title", + "composite_alpha_mode", + "resize_constraints", + "resizable", + "enabled_buttons", + "decorations", + "transparent", + "focused", + "window_level", + "fit_canvas_to_parent", + "prevent_default_event_handling", + "internal", + "ime_enabled", + "ime_position", + "visible" + ], + "short_name": "Window", + "title": "bevy_window::window::Window", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::WindowLevel": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "AlwaysOnBottom", + "Normal", + "AlwaysOnTop" + ], + "short_name": "WindowLevel", + "title": "bevy_window::window::WindowLevel", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::window::WindowMode": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Windowed", + "BorderlessFullscreen", + "SizedFullscreen", + "Fullscreen" + ], + "short_name": "WindowMode", + "title": "bevy_window::window::WindowMode", + "type": "string", + "typeInfo": "Enum" + }, + "bevy_window::window::WindowPosition": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "Automatic" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_window::window::MonitorSelection" + } + } + ], + "short_name": "Centered", + "title": "Centered", + "type": "array", + "typeInfo": "Tuple" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::IVec2" + } + } + ], + "short_name": "At", + "title": "At", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "WindowPosition", + "title": "bevy_window::window::WindowPosition", + "type": "object", + "typeInfo": "Enum" + }, + "bevy_window::window::WindowResizeConstraints": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "max_height": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "max_width": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "min_height": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "min_width": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "min_width", + "min_height", + "max_width", + "max_height" + ], + "short_name": "WindowResizeConstraints", + "title": "bevy_window::window::WindowResizeConstraints", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::WindowResolution": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "physical_height": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "physical_width": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "scale_factor": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "scale_factor_override": { + "type": { + "$ref": "#/$defs/core::option::Option" + } + } + }, + "required": [ + "physical_width", + "physical_height", + "scale_factor" + ], + "short_name": "WindowResolution", + "title": "bevy_window::window::WindowResolution", + "type": "object", + "typeInfo": "Struct" + }, + "bevy_window::window::WindowTheme": { + "isComponent": false, + "isResource": false, + "oneOf": [ + "Light", + "Dark" + ], + "short_name": "WindowTheme", + "title": "bevy_window::window::WindowTheme", + "type": "string", + "typeInfo": "Enum" + }, + "bool": { + "isComponent": false, + "isResource": false, + "short_name": "bool", + "title": "bool", + "type": "boolean", + "typeInfo": "Value" + }, + "char": { + "isComponent": false, + "isResource": false, + "short_name": "char", + "title": "char", + "type": "string", + "typeInfo": "Value" + }, + "core::ops::Range": { + "isComponent": false, + "isResource": false, + "short_name": "Range", + "title": "core::ops::Range", + "type": "object", + "typeInfo": "Value" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::string::String" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option>": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/alloc::vec::Vec" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option>", + "title": "core::option::Option>", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option>": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_asset::handle::Handle" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option>", + "title": "core::option::Option>", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::camera::camera::Viewport" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bevy_render::mesh::mesh::Indices" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/bool" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f32" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/f64" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "core::option::Option": { + "isComponent": false, + "isResource": false, + "oneOf": [ + { + "title": "None" + }, + { + "items": false, + "prefixItems": [ + { + "type": { + "$ref": "#/$defs/glam::DVec2" + } + } + ], + "short_name": "Some", + "title": "Some", + "type": "array", + "typeInfo": "Tuple" + } + ], + "short_name": "Option", + "title": "core::option::Option", + "type": "object", + "typeInfo": "Enum" + }, + "f32": { + "isComponent": false, + "isResource": false, + "short_name": "f32", + "title": "f32", + "type": "float", + "typeInfo": "Value" + }, + "f64": { + "isComponent": false, + "isResource": false, + "short_name": "f64", + "title": "f64", + "type": "float", + "typeInfo": "Value" + }, + "glam::Affine2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "matrix2": { + "type": { + "$ref": "#/$defs/glam::Mat2" + } + }, + "translation": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "matrix2", + "translation" + ], + "short_name": "Affine2", + "title": "glam::Affine2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Affine3A": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "matrix3": { + "type": { + "$ref": "#/$defs/glam::Mat3A" + } + }, + "translation": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + } + }, + "required": [ + "matrix3", + "translation" + ], + "short_name": "Affine3A", + "title": "glam::Affine3A", + "type": "object", + "typeInfo": "Struct" + }, + "glam::BVec2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "y": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "BVec2", + "title": "glam::BVec2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::BVec3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "z": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "BVec3", + "title": "glam::BVec3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::BVec3A": { + "isComponent": false, + "isResource": false, + "short_name": "BVec3A", + "title": "glam::BVec3A", + "type": "object", + "typeInfo": "Value" + }, + "glam::BVec4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "x": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "y": { + "type": { + "$ref": "#/$defs/bool" + } + }, + "z": { + "type": { + "$ref": "#/$defs/bool" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "BVec4", + "title": "glam::BVec4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::BVec4A": { + "isComponent": false, + "isResource": false, + "short_name": "BVec4A", + "title": "glam::BVec4A", + "type": "object", + "typeInfo": "Value" + }, + "glam::DAffine2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "matrix2": { + "type": { + "$ref": "#/$defs/glam::DMat2" + } + }, + "translation": { + "type": { + "$ref": "#/$defs/glam::DVec2" + } + } + }, + "required": [ + "matrix2", + "translation" + ], + "short_name": "DAffine2", + "title": "glam::DAffine2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DAffine3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "matrix3": { + "type": { + "$ref": "#/$defs/glam::DMat3" + } + }, + "translation": { + "type": { + "$ref": "#/$defs/glam::DVec3" + } + } + }, + "required": [ + "matrix3", + "translation" + ], + "short_name": "DAffine3", + "title": "glam::DAffine3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DMat2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x_axis": { + "type": { + "$ref": "#/$defs/glam::DVec2" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::DVec2" + } + } + }, + "required": [ + "x_axis", + "y_axis" + ], + "short_name": "DMat2", + "title": "glam::DMat2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DMat3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x_axis": { + "type": { + "$ref": "#/$defs/glam::DVec3" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::DVec3" + } + }, + "z_axis": { + "type": { + "$ref": "#/$defs/glam::DVec3" + } + } + }, + "required": [ + "x_axis", + "y_axis", + "z_axis" + ], + "short_name": "DMat3", + "title": "glam::DMat3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DMat4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w_axis": { + "type": { + "$ref": "#/$defs/glam::DVec4" + } + }, + "x_axis": { + "type": { + "$ref": "#/$defs/glam::DVec4" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::DVec4" + } + }, + "z_axis": { + "type": { + "$ref": "#/$defs/glam::DVec4" + } + } + }, + "required": [ + "x_axis", + "y_axis", + "z_axis", + "w_axis" + ], + "short_name": "DMat4", + "title": "glam::DMat4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DQuat": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "x": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "DQuat", + "title": "glam::DQuat", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DVec2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "DVec2", + "title": "glam::DVec2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DVec3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "DVec3", + "title": "glam::DVec3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::DVec4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "x": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f64" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f64" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "DVec4", + "title": "glam::DVec4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::IVec2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/i32" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "IVec2", + "title": "glam::IVec2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::IVec3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/i32" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "IVec3", + "title": "glam::IVec3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::IVec4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "x": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/i32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/i32" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "IVec4", + "title": "glam::IVec4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Mat2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x_axis": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::Vec2" + } + } + }, + "required": [ + "x_axis", + "y_axis" + ], + "short_name": "Mat2", + "title": "glam::Mat2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Mat3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + }, + "z_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3" + } + } + }, + "required": [ + "x_axis", + "y_axis", + "z_axis" + ], + "short_name": "Mat3", + "title": "glam::Mat3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Mat3A": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + }, + "z_axis": { + "type": { + "$ref": "#/$defs/glam::Vec3A" + } + } + }, + "required": [ + "x_axis", + "y_axis", + "z_axis" + ], + "short_name": "Mat3A", + "title": "glam::Mat3A", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Mat4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w_axis": { + "type": { + "$ref": "#/$defs/glam::Vec4" + } + }, + "x_axis": { + "type": { + "$ref": "#/$defs/glam::Vec4" + } + }, + "y_axis": { + "type": { + "$ref": "#/$defs/glam::Vec4" + } + }, + "z_axis": { + "type": { + "$ref": "#/$defs/glam::Vec4" + } + } + }, + "required": [ + "x_axis", + "y_axis", + "z_axis", + "w_axis" + ], + "short_name": "Mat4", + "title": "glam::Mat4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Quat": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "Quat", + "title": "glam::Quat", + "type": "object", + "typeInfo": "Struct" + }, + "glam::UVec2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/u32" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "UVec2", + "title": "glam::UVec2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::UVec3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/u32" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "UVec3", + "title": "glam::UVec3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::UVec4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "x": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/u32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/u32" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "UVec4", + "title": "glam::UVec4", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Vec2": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "x", + "y" + ], + "short_name": "Vec2", + "title": "glam::Vec2", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Vec3": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "Vec3", + "title": "glam::Vec3", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Vec3A": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "x", + "y", + "z" + ], + "short_name": "Vec3A", + "title": "glam::Vec3A", + "type": "object", + "typeInfo": "Struct" + }, + "glam::Vec4": { + "additionalProperties": false, + "isComponent": false, + "isResource": false, + "properties": { + "w": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "x": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "y": { + "type": { + "$ref": "#/$defs/f32" + } + }, + "z": { + "type": { + "$ref": "#/$defs/f32" + } + } + }, + "required": [ + "x", + "y", + "z", + "w" + ], + "short_name": "Vec4", + "title": "glam::Vec4", + "type": "object", + "typeInfo": "Struct" + }, + "i128": { + "isComponent": false, + "isResource": false, + "short_name": "i128", + "title": "i128", + "type": "int", + "typeInfo": "Value" + }, + "i16": { + "isComponent": false, + "isResource": false, + "short_name": "i16", + "title": "i16", + "type": "int", + "typeInfo": "Value" + }, + "i32": { + "isComponent": false, + "isResource": false, + "short_name": "i32", + "title": "i32", + "type": "int", + "typeInfo": "Value" + }, + "i64": { + "isComponent": false, + "isResource": false, + "short_name": "i64", + "title": "i64", + "type": "int", + "typeInfo": "Value" + }, + "i8": { + "isComponent": false, + "isResource": false, + "short_name": "i8", + "title": "i8", + "type": "int", + "typeInfo": "Value" + }, + "isize": { + "isComponent": false, + "isResource": false, + "short_name": "isize", + "title": "isize", + "type": "int", + "typeInfo": "Value" + }, + "smallvec::SmallVec<[bevy_ecs::Entity; 8]>": { + "isComponent": false, + "isResource": false, + "items": { + "type": { + "$ref": "#/$defs/bevy_ecs::Entity" + } + }, + "short_name": "SmallVec<[Entity; 8]>", + "title": "smallvec::SmallVec<[bevy_ecs::Entity; 8]>", + "type": "array", + "typeInfo": "List" + }, + "std::ffi::OsString": { + "isComponent": false, + "isResource": false, + "short_name": "OsString", + "title": "std::ffi::OsString", + "type": "object", + "typeInfo": "Value" + }, + "std::path::PathBuf": { + "isComponent": false, + "isResource": false, + "short_name": "PathBuf", + "title": "std::path::PathBuf", + "type": "object", + "typeInfo": "Value" + }, + "u128": { + "isComponent": false, + "isResource": false, + "short_name": "u128", + "title": "u128", + "type": "uint", + "typeInfo": "Value" + }, + "u16": { + "isComponent": false, + "isResource": false, + "short_name": "u16", + "title": "u16", + "type": "uint", + "typeInfo": "Value" + }, + "u32": { + "isComponent": false, + "isResource": false, + "short_name": "u32", + "title": "u32", + "type": "uint", + "typeInfo": "Value" + }, + "u64": { + "isComponent": false, + "isResource": false, + "short_name": "u64", + "title": "u64", + "type": "uint", + "typeInfo": "Value" + }, + "u8": { + "isComponent": false, + "isResource": false, + "short_name": "u8", + "title": "u8", + "type": "uint", + "typeInfo": "Value" + }, + "usize": { + "isComponent": false, + "isResource": false, + "short_name": "usize", + "title": "usize", + "type": "uint", + "typeInfo": "Value" + } + }, + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "bevy component registry schema" +} \ No newline at end of file diff --git a/testing/bevy_example/assets/testing.blend b/testing/bevy_example/assets/testing.blend new file mode 100644 index 0000000..28b93dd Binary files /dev/null and b/testing/bevy_example/assets/testing.blend differ diff --git a/testing/bevy_example/src/core/mod.rs b/testing/bevy_example/src/core/mod.rs new file mode 100644 index 0000000..5421e4e --- /dev/null +++ b/testing/bevy_example/src/core/mod.rs @@ -0,0 +1,22 @@ +use bevy::prelude::*; +use bevy_gltf_blueprints::*; +use bevy_registry_export::*; + +pub struct CorePlugin; +impl Plugin for CorePlugin { + fn build(&self, app: &mut App) { + app.add_plugins(( + ExportRegistryPlugin { + save_path: "assets/registry.json".into(), + ..Default::default() + }, + BlueprintsPlugin { + legacy_mode: false, + library_folder: "models/library".into(), + format: GltfFormat::GLB, + aabbs: true, + ..Default::default() + }, + )); + } +} diff --git a/testing/bevy_example/src/game/in_game.rs b/testing/bevy_example/src/game/in_game.rs new file mode 100644 index 0000000..5a4a507 --- /dev/null +++ b/testing/bevy_example/src/game/in_game.rs @@ -0,0 +1,84 @@ +use bevy::prelude::*; +use bevy_gltf_blueprints::{BluePrintBundle, BlueprintName, GameWorldTag}; +use bevy_gltf_worlflow_examples_common::{assets::GameAssets, GameState, InAppRunning}; + +use bevy_rapier3d::prelude::Velocity; +use rand::Rng; + +pub fn setup_game( + mut commands: Commands, + game_assets: Res, + models: Res>, + mut next_game_state: ResMut>, +) { + println!("setting up all stuff"); + commands.insert_resource(AmbientLight { + color: Color::WHITE, + brightness: 0.2, + }); + // here we actually spawn our game world/level + + commands.spawn(( + SceneBundle { + // note: because of this issue https://github.com/bevyengine/bevy/issues/10436, "world" is now a gltf file instead of a scene + scene: models + .get(game_assets.world.id()) + .expect("main level should have been loaded") + .scenes[0] + .clone(), + ..default() + }, + bevy::prelude::Name::from("world"), + GameWorldTag, + InAppRunning, + )); + + next_game_state.set(GameState::InGame) +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct UnregisteredComponent; + +pub fn spawn_test( + keycode: Res>, + mut commands: Commands, + + mut game_world: Query<(Entity, &Children), With>, +) { + if keycode.just_pressed(KeyCode::T) { + let world = game_world.single_mut(); + let world = world.1[0]; + + let mut rng = rand::thread_rng(); + let range = 5.5; + let x: f32 = rng.gen_range(-range..range); + let y: f32 = rng.gen_range(-range..range); + + let mut rng = rand::thread_rng(); + let range = 0.8; + let vel_x: f32 = rng.gen_range(-range..range); + let vel_y: f32 = rng.gen_range(2.0..2.5); + let vel_z: f32 = rng.gen_range(-range..range); + + let name_index: u64 = rng.gen(); + + let new_entity = commands + .spawn(( + BluePrintBundle { + blueprint: BlueprintName("Health_Pickup".to_string()), + ..Default::default() + }, + bevy::prelude::Name::from(format!("test{}", name_index)), + // BlueprintName("Health_Pickup".to_string()), + // SpawnHere, + TransformBundle::from_transform(Transform::from_xyz(x, 2.0, y)), + Velocity { + linvel: Vec3::new(vel_x, vel_y, vel_z), + angvel: Vec3::new(0.0, 0.0, 0.0), + }, + )) + .id(); + commands.entity(world).add_child(new_entity); + } +} diff --git a/testing/bevy_example/src/game/mod.rs b/testing/bevy_example/src/game/mod.rs new file mode 100644 index 0000000..1584153 --- /dev/null +++ b/testing/bevy_example/src/game/mod.rs @@ -0,0 +1,28 @@ +pub mod in_game; +use std::time::Duration; + +pub use in_game::*; + +use bevy::{prelude::*, time::common_conditions::on_timer}; +use bevy_gltf_worlflow_examples_common::{AppState, GameState}; + +fn start_game(mut next_app_state: ResMut>) { + next_app_state.set(AppState::AppLoading); +} + +fn exit_game(mut app_exit_events: ResMut>) { + app_exit_events.send(bevy::app::AppExit); +} + +pub struct GamePlugin; +impl Plugin for GamePlugin { + fn build(&self, app: &mut App) { + app.add_systems(Update, (spawn_test).run_if(in_state(GameState::InGame))) + .add_systems(OnEnter(AppState::MenuRunning), start_game) + .add_systems( + Update, + exit_game.run_if(on_timer(Duration::from_secs_f32(0.5))), + ) // shut down the app after this time + .add_systems(OnEnter(AppState::AppRunning), setup_game); + } +} diff --git a/testing/bevy_example/src/main.rs b/testing/bevy_example/src/main.rs new file mode 100644 index 0000000..8fca426 --- /dev/null +++ b/testing/bevy_example/src/main.rs @@ -0,0 +1,27 @@ +use bevy::prelude::*; +use bevy_editor_pls::prelude::*; +use bevy_gltf_worlflow_examples_common::CommonPlugin; + +mod core; +use crate::core::*; + +mod game; +use game::*; + +mod test_components; +use test_components::*; + +fn main() { + App::new() + .add_plugins(( + DefaultPlugins.set(AssetPlugin::default()), + // editor + EditorPlugin::default(), + // our custom plugins + CommonPlugin, + CorePlugin, // reusable plugins + GamePlugin, // specific to our game + ComponentsTestPlugin, // Showcases different type of components /structs + )) + .run(); +} diff --git a/testing/bevy_example/src/test_components.rs b/testing/bevy_example/src/test_components.rs new file mode 100644 index 0000000..58a19c2 --- /dev/null +++ b/testing/bevy_example/src/test_components.rs @@ -0,0 +1,190 @@ +use bevy::{ + pbr::{ExtendedMaterial, MaterialExtension}, + prelude::*, + render::render_resource::*, +}; +use std::ops::Range; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct UnitTest; + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TupleTestF32(f32); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TupleTestU64(u64); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +pub struct TupleTestStr(String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleTest2(f32, u64, String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleTestBool(bool); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleVec2(Vec2); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleVec3(Vec3); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleVec(Vec); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleVecF32F32(Vec<(f32, f32)>); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TupleTestColor(Color); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct BasicTest { + a: f32, + b: u64, + c: String, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum EnumTest { + Metal, + Wood, + Rock, + Cloth, + Squishy, + #[default] + None, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct NestingTestLevel2 { + text: String, + enable: bool, + enum_inner: EnumTest, + color: TupleTestColor, + toggle: TupleTestBool, + basic: BasicTest, + pub nested: NestingTestLevel3, + colors_list: VecOfColors, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct NestingTestLevel3 { + vec: TupleVec3, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct NestedTupleStuff(f32, u64, NestingTestLevel2); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum EnumComplex { + Float(f32), + Wood(String), + Vec(BasicTest), + SomeThing, + StructLike { + a: f32, + b: u32, + c: String, + }, + #[default] + None, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct VecOfVec3s2(Vec); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct VecOfColors(Vec); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct AAAAddedCOMPONENT; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct AComponentWithAnExtremlyExageratedOrMaybeNotButCouldBeNameOrWut; + +/* fn toto(){ + let bla:core::ops::Range = Range { start: 0.1, end: 5.0}; +} */ + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct VecOfF32s(Vec); + +// test for extended materials +#[derive(Asset, AsBindGroup, Reflect, Debug, Clone)] +struct MyExtension { + // We need to ensure that the bindings of the base material and the extension do not conflict, + // so we start from binding slot 100, leaving slots 0-99 for the base material. + #[uniform(100)] + quantize_steps: u32, +} + +impl MaterialExtension for MyExtension { + fn fragment_shader() -> ShaderRef { + "shaders/extended_material.wgsl".into() + } + + fn deferred_fragment_shader() -> ShaderRef { + "shaders/extended_material.wgsl".into() + } +} + +pub struct ComponentsTestPlugin; +impl Plugin for ComponentsTestPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::>() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::<(f32, f32)>() + .register_type::>() + .register_type::>() + .register_type::>() + .register_type::() + .register_type::>() + .register_type::() + .register_type::>() + // .register_type::() + .register_type::() + .add_plugins(MaterialPlugin::< + ExtendedMaterial, + >::default()); + } +} diff --git a/tools/gltf_auto_export/__init__.py b/tools/gltf_auto_export/__init__.py index 79895e9..a38de30 100644 --- a/tools/gltf_auto_export/__init__.py +++ b/tools/gltf_auto_export/__init__.py @@ -1,7 +1,7 @@ bl_info = { "name": "gltf_auto_export", "author": "kaosigh", - "version": (0, 12, 1), + "version": (0, 13, 0), "blender": (3, 4, 0), "location": "File > Import-Export", "description": "glTF/glb auto-export", diff --git a/tools/gltf_auto_export/auto_export/auto_export.py b/tools/gltf_auto_export/auto_export/auto_export.py index dcef1cf..a9cd0f4 100644 --- a/tools/gltf_auto_export/auto_export/auto_export.py +++ b/tools/gltf_auto_export/auto_export/auto_export.py @@ -21,6 +21,9 @@ def auto_export(changes_per_scene, changed_export_parameters, addon_prefs): folder_path = os.path.dirname(file_path) # get the preferences for our addon + #should we use change detection or not + export_change_detection = getattr(addon_prefs, "export_change_detection") + export_blueprints = getattr(addon_prefs,"export_blueprints") export_output_folder = getattr(addon_prefs,"export_output_folder") @@ -75,7 +78,7 @@ def auto_export(changes_per_scene, changed_export_parameters, addon_prefs): if matching_collection is not None: changed_collections.append(matching_collection) - collections_to_export = list(set(changed_collections + collections_not_on_disk)) + collections_to_export = list(set(changed_collections + collections_not_on_disk)) if export_change_detection else collections # we need to re_export everything if the export parameters have been changed collections_to_export = collections if changed_export_parameters else collections_to_export @@ -110,14 +113,14 @@ def auto_export(changes_per_scene, changed_export_parameters, addon_prefs): print("export MAIN scenes") for scene_name in main_scene_names: # we have more relaxed rules to determine if the main scenes have changed : any change is ok, (allows easier handling of changes, render settings etc) - do_export_main_scene = changed_export_parameters or scene_name in changes_per_scene.keys() or not check_if_blueprint_on_disk(scene_name, export_levels_path, gltf_extension) + do_export_main_scene = not export_change_detection or changed_export_parameters or scene_name in changes_per_scene.keys() or not check_if_blueprint_on_disk(scene_name, export_levels_path, gltf_extension) if do_export_main_scene: print(" exporting scene:", scene_name) export_main_scene(bpy.data.scenes[scene_name], folder_path, addon_prefs, library_collections) # now deal with blueprints/collections - do_export_library_scene = changed_export_parameters or len(collections_to_export) > 0 # export_library_scene_name in changes_per_scene.keys() + do_export_library_scene = not export_change_detection or changed_export_parameters or len(collections_to_export) > 0 # export_library_scene_name in changes_per_scene.keys() print("export LIBRARY") if do_export_library_scene: # we only want to go through the library scenes where our collections to export are present diff --git a/tools/gltf_auto_export/auto_export/export_gltf.py b/tools/gltf_auto_export/auto_export/export_gltf.py index bc76f28..11fb4da 100644 --- a/tools/gltf_auto_export/auto_export/export_gltf.py +++ b/tools/gltf_auto_export/auto_export/export_gltf.py @@ -33,7 +33,8 @@ def generate_gltf_export_preferences(addon_prefs): export_skins=True, export_morph=False, export_apply=False, - export_animations=False + export_animations=False, + export_optimize_animation_size=False ) for key in addon_prefs.__annotations__.keys(): diff --git a/tools/gltf_auto_export/auto_export/operators.py b/tools/gltf_auto_export/auto_export/operators.py index 2c6048d..d252bea 100644 --- a/tools/gltf_auto_export/auto_export/operators.py +++ b/tools/gltf_auto_export/auto_export/operators.py @@ -9,7 +9,8 @@ from ..helpers.helpers_collections import (get_exportable_collections) from .auto_export import auto_export class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): - """test""" + """auto export gltf""" + #bl_idname = "object.xxx" bl_idname = "export_scenes.auto_gltf" bl_label = "Apply settings" bl_options = {'PRESET', 'UNDO'} @@ -21,7 +22,7 @@ class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): 'export_main_scene_name', 'export_output_folder', 'export_library_scene_name', - + 'export_change_detection', 'export_blueprints', 'export_blueprints_path', @@ -79,7 +80,17 @@ class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): # we inject all that we need, the above is not sufficient for (k, v) in self.properties.items(): if k in self.white_list or k not in AutoExportGltfPreferenceNames: - export_props[k] = v + value = v + # FIXME: really weird having to do this + if k == "collection_instances_combine_mode": + value = self.collection_instances_combine_mode + if k == "export_format": + value = self.export_format + if k == "export_image_format": + value = self.export_image_format + if k == "export_materials": + value = self.export_materials + export_props[k] = value # we add main & library scene names to our preferences export_props['main_scene_names'] = list(map(lambda scene_data: scene_data.name, getattr(self,"main_scenes"))) @@ -93,7 +104,7 @@ class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): #print("saving settings", bpy.data.texts[".gltf_auto_export_settings"].as_string(), "raw", json.dumps(export_props)) def load_settings(self, context): - #print("loading settings") + # print("loading settings") settings = None try: settings = bpy.data.texts[".gltf_auto_export_settings"].as_string() @@ -102,10 +113,10 @@ class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): self.will_save_settings = False if settings: - #print("loading settings in invoke AutoExportGLTF", settings) + print("loading settings in invoke AutoExportGLTF", settings) try: for (k, v) in settings.items(): - #print("loading setting", k, v) + print("loading setting", k, v) setattr(self, k, v) self.will_save_settings = True @@ -128,7 +139,8 @@ class AutoExportGLTF(Operator, AutoExportGltfAddonPreferences, ExportHelper): item = library_scenes.add() item.name = item_name - except (AttributeError, TypeError): + except Exception as error: + print("error", error) self.report({"ERROR"}, "Loading export settings failed. Removed corrupted settings") bpy.data.texts.remove(bpy.data.texts[".gltf_auto_export_settings"]) diff --git a/tools/gltf_auto_export/auto_export/preferences.py b/tools/gltf_auto_export/auto_export/preferences.py index 2172cf0..e2467b1 100644 --- a/tools/gltf_auto_export/auto_export/preferences.py +++ b/tools/gltf_auto_export/auto_export/preferences.py @@ -15,6 +15,7 @@ AutoExportGltfPreferenceNames = [ 'export_main_scene_name', 'export_output_folder', 'export_library_scene_name', + 'export_change_detection', 'export_blueprints', 'export_blueprints_path', @@ -39,7 +40,7 @@ AutoExportGltfPreferenceNames = [ 'library_scene_names', 'previous_export_settings', 'filter_glob', - 'will_save_settings' + 'will_save_settings', ] class AutoExportGltfAddonPreferences(AddonPreferences): @@ -86,6 +87,11 @@ class AutoExportGltfAddonPreferences(AddonPreferences): description='The name of the library scene to auto export', default='Library' ) + export_change_detection: BoolProperty( + name='Change detection', + description='Use change detection to determine what/if should be exported', + default=True + ) # scene components export_scene_settings: BoolProperty( name='Export scene settings', diff --git a/tools/gltf_auto_export/helpers/helpers_scenes.py b/tools/gltf_auto_export/helpers/helpers_scenes.py index 32b196c..a8e4a27 100644 --- a/tools/gltf_auto_export/helpers/helpers_scenes.py +++ b/tools/gltf_auto_export/helpers/helpers_scenes.py @@ -2,16 +2,32 @@ import bpy from .helpers_collections import (set_active_collection) from .object_makers import (make_empty) + +# these are mostly for when using this add-on together with the bevy_components add-on +custom_properties_to_filter_out = ['_combine', 'template', 'components_meta'] + +def is_component_valid(object, component_name): + if "components_meta" in object: + target_components_metadata = object.components_meta.components + component_meta = next(filter(lambda component: component["name"] == component_name, target_components_metadata), None) + if component_meta != None: + return component_meta.enabled and not component_meta.invalid + return True + +def remove_unwanted_custom_properties(object): + to_remove = [] + for component_name in object.keys(): + if not is_component_valid(object, component_name): + to_remove.append(component_name) + + for cp in custom_properties_to_filter_out + to_remove: + if cp in object: + del object[cp] + # copies the contents of a collection into another one while replacing library instances with empties def copy_hollowed_collection_into(source_collection, destination_collection, parent_empty=None, filter=None, library_collections=[], addon_prefs={}): collection_instances_combine_mode = getattr(addon_prefs, "collection_instances_combine_mode") legacy_mode = getattr(addon_prefs, "export_legacy_mode") - - root_objects = [] - special_properties= { # to be able to reset any special property afterwards - "combine": [], - } - collection_instances_combine_mode= collection_instances_combine_mode for object in source_collection.objects: @@ -31,23 +47,26 @@ def copy_hollowed_collection_into(source_collection, destination_collection, par empty_obj['BlueprintName'] = '"'+collection_name+'"' if legacy_mode else '("'+collection_name+'")' empty_obj['SpawnHere'] = '' - for k, v in object.items(): - if k != 'template' or k != '_combine': # do not copy these properties - empty_obj[k] = v + # we copy custom properties over from our original object to our empty + for component_name, component_value in object.items(): + if component_name not in custom_properties_to_filter_out and is_component_valid(object, component_name): #copy only valid properties + empty_obj[component_name] = component_value if parent_empty is not None: empty_obj.parent = parent_empty - else: - # we backup special properties that we do not want to export, and remove them - if '_combine' in object: - special_properties["combine"].append((object, object['_combine'])) - del object['_combine'] + else: + # we create a copy of our object, to leave the original one as it is + original_name = object.name + object.name = original_name + "____bak" + copy = object.copy() + copy.name = original_name + remove_unwanted_custom_properties(copy) if parent_empty is not None: - object.parent = parent_empty - destination_collection.objects.link(object) + copy.parent = parent_empty + destination_collection.objects.link(copy) else: - root_objects.append(object) - destination_collection.objects.link(object) + # root_objects.append(object) + destination_collection.objects.link(copy) # for every sub-collection of the source, copy its content into a new sub-collection of the destination for collection in source_collection.children: @@ -58,7 +77,7 @@ def copy_hollowed_collection_into(source_collection, destination_collection, par if parent_empty is not None: collection_placeholder.parent = parent_empty - nested_results = copy_hollowed_collection_into( + copy_hollowed_collection_into( source_collection = collection, destination_collection = destination_collection, parent_empty = collection_placeholder, @@ -66,19 +85,11 @@ def copy_hollowed_collection_into(source_collection, destination_collection, par library_collections = library_collections, addon_prefs=addon_prefs ) - sub_root_objects = nested_results["root_objects"] - sub_special_properties = nested_results["special_properties"] - - root_objects.extend(sub_root_objects) - for s in sub_special_properties.keys(): - if not s in special_properties.keys(): - special_properties[s] = [] - special_properties[s].extend(sub_special_properties[s]) - - return {"root_objects": root_objects, "special_properties": special_properties} + + return {} # clear & remove "hollow scene" -def clear_hollow_scene(temp_scene, original_root_collection, root_objects, special_properties): +def clear_hollow_scene(temp_scene, original_root_collection): def restore_original_names(collection): if collection.name.endswith("____bak"): collection.name = collection.name.replace("____bak", "") @@ -86,6 +97,9 @@ def clear_hollow_scene(temp_scene, original_root_collection, root_objects, speci if object.instance_type == 'COLLECTION': if object.name.endswith("____bak"): object.name = object.name.replace("____bak", "") + else: + if object.name.endswith("____bak"): + object.name = object.name.replace("____bak", "") for child_collection in collection.children: restore_original_names(child_collection) @@ -96,37 +110,15 @@ def clear_hollow_scene(temp_scene, original_root_collection, root_objects, speci temp_root_collection = temp_scene.collection temp_scene_objects = [o for o in temp_root_collection.objects] for object in temp_scene_objects: - if object.type == 'EMPTY': - if hasattr(object, "SpawnHere"): - bpy.data.objects.remove(object, do_unlink=True) - else: - try: - temp_root_collection.objects.unlink(object) - except: - print("failed to unlink", object) - if object in root_objects: - pass - else: - bpy.data.objects.remove(object, do_unlink=True) - else: - temp_root_collection.objects.unlink(object) - - # remove temporary collections - """for collection in temporary_collections: - bpy.data.collections.remove(collection)""" - - # put back special properties - for (object, value) in special_properties["combine"]: - object['_combine'] = value - + bpy.data.objects.remove(object, do_unlink=True) # remove the temporary scene bpy.data.scenes.remove(temp_scene) # convenience utility to get lists of scenes def get_scenes(addon_prefs): - level_scene_names= list(map(lambda scene: scene.name, getattr(addon_prefs,"main_scenes"))) - library_scene_names = list(map(lambda scene: scene.name, getattr(addon_prefs,"library_scenes"))) + level_scene_names= list(map(lambda scene: scene.name, getattr(addon_prefs,"main_scenes"))) # getattr(addon_prefs, "main_scene_names_compact").split(',')# + library_scene_names = list(map(lambda scene: scene.name, getattr(addon_prefs,"library_scenes"))) #getattr(addon_prefs, "main_scene_names_compact").split(',')# level_scene_names = list(filter(lambda name: name in bpy.data.scenes, level_scene_names)) library_scene_names = list(filter(lambda name: name in bpy.data.scenes, library_scene_names)) diff --git a/tools/gltf_auto_export/pytest.ini b/tools/gltf_auto_export/pytest.ini new file mode 100644 index 0000000..319620f --- /dev/null +++ b/tools/gltf_auto_export/pytest.ini @@ -0,0 +1,6 @@ +[pytest] +blender-template = ../../testing/bevy_example/assets/testing.blend +addopts = -svv +testpaths = + tests + diff --git a/tools/gltf_auto_export/tests/__init__.py b/tools/gltf_auto_export/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tools/gltf_auto_export/tests/test_basic.py b/tools/gltf_auto_export/tests/test_basic.py new file mode 100644 index 0000000..0ebe949 --- /dev/null +++ b/tools/gltf_auto_export/tests/test_basic.py @@ -0,0 +1,212 @@ +import bpy +import os +import subprocess +import json +import pytest +import shutil + + +@pytest.fixture +def setup_data(request): + print("\nSetting up resources...") + root_path = "../../testing/bevy_example" + assets_root_path = os.path.join(root_path, "assets") + + models_path = os.path.join(assets_root_path, "models") + materials_path = os.path.join(assets_root_path, "materials") + other_materials_path = os.path.join(assets_root_path, "other_materials") + yield {"root_path": root_path, "assets_root_path": assets_root_path, "models_path": models_path, "materials_path": materials_path, "other_materials_path": other_materials_path} + + def finalizer(): + print("\nPerforming teardown...") + if os.path.exists(models_path): + shutil.rmtree(models_path) + + if os.path.exists(materials_path): + shutil.rmtree(materials_path) + + if os.path.exists(other_materials_path): + shutil.rmtree(other_materials_path) + + + request.addfinalizer(finalizer) + + return None + +def test_export_do_not_export_blueprints(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=False, + ) + assert os.path.exists(os.path.join(setup_data["models_path"], "World.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint1.glb")) == False + +def test_export_custom_blueprints_path(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_blueprints_path = "another_library_path" + ) + assert os.path.exists(os.path.join(setup_data["models_path"], "World.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "another_library_path", "Blueprint1.glb")) == True + +def test_export_materials_library(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_materials_library = True + ) + + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint1.glb")) == True + assert os.path.exists(os.path.join(setup_data["materials_path"], "testing_materials_library.glb")) == True + + +def test_export_materials_library_custom_path(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_materials_library = True, + export_materials_path="other_materials" + ) + + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint1.glb")) == True + assert os.path.exists(os.path.join(setup_data["materials_path"], "testing_materials_library.glb")) == False + assert os.path.exists(os.path.join(setup_data["other_materials_path"], "testing_materials_library.glb")) == True + +def test_export_collection_instances_combine_mode(setup_data): # TODO: change & check this + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + + bpy.data.objects["Cube"]["dynamic"] = True + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_blueprints=True, + collection_instances_combine_mode = 'Embed' + ) + + assert os.path.exists(os.path.join(setup_data["models_path"], "World.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "World_dynamic.glb")) == False + + +def test_export_do_not_export_marked_assets(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_marked_assets = False + ) + assert os.path.exists(os.path.join(setup_data["models_path"], "World.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint1.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint2.glb")) == False + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint3.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint4_nested.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "library", "Blueprint5.glb")) == False + + +def test_export_separate_dynamic_and_static_objects(setup_data): + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + + bpy.data.objects["Cube"]["dynamic"] = True + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_separate_dynamic_and_static_objects = True + ) + + assert os.path.exists(os.path.join(setup_data["models_path"], "World.glb")) == True + assert os.path.exists(os.path.join(setup_data["models_path"], "World_dynamic.glb")) == True diff --git a/tools/gltf_auto_export/tests/test_bevy_integration.py b/tools/gltf_auto_export/tests/test_bevy_integration.py new file mode 100644 index 0000000..64bdf47 --- /dev/null +++ b/tools/gltf_auto_export/tests/test_bevy_integration.py @@ -0,0 +1,93 @@ +import bpy +import os +import subprocess +import json +import pytest +import shutil + +@pytest.fixture +def setup_data(request): + print("\nSetting up resources...") + + def finalizer(): + root_path = "../../testing/bevy_example" + assets_root_path = os.path.join(root_path, "assets") + models_path = os.path.join(assets_root_path, "models") + #materials_path = os.path.join("../../testing", "materials") + #other_materials_path = os.path.join("../../testing", "other_materials") + + print("\nPerforming teardown...") + if os.path.exists(models_path): + shutil.rmtree(models_path) + + """if os.path.exists(materials_path): + shutil.rmtree(materials_path) + + if os.path.exists(other_materials_path): + shutil.rmtree(other_materials_path)""" + + + request.addfinalizer(finalizer) + + return None + + +""" +- removes existing gltf files if needed +- calls exporter on the testing scene +- launches bevy app & checks for output +- if all worked => test is a-ok +""" +def test_export_complex(setup_data): + root_path = "../../testing/bevy_example" + assets_root_path = os.path.join(root_path, "assets") + models_path = os.path.join(assets_root_path, "models") + auto_export_operator = bpy.ops.export_scenes.auto_gltf + + # with change detection + # first, configure things + # we use the global settings for that + export_props = { + "main_scene_names" : ['World'], + "library_scene_names": ['Library'] + } + stored_settings = bpy.data.texts[".gltf_auto_export_settings"] if ".gltf_auto_export_settings" in bpy.data.texts else bpy.data.texts.new(".gltf_auto_export_settings") + stored_settings.clear() + stored_settings.write(json.dumps(export_props)) + + # move the main cube + bpy.data.objects["Cube"].location = [1, 0, 0] + # move the cube in the library + bpy.data.objects["Blueprint1_mesh"].location = [1, 2, 1] + + auto_export_operator( + direct_mode=True, + export_output_folder="./models", + export_scene_settings=True, + export_blueprints=True, + export_legacy_mode=False + ) + # blueprint1 => has an instance, got changed, should export + # blueprint2 => has NO instance, but marked as asset, should export + # blueprint3 => has NO instance, not marked as asset, used inside blueprint 4: should export + # blueprint4 => has an instance, with nested blueprint3, should export + # blueprint5 => has NO instance, not marked as asset, should NOT export + + assert os.path.exists(os.path.join(models_path, "World.glb")) == True + + assert os.path.exists(os.path.join(models_path, "library", "Blueprint1.glb")) == True + assert os.path.exists(os.path.join(models_path, "library", "Blueprint2.glb")) == True + assert os.path.exists(os.path.join(models_path, "library", "Blueprint3.glb")) == True + assert os.path.exists(os.path.join(models_path, "library", "Blueprint4_nested.glb")) == True + assert os.path.exists(os.path.join(models_path, "library", "Blueprint5.glb")) == False + + # now run bevy + bla = "cargo run --features bevy/dynamic_linking" + # assert getattr(propertyGroup, 'a') == 0.5714026093482971 + FNULL = open(os.devnull, 'w') #use this if you want to suppress output to stdout from the subprocess + filename = "my_file.dat" + args = bla + #subprocess.call(args, stdout=FNULL, stderr=FNULL, shell=False, cwd=bevy_run_exec_path) + return_code = subprocess.call(["cargo", "run", "--features", "bevy/dynamic_linking"], cwd=root_path) + print("RETURN CODE OF BEVY APP", return_code) + assert return_code == 0 diff --git a/tools/gltf_auto_export/ui/main.py b/tools/gltf_auto_export/ui/main.py index 828cf57..0e7edb9 100644 --- a/tools/gltf_auto_export/ui/main.py +++ b/tools/gltf_auto_export/ui/main.py @@ -37,7 +37,6 @@ class GLTF_PT_auto_export_main(bpy.types.Panel): sfile = context.space_data - class GLTF_PT_auto_export_root(bpy.types.Panel): bl_space_type = 'FILE_BROWSER' bl_region_type = 'TOOL_PROPS' @@ -66,6 +65,7 @@ class GLTF_PT_auto_export_root(bpy.types.Panel): layout.active = operator.auto_export layout.prop(operator, 'will_save_settings') + layout.prop(operator, "export_change_detection") layout.prop(operator, "export_output_folder") layout.prop(operator, "export_scene_settings") layout.prop(operator, "export_legacy_mode") @@ -124,8 +124,6 @@ class GLTF_PT_auto_export_root(bpy.types.Panel): remove_operator.action = 'REMOVE' remove_operator.scene_type = 'library' col.separator() - - class GLTF_PT_auto_export_blueprints(bpy.types.Panel): bl_space_type = 'FILE_BROWSER'