* chore(v0.14): upgraded all current crates, examples, testing setup etc to Bevy 0.14
* chore(Blender tools): some minor fixed for Bevy 0.14 & version bump
* closes#80
* preliminary work for further asset management from the Blender side without needing additional dependencies & boilerplate on the Bevy side
* feat(auto_export):
* now injecting list/tree of sub blueprints to main scenes/levels & blueprints
* made blueprints/asset list conditional on NOT legacy mode
* feat(gltf_blueprints):
* basics of dynamic loading of sub_blueprints
* added same kind of logic to the loading of material files
* also made a more generic variant of the BlueprintAssetLoadTracker
* added gltf file path for more informative error in case a gltf is missing
* refactor():
* made the various gltf assets loaded by bevy_asset_loader optional (to handle the case where they are not present)
* updated all examples accordingly
* chore(crates): fixed links, slight tweaks, bumped versions
* closes#163
* closes#153
* closes#154
* feat(bevy_components): added tools for diagnostics/ finding & replacing invalid & unregistered components
* added ui for listing invalid & unregistered components
* added boilerplate & functionality for component renaming/replacing
* injection of invalid status & message in case the conversion did not work well
* added deletion of components individual & bulk
* added handling of wrong string for unit structs : allows detection of more wrong values for components
* added progress bars for bulk operators
* added docs for new features
* added tests
* added small "attempt to fix" button for unit struct uis in case they are invalid
* feat(bevy_components): added progress indicators for from/to custom properties
* various other minor ui tweaks for workflow improvement
* chore(crates): updated crates to Bevy 0.13
* updated deps
* updated / changed code where relevant
* updated README files
* bumped version numbers for upcoming release
* updated rust-toolchain
* updated assets where relevant
* closes#132
* feat(bevy_gltf_components):
* added GltfProcessed flag component to improve performance of iteration over added<gltfExtras>
* closes#144
* light & shadow processing is now integrated, to match lights coming from Blender: you can now control whether
lights cast shadows, the cascade resolution , background color etc from Blender
* closes#155
* feat(bevy_registry_export): added boilerplate to make registry path relative to assets folder
* closes#137
* feat(tools): added boilerplate for internal tools
* clean zip file generator for blender add-on releases
* example gltf file generator
* feat(lighting): added components, exporter support & testing for blender-configurable shadows
* added BlenderLightShadows component to bevy_gltf_components
* added writing shadow information to gltf_auto_export
* updated tests
* closes#157
Co-authored-by: Jan Hohenheim <jan@hohenheim.ch>
* closes#133
* fix(gltf_auto_export): corrected ron value for "spawnHere" components
* fix(bevy_components): fixed handling of empty/ unit structs
* updated to/from prop_groups
* updated tests/ expected files
* bumped version
* removed verbose "watching schema file for changes"
* fix(bevy_gltf_components): fixed issue of incorect handling of empty component values in non legacy mode:
* aka: replacing empty component values (ron strings) with '()' should ONLY happen in legacy mode
* even more aka: ron strings for component values should not be altered when not in legacy mode (provided ron
strings should be valid)
* tests():
* changed bevy_component tests to use testing/bevy_example as source for registry data
* removed testing/bevy_registry_export, as it is redudant
* related tweaks & cleanups
* chore(crates): bumped up versions because of breaking change
* chore(examples): updated registry export example to use up-to-date / fixed components data
* chore(bevy_gltf_components): added back warning about legacy mode, in a less spammy way
* docs(bevy_components): added notes about v0.3 breaking changes
* fix(gltf_auto_export): added fix for correct "deep-copying" of objects & hierarchy so that animated
meshes & nested hierarchies get exported correctly
* test(gltf_auto_export):
* added visual testing to check for overall regression :
* added screenshoting in bevy app
* added visual compare with reference screenshot on python side
* added testing of correct export of animated models
* added testing of correct export of empties
* added testing of correct export of nested hierarchies
* added testing of correct export of blueprints, with & without components etc
* fixes#147
* added filtering out of invalid components/ custom properties:
* includes filtering out of invalid / disabled components as defined in bevy_components, components_meta etc
* completely changed handling of "unique" (non blueprint) objects by copying them instead of moving/renaming them & manipulating their custom properties : much cleaner, much simpler !
* disabled default gltf export of optimised animations
* added tests !
* closes#139
* closes#141
* closes#142
* closes#146
* fixed issue with "reload registry" not clearing previous data
* added watcher/ poll system to automatically updated the registry & components list when the registry file has been changed
* BREAKING CHANGE ! changed internal representation of components, incompatible with v0.1, breaks UI values.
* added buttons to regenerate UI to account for/fix the above and to offer the ability to regenerate UI values from custom property values
* lots of cleanups
* added tests
* closes#127
* closes#124
* closes#121
* closes#130
* adds a new crate: ```bevy_registry_export``` to be able to create a json import of the registered component/type definitions
* adds a new Blender addon: ```bevy_components``` that takes that json data to generate custom UIs for components , to be to add & edit components easily in Blender
* also adds component metadata per object for more advanced features
* etc
* updates to bevy_gltf_components & bevy_gltf_blueprints to add legacy_mode to support the "old"/current style component definitions
* same with gltf_auto_export Blender add_on
* closes#60
* fundamental rewrite of a lot of aspects of the exporter, for cleaner code & to solve a number of issues
* set export_separate_dynamic_and_static_objects default to FALSE, as it is an edge use case
* added central tracker class, to track the post save & depsgraph changes
* auto_export is now more operator centric, with functional undo
* now storing add-on configuration at the blend file level (bpy.data.texts)
* found source of export issues ! mismatch between context.scene & context.window.scene (the last we can set, the other not)
* overhauled & cleaned up materials handling to avoid context issues & reliance on bpy.ops
* huge restructure of how temporary scenes are created & cleaned up
* added support for exports in edit_mode
* updated examples
* a lot more
* fixes#103
* fixes#112
* fixes#113
* fixes#114
* fixes#115
* fixes#116
* Add lint CI
* Clippy allow complex types, warn on some others
* bevy_gltf_blueprints use workspace lints
* Update toolchain for workspace wide lints
* Use workspace lints on the other crates as well
* feat(bevy_gltf_save_load): saving & loading implemented
* created new crate for save & load features, uses & filters out blueprints for efficient loading
* saving & loading, even with dynamically spawned nested hierarchies works
* component filter , resource filter & save path root are configurable
* for saving: added removal & cleanup logic for children component with children
that have been filtered out: ie no more invalid children getting stored in the save files !
* added sending of event once saving is done
* feat(examples/save-load): example for the new crate
* loading level static & dynamic data as blueprints
* added a bit of ui when entering saving & loading states & cleanup when exiting
* feat(bevy_gltf_blueprints): significant rewrite of how the crate works
* simplified spawning process, no more spawning children containing blueprints etc
* simplified post process : instead of copying original entity into blueprint root
we now copy blueprint root data (components & children) into the original entity ! fixes#96
* much simpler code wise
* solves issue with needing to register components that we only use on the bevy side (not gltf)
since we are not copying the bevy data into the blueprints data
* added **copyComponents** helper to copy components from one entity to another, excluding existing
components on the target entity, & some bells & whistles
* **Name** is now optional when spawning a blueprint: closes#97
* **Transform** is now optional when spawning a blueprint: closes#98
* removed transform from bundle (BREAKING change)
* added (optional) **NoInBlueprint** component to have finer control over whether to inject the **InBlueprint** component inside spawned blueprint entities
* added (optional) **Library** component, so we can override library path when we want
* added (optional) **AddToGameWorld** component for convenience to automatically add entities to the game world, if there is one
* chore(bevy_gltf_components): removed verbose output, cleaned it up a bit
* feat(tools/auto_export): added option to split out "dynamic" objects in main scenes
* ie if a collection instance (or its original collection) has a "dynamic" (aka mutable, saveable etc)
flag it can get exported to a seperate gltf file (essentially acting like an "initial save")
* the rest of the levels (the "static" data) is exported without the dynamic objects and
can be reused with save files !
* scans for 'in-use' collections now correctly looks inside sub collections as well
* removed obsolete .gltf output (keeping only .glb & .gltf+bin+textures
* closes#92
* closes#93
* feat(multiple blend files): added example of multi blend file workflow
* feat(tools/auto_export):
* added collection_instances_combine_mode superseeds & replaces "export nested blueprints", with a lot more flexibilty
* added preferences & ui settings
* added (optional) use of marked assets as replacement for "autoExport" collection flag
* added correct cleaning up of temporary sub_collections
* feat(tools/auto_export): change detection added for material changes
* feat(tools/auto_export): blueprints now also use the "combine" settings for nested collections
* feat(tools/auto_export): added correct cleanup of data when removing hollow scenes, so that there is no orphan data left behind
* feat(tools/auto_export): changes to nested collections are now triggering change detection of root
(exportable collections)
* feat(tools/auto_export): now actually useful tracebacks using traceback.format_exc()
* various minor fixes, cleanups & UI description improvements
* docs(README): updated & fleshed out docs
* closes#87
* closes#86
* closes#85
* closes#79
* closes#61
* closes#68
* closes#41
* feat(bevy_gltf_blueprints): improved error handling for clone_entity
* you will now get component name for components that have not been registered & thus cannot be cloned
* added a small example (in examples/bevy_gltf_blueprints/basic), just press 'U' at runtime to try to spawn an entity with unregistered components
* closes#81
* feat(bevy_gltf_blueprints):
* added support for nested blueprints
* added example/test for nested blueprints with multiple levels of nesting
* feat(tools/gltf_auto_export):
* implemented functionality to export nested blueprints/collection instances
* added add prefs to control nested blueprints export
* experiments with nested blueprints merge modes
* when exporting of nested blueprints is disabled, will not scan for nested blueprints
and thus no export them
* docs(): updated docs & added images for nested blueprints support
* feat(tools): scene component injection & export
- ambient light, shadowmap resolution, bloom intensity, ambient occlusion are now directly settable from scene components that are injected automatically in the scene
- relaxed requirements for changes(aka when to export gltf) for main scenes,
so that render , background etc changes also trigger a save
- added scene components examples
- added additional proxies & handling for camera & lights
- in relevant cases, made sure that entity specific components are not overridden by scene components
- added option to toggle scene level exports of params/ components
- ambient colour/ intensity is now also set as background/clear colour
- updated docs
* updates both gltf_auto_export & bevy_gltf_blueprints to avoid duplicating common materials across blueprints
* feat(tools/gltf_auto_export): added materials library export !
* export all materials in use by blueprints to a separate temporary scene with cubes (for now)
with the materials assigned
* injecting MaterialInfo components to each blueprint above with Material name + library name
* generated gltf is named based on the project/blend file, so multiple blend file projects
can each have their own material libraries
* added preferences & ui & handling to be able to toggle material library exports
* feat(bevy_gltf_blueprints): added support for materials library!
* material injection (toggleable via the plugin configuration)
* added example
* added materials library + texture files + updated assets
* added physics debug toggling
* updated documentation
* closes#63
* split up code in logical modules instead of one giant file
* added module structure, imports etc
* updated README
* add storing & reloading of lists of scenes
* minor cleanups & tweaks
* closes#64
* moved gltf_auto_export specific docs/images inside the addon's folder
* updated main title image
* restrict main_menu system to only run in AppState::MenuRunning
* this is desired because hitting enter once we transition to AppState::AppRunning pressing enter will still trigger keycode.just_pressed in main_menu and set state to AppState::AppLoading and crash the game when it tries to create another scene, camera, etc...
* settable via a config flag & systems won't run if the flag is not set
* caches aabbs per blueprint name so they do not need to be recomputed multiple time for the same blueprint
* closes#56
* added basic assets & logic for scene switching upon reaching a trigger zone ! Works !
* added toggling of physics debug
* added handling of nested colliders for LevelTransitions
* fix/ addition for point light intensity scaling & shadows
* closes#40
* feat(examples): added basic_xpbd_physics example
* adapted code from rapier physics
* updated blend file & exported gltf files
* changes & tweaks to cargo files so the examples are scanned as they should be
* various minor tweaks
* refactor(examples): moved examples into more logic folders & changed to allow for per example dependencies
* chore(): updated docs, added docs, updated deps , cargo files etc