* 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
* 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>
* 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
* 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 !
* 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