Commit Graph

188 Commits

Author SHA1 Message Date
kaosat.dev
ec95ab5541 feat(Blenvy): a ton of minor & bigger improvements
* fixes & experiment to auto export
 * added support for "always export" functionality for blueprints & levels
 * fixed issues with asset management
 * fixed issues with tracker
 * more ui improvements (display of the number of assets etc)
 * a lot more minor tweaks
2024-06-05 17:09:03 +02:00
kaosat.dev
edd3d3150f feat(Blenvy): ui improvements & fixes for assets for blueprints & levels
* fixed broken removal of assets
 * added visual indication of prevention of adding the same asset twice
 * removed "asset type" selection, useless
 * improved & streamlined UI
 * related tweaks
2024-06-05 11:17:49 +02:00
kaosat.dev
f9cb6de4bc feat(Blenvy): added "levels" tab (likely going to be replacing the "assets" tab)
* added basic logic, ui, level selector operator etc
 * fixed issues with asset dialog
 * added experimental "always_export" flags for collections & scenes to enable always
exporting on save for select blueprints & levels (no logic yet, just UI)
 * various tweaks & minor experiments
2024-06-04 23:16:16 +02:00
kaosat.dev
2b6e17a6b7 feat(Blenvy): improvements to change detection & co
* node trees are now using the same logic as other types
 * cleaned up & restructured code accordingly
 * added more failure handling for project serialization & diffing
 * experimenting with ways to deal with scene renaming
 * minor tweaks
2024-06-04 14:37:29 +02:00
kaosat.dev
0b5cdcc4a5 feat(Blenvy): unified & cleaned up node trees handling for materials/geonodes
* manual tests are coherent, and allow for very fine grained changed detection, yeah !!
 * overhauled generic_fields_hasher_evolved a bit
 * fixed/ resolved issues with parameters handling for materials vs modifiers
 * related minor tweaks & fixes
2024-06-02 00:14:24 +02:00
kaosat.dev
91f38255dd feat(blenvy): further upgrade & cleanup work for serialize_scene
* rewrote & cleaned up material handling, seems to work well !
 * attempts at unifying parsing of geometry/shader node parsing seems to lead to geometry node parameter changes not being dected
  * wip
2024-05-31 15:28:58 +02:00
kaosat.dev
c557334b75 feat(Blenvy): modifier deep scan is done & huge cleanups
* finished & cleaned up modifier deep scan: works well !
 * now toggleable via a setting
 * same for the deep scan for materials
 * rewrote the very messy materials scan, with a much improved generic_fields_hasher
 * still need to add back an improved material node tree serializer
2024-05-30 16:19:10 +02:00
kaosat.dev
cdab4c50f7 feat(blenvy):
* restructured & cleaned up auto export code
 * added very very basic serialization of modifiers (wip)
2024-05-29 23:34:47 +02:00
kaosat.dev
a0b1959a43 feat(Blenvy): fixed all broken/ missing auto export elements
* fixed overhauled, cleaned up and improved settings change detection
 * serialize_scene now generate a hash per object instead of keeping the details (useless)
 * changed handling of gltf settings, so that only the actual non default, changed settings are saved
 * a ton of minor changes & cleanups to get export working correctly: it works !
 * started adding materials_in_depth_scan (wip) to be able to control more detailed (but costly) materials diffing for change detection
2024-05-28 16:56:28 +02:00
kaosat.dev
2187fee4c8 feat(Blenvy):
* migrated gltf settings handling to the new "generate_complete_settings_dict" helper
 * tweaks/fixed to the internals of that function to get the actual correct data
 * minor related tweaks & fixes
2024-05-27 06:47:23 +02:00
kaosat.dev
2470736f81 feat(blenvy): fixes & improvements to the settings handling 2024-05-26 20:09:15 +02:00
kaosat.dev
b957f0573b feat(Blenvy): settings coherency pass
* restructured component settings to be used instead of the registry
 * removed settings from registry
 * fixed data access for the above
 * added saving of component parameters
 * added component settings pointer in blenvy core
 * added loading of both auto_export & component settings in blenvy core's load_settings
2024-05-26 18:33:06 +02:00
kaosat.dev
ea982d330f refactor(Blenvy): moved components & auto export into a sub folder for clarity 2024-05-25 13:26:30 +02:00
kaosat.dev
26e75742b2 feat(Blenvy):
* fixed handling of gltf dummy file & settings storage
 * experimenting with best approach for settings diffing for auto export
 * started (wip) moving out bevy_components settings from registry to indenpendant settings
 * minor tweaks
2024-05-25 11:57:10 +02:00
kaosat.dev
4f742e7735 refactor(Blenvy): minor re-orgs 2024-05-25 11:14:13 +02:00
kaosat.dev
8b76a34bec refactor(Blenvy): renaming , moving of auto_export modules 2024-05-25 10:54:23 +02:00
kaosat.dev
c00c9908eb feat(Blenvy): a lot of verious tweaks & fixes
* fixed/ overhauld asset & blueprint scanning
 * added polling for blueprints (not 100% sure yet)
 * add-on-prefs => settings
 * removed the now obsolete auto-export operator & preperences
 * a lot of other minor changes
2024-05-25 10:46:14 +02:00
kaosat.dev
008f6b3a88 feat(Blenvy): continued overhaul of auto export, slowly adding back tests too 2024-05-22 22:14:52 +02:00
kaosat.dev
382f37be74 feat(blenvy): reorganising & upgrade of auto_export change detection
* added new helpers to detect changes to project & settings
 * updated storage names
 * not using operator anymore
 * lots of related changes
2024-05-20 02:06:26 +02:00
kaosat.dev
dc7422fe7a feat(blenvy): components can now also be added to collections/blueprints directly
* this is in preparation for future support in bevy & for more coherence & practicality
 * overhauled metadata tooling
 * overhauled most of the operators
 * overhauled most of the UI
 * all the basics & more work !
 * unrelated: also started preping for auto_export operator removal
2024-05-19 23:35:12 +02:00
kaosat.dev
7ac0c5bca9 feat(blenvy): now passing levels path to the experimental "export asset ron files" operator 2024-05-19 11:27:25 +02:00
kaosat.dev
70bdd489a1 feat(blenvy): now iterating over main scenes instead of manually filtering scenes out
for blueprints & assets
2024-05-19 11:22:34 +02:00
kaosat.dev
c2a847934b feat(blenvy): overhauled path/directory management a bit
* full paths are now computed properties
 * cleanups of path names
 * various tweaks
2024-05-19 11:04:34 +02:00
kaosat.dev
8abd806d5f feat(blenvy): qol ui information 2024-05-18 22:39:22 +02:00
kaosat.dev
f6b61f83ae feat(blenvy): continued work on auto_export refactor 2024-05-17 23:20:48 +02:00
kaosat.dev
d3d973dd4b feat(blenvy): a lot more restructuring of auto_export to have it work again 2024-05-17 23:11:44 +02:00
kaosat.dev
21a36f9878 feat(blenvy): massive overhaul
* removed a lot of obsolete code
 * overhauled settings upsert
 * added save & load of blenvy common settings
 * removed most of the specific uis (mostly auto export)
 * moved change detection logic out of auto export (wip)
 * added helper to compare setting dicts
 * cleaned up some incoherent naming
 * stripped auto_export of a lot of its internals (wip)
 * main settings ui overhaul: now components & auto export provide their own settings UI function
2024-05-17 14:30:15 +02:00
kaosat.dev
c476c05c55 feat(blenvy): overhauled directory handling, seems ok now 2024-05-16 23:41:26 +02:00
kaosat.dev
f561112704 feat(blenvy): restructuring/ extracting a lot of the auto_export settings to be in the "common" ui/logic
* moved out all folder logic & code
 * moved out all of the scene selector logic & code
 * related tweaks
2024-05-16 15:27:30 +02:00
kaosat.dev
3aed4ab925 refactor(blenvy): some minor materials reorg 2024-05-16 14:19:45 +02:00
kaosat.dev
006e3c16f7 feat(blenvy): split up user added assets from generated assets
* added Asset propertygroup & User Assets collections to collections & scenes to store them explicitely
 * overhauled UI to make use of this : also means names & paths are editable after the fact
 * overhauled testing asset hierarchy scan accordingly
 * added expertimental export of bevy_asset_loader compatible asset.ron files per level
 * related tweaks & additions
2024-05-16 14:09:40 +02:00
kaosat.dev
d99a7ccd45 feat(blenvy): more work done on asset management
* helpers
 * ui tweaks
 * scanning of the whole asset tree added
 * cleaner injection of data at the collection/ scene level (wip)
2024-05-15 23:32:01 +02:00
kaosat.dev
d0bc05fb96 feat(blenvy):
* added correct injection of assets + export path to blueprints
 * moved a few common elements to "core" for better reuse
 * more tweaks/ experiments with paths handling
 * moved & overhauled a few of the blueprint & assets tools
 * lots of minor tweaks & changes
2024-05-15 13:25:30 +02:00
kaosat.dev
0fb35d6e6a feat(blenvy):
* minor tweaks & improvements to assets handling
 * renamed a few auto export preferences for more coherence
 * "assets" folder is now mandatory again and used by the various sub asset types
 * blueprints/levels/materials paths in auto_export are not overwrite their relative values anymore,
but added their "full" variants & changed code using full paths to use those
 * added back gltf exporter post export callback, in a cleaner fashion
 * changing (wip) the way the various relative folders are auto generated in the folder selection UI
 * lots of other minor tweaks & improvements
2024-05-14 23:49:45 +02:00
kaosat.dev
b8a7eba71d feat(blenvy):
* improvements to assets ui
 * assets ui now specific to per level data, not based on selection anymore
 * blueprints ui now presents assets per blueprint
 * a lot of tweaks & improvements in the areas above
2024-05-13 23:36:13 +02:00
kaosat.dev
f3dbf76ce6 feat(tools): updated/fixed some tests 2024-05-13 11:21:50 +02:00
kaosat.dev
0306bfb857 feat(blenvy): added most of the code from both add-ons
* adapted most of the UI to the new structure
2024-05-13 10:28:44 +02:00
kaosat.dev
53d432fc77 feat(blenvy):
* overhauled selection
 * made adding/removing assets specific to collections/scenes (blueprints/levels)
 * ui tweaks & improvements
 * etc
2024-05-12 15:10:35 +02:00
kaosat.dev
e42719daf7 feat(blenvy): experimenting with new combined tooling 2024-05-12 12:09:11 +02:00
kaosat.dev
0172bbe511 feat(tools): a ton of experiments for assets & blueprints ... wip 2024-05-12 11:05:11 +02:00
kaosat.dev
c27bfb839e chore(bevy_components): cleanups 2024-05-07 00:39:15 +02:00
kaosat.dev
03c3d397a7 feat(bevy_components): lot more cleanups & fixes
* fixed issues with initial insertion of map key/value pairs
 * overhauled & upgraded tests
 * changed internals of rename components
 * cleanups everwhere !
 * tweaks & minor improvements all around
2024-05-07 00:22:33 +02:00
kaosat.dev
e7e680b92c tests(bevy_components): migrating tests to new apis 2024-05-05 22:43:49 +02:00
kaosat.dev
ebf82b902f feat(bevy_components): more tweaks 2024-05-05 22:18:16 +02:00
kaosat.dev
0ca57ba6de feat(bevy_components): continued refactor to use long names instead of short names & co
* changed all various uses of short name to long_name
 * same for type_names
 * also changed bevy_registry_export to output "long_name" instead of "title" for coherence
 * related changes & tweaks
 * still WIP
2024-05-05 22:04:25 +02:00
kaosat.dev
ac02e8b364 feat(bevy_components): more tweaks, error handling , improvements etc 2024-05-04 01:42:45 +02:00
kaosat.dev
c14aeb7af2 feat(bevy_components): fleshed out & refined hashmap UI & internals 2024-05-03 14:57:03 +02:00
kaosat.dev
f224148e1d chore(auto_export): cleanups 2024-05-03 00:27:23 +02:00
kaosat.dev
98a654095b feat(bevy_components): added basic of hashmap/map support
* added handling of additional map flags
 * added map handling in conversion from prop group
 * added basic (& clunky) UI
 * related boilerplate
 * added various testing components to try this out & experiment with
2024-05-03 00:22:51 +02:00
kaosat.dev
ca02c1df8c feat(bevy_components): continued changes to base logic on long_names 2024-05-02 10:24:09 +02:00
kaosat.dev
185c25f7b2 feat(bevy_components): started migration of data storage to enable
support for components with identical short names
2024-04-30 23:50:08 +02:00
kaosat.dev
dc053562bc chore(auto_export): cleanups 2024-04-30 11:59:04 +02:00
kaosat.dev
9138c81c60 refactor(): removed remains of legacy mode 2024-04-30 11:33:05 +02:00
kaosat.dev
eda18b7d25 test(auto_export): overhauled & cleaned up tests 2024-04-30 11:05:24 +02:00
kaosat.dev
26ea12cc4c feat(auto_export):
* added operator to deal with the root path & sub paths in a smarter way
 * various paths are not settable "manually" as pure text anymore
 * overhauled ui for paths
 * overhauled internal handling of paths
 * further refinements to paths handling
 * related fixes & tweaks
 * UI restructure & split out of change detection
 * basic export/assets folder now only available in Ui when blueprints are not in use
 * overhauled bevy integration tests, now done in "two passes" as the external library needs to be exported first
 * cleanups & improvements to the test above
 * started overhauling & massively simplifying the rest of the tests, starting with change_tracking
2024-04-29 00:02:50 +02:00
kaosat.dev
f0d7ccd454 chore(auto_export): preferences/properties cleanups 2024-04-26 23:02:09 +02:00
kaosat.dev
74b12b9b06 chore(testing): moved blend files into "art" folder 2024-04-26 23:01:58 +02:00
kaosat.dev
312a432f43 feat(auto_export): ui improvement & goodbye legacy mode ! 2024-04-26 22:50:50 +02:00
kaosat.dev
84e5de8c3e feat(auto_export): major ui restructuring
* operator ui is not a file browser anymore
 * restructured/recreated ui to work inside a props_dialog
 * added ui_only toggles to control the "pseudo panels" (as panels are not supported in props dialogs)
 * regrouped a few toggle in a more logical manner
 * change sub type of a few properties to be directories
 * some related cleanups
2024-04-26 18:15:57 +02:00
kaosat.dev
8a3cecf0c9 feat(auto_export):
* added "marked" flag to Blueprints structs
 * added correct support for combine modes for blueprints & levels
 * added correct support for nested blueprints
 * added additional helpers for blueprints
 * fleshed out tests even more
 * fixed some tests
 * updated tests data
2024-04-23 20:31:35 +02:00
kaosat.dev
791861c06f feat(auto_export): more work done to get various merging/split modes to work coherently
* updated both get_collections & get_levels to use information about combine modes
 * basic implementation, seems to work, needs more tests & logic check
 * related changes
2024-04-22 23:24:15 +02:00
kaosat.dev
9af2cba1cf refactor(auto_export): ported the internal logic over to the new, more optimised blueprints helpers
* changed functions to use the new blueprint objects & helpers
 * removed old, redundant code
 * a ton of related cleanups
2024-04-22 15:43:31 +02:00
kaosat.dev
bde945a093 feat(auto_export): further experiments, looking good ! 2024-04-19 22:48:00 +02:00
kaosat.dev
17248247a3 feat(auto_export): further experiments & cleanups 2024-04-19 13:25:58 +02:00
kaosat.dev
4c6ed3bc2a feat(auto_export): lots of cleanups , tweaks etc
* additions to tests
 * ui changes
 * etc etc
2024-04-16 23:26:42 +02:00
kaosat.dev
7a8b91f4ec tests(auto-export): fixed one test, fleshed out some others, added more specific tests 2024-04-15 22:43:53 +02:00
kaosat.dev
db1a15ec63 feat(auto_export): fixes, improvements etc etc
* fixed issues with renaming after export (should have always been broken ???)
 * fleshed out scene serialisation some more (parents & collections handling) + bubbling
 * disabled bulk of tracker
 * added notes for  get collections & scenes about combine mode
 * fixed some issues with main operator
 * updated tests for more correctness
 * etc
2024-04-15 15:07:25 +02:00
kaosat.dev
2f54bea7c9 feat(auto_export): since all variations of using depsgraphs_update & co failed to be reliable, switching to brute force
* aka added basics of serialization of scene(s) & brute compare
 	* added basics for transforms, custom properties, meshes, cameras & lights, & armatures
 * should only run on save as I can imagine it could get quite costly, computation wise
 * added some boilerplate for determining changed objects
 * not hooked up to actual exporter yet
 * already way more reliable than the depsgraph:
  * ignores selections & related weird issues
  * undo /redo proof
  * expandable
2024-04-13 14:20:18 +02:00
kaosat.dev
9ec60a783b feat(auto_export): more preferences handling tweaks, tracker changes etc 2024-04-12 14:02:41 +02:00
kaosat.dev
98930af5f5 feat(auto_export): more work on correct parameter change detection from gltf & auto export
* forcing depsgraph update when applying changes to gltf export settings
 * lots of additional boilerplate for params change detection
 * further updates to get information about changed parameters & objects in tracker
 * a lot of related tweaks & changes
chore(bevy_components): removed annoying verbose info messages
2024-04-12 12:29:32 +02:00
kaosat.dev
6a1594188e feat(auto_export): continued refactoring & internal improvements
* continued restructure of auto_export internals
 * split out get_levels_to_export
 * simplified, cleaned up & made get_collections_to_export more efficient (skipping useless computations based
on settings)
 * moved more settings to addon_prefs, created boilerplate to create copies & inject additional params
 * modified tracker's use of the above, so that the actual list of future exports is displayed
 * a lot of other tweaks & cleanups
2024-04-10 22:06:54 +02:00
kaosat.dev
c2dc0324c3 feat(bevy_components):
* added "hack-ish" tweak to make sure component additions/delections etc
are picked up correctly by the change tracker in auto_export
 * cleaned up a few operator names
 * very minor tweaks
2024-04-10 00:21:52 +02:00
kaosat.dev
a630494f88 feat(auto_export): continued fixes & tons of restructuring
* cleaned up most of the change detection tracking
 * updated/ fleshed out & improved the tests
 * improved sidebar ui (wip)
   * moved listing of blueprints to export to sidebar
   * improved display of changed objects
   * currently restructuring rest of the code to be able to display BEFORE saving
what will get exported & what not
 * a ton of other cleanups & tweaks
2024-04-10 00:18:34 +02:00
kaosat.dev
cf4673c1e3 feat(auto_export): MORE experimenting, cleanup & analysis attempts
* moved temp scene prefix to new 'constants' file, updated code accordingly
 * fixed, updated & refactored handling of auto export & gltf parameters
 * added additional tests to changed_parameters
 * added display of changes since last save in new side tab
 * more investigation & fix attempts for change detection...
 * various related tweaks & cleanups
2024-04-08 23:41:17 +02:00
kaosat.dev
64fd308fd3 feat(auto_export): exploration, changes, debug etc for change detection weirdness 2024-04-08 00:08:06 +02:00
kaosat.dev
11e8786b59 fix(auto_export): first draft, working ! but horribly convoluted solution to the correct reseting of change detection state 2024-04-06 01:29:41 +02:00
kaosat.dev
86a1a4d717 test(auto_export): added tests for changed parameters tracking & change tracking
* added testing based on timestamps of generated files
 * found a (few ?) bugs in change tracking based on these, fixing next
2024-04-06 01:00:24 +02:00
kaosat.dev
9645e812ef fix(auto_export): fixed changed gltf parameters handling 2024-04-05 23:32:41 +02:00
kaosat.dev
ccaeecf6f1 chore(auto_export): more minor tweaks 2024-04-05 23:21:39 +02:00
kaosat.dev
e139a1496d chore(auto_export): cleanups 2024-04-05 23:19:29 +02:00
kaosat.dev
ed09ab7d48 feat(tools):
* auto_export now defaults to being disabled (otherwise you will get export attempts etc even if you only
had the add-on installed !
 * modified logic accordingly
 * various related tweaks
 * adjusted tests
2024-04-05 23:14:38 +02:00
kaosat.dev
1cf47d36b1 refactor(): cleanups 2024-04-05 10:52:14 +02:00
kaosat.dev
0998decb39 feat(animation): changes & some reverts of the latests experiments 2024-04-05 00:17:07 +02:00
kaosat.dev
b19e54b3bd refactor(auto_export): cleanups 2024-04-03 13:07:13 +02:00
kaosat.dev
2dae2c41b4 feat(auto_export): a ton of finicky annoying workarounds !
* added workaround for backing up & restoring gltf export settings if there where any,
because it turns out in the glTF2_pre_export_callback, they already get created !
 * added workaround for deleting the temporary gltf file, aka it needs an additional timer, because
the post export callback fires too early !
 * added workaround to deal with the fact that operator uis have global state !!
aka make sure the settings used when calling the gltf exporter do not "contaminate" the normal exporter
 * it all works, but sigh ...
2024-04-03 00:46:45 +02:00
kaosat.dev
73441f34a4 feat(auto_export): restructured & improved changed parameters detection
* now all centralized in the operator's did_export_settings_change() function
 * now works correctly ! ie only compares the parameters for auto & gltf
at the time of exporting ! ie it does not matter anymore how many parameters you changed, until you save/export
 * this solves a lot of randomness bugs in change detection
 * related & various cleanups
2024-04-02 16:45:01 +02:00
kaosat.dev
73e81c2b64 feat(auto_export): continued cleaning up overhaul
* added both gltf exporter button AND auto export button to side bar
 * added storage of gltf settings
 * auto_export now uses stored gltf settings
 * updated override strategies of defaults vs gltf settings
 * removed all gltf specific (not auto export) parameters from preferences
 * updated auto export operator params changed logic to use updated system
 * updated bevy integration test
 * ui improvements
 * various tweaks
2024-04-02 14:15:56 +02:00
kaosat.dev
4a0479fbf0 feat(auto_export): further experimenting with standard gltf exporter integration 2024-04-02 00:46:09 +02:00
kaosat.dev
66a893e5b6 feat(auto_export): experimenting with the insane workarounds needed to get access to standard gltf exporter settings
* got a basic working version that runs the standard exporter with some overrides,
deletes the temporary exported gltf file, extracts the scene level settings etc
 * convoluted as hell , but still better than the alternatives
2024-04-01 16:12:05 +02:00
kaosat.dev
df3e335114 feat(animation):
* renamed Animated component to AnimationInfos, fleshed it out with additional
frame informations etc
 * restructured & cleaned up Bevy & Blender code in those areas a bit
 * various related minor tweaks
2024-03-30 18:29:43 +01:00
kaosat.dev
c44d82e7dc feat(animation): added basic handling of animation markers
* added additional component on the Bevy side + experimented with handling the data in the testing setup
 * added parsing of animation markers on the Blender side + injection of custom property/ component
 * rough around the edges, but the basics work !
2024-03-30 02:40:52 +01:00
kaosat.dev
37dd6a990c feat(auto_export): experimenting with ways of getting standard gltf export settings & using them 2024-03-22 23:35:10 +01:00
kaosat.dev
4f5f3be317 chore(): minor tweaks 2024-03-21 21:37:10 +01:00
kaosat.dev
4f50c4f6d2 feat():
* auto_export now injecting the list of available animations into the "Animated" component
  for any object with animations
 * modified bevy side struct to match
2024-03-21 15:25:50 +01:00
kaosat.dev
a001ee21f6 test(auto_export):
* fleshed out testing of hierarchy
  * added export of serialized hierarchy from the bevy side & comparing it with a reference
 one on the python side
  * various tweaks
2024-03-20 17:57:06 +01:00
kaosat.dev
83258dbd07 fix(auto_export): found & fixed a huge issue with handling of hierarchies
* now various forms of nesting with parenting (not within collections) should be handled correctly
 * restructured a large part of creating copies / duplicates
 * removed some obsolete code
 * related cleanups
2024-03-20 12:29:39 +01:00
kaosat.dev
c2f09fbf22 feat(): added 'animated' flag component (wip) to mark any worlds/blueprints entities that have animations
* allows to not be restricted by bevy's a bit weird logic for AnimationPlayers
 * updated crate & tooling
 * updated testing example with a bit more complex nesting cases for testing
2024-03-19 22:12:37 +01:00
kaosat.dev
87c03657e5 chore(auto_export): further experimentation 2024-03-19 14:19:32 +01:00
kaosat.dev
1c51d10da7 chore(auto_export): further exploration & experimenting
* now trying to copy the animation to the "empty" placeholder using animation linking operator
 * now in gltf viewer we can see the two animations/actions, but still nothing in Bevy
2024-03-18 22:26:06 +01:00
kaosat.dev
c6468f2b0b feat(auto_export):
* added tests for orphan data
 * changed handling of animation data slightly
 * trying to figure out source of various issues
2024-03-18 20:05:01 +01:00