This continues the exploration of better support for append & link after #4.
The biggest issue is the lack of handlers for append and link. There are a couple of annoyances that could be solved with handlers:
Linked/appended object and it's blocks might have the same Keymesh ID as something else in the scene. If objects are the same type this breaks things and appends blocks from both objects to each other. Handler would be able to detect such cases by checking IDs on objects and offset ID on appended object if it finds a match.
Append and link operators have the 'Instance Object Data' property enabled by default. That creates new objects for each referenced object data that is without an object (e.i. everything Keymesh imports). If user leaves it on they need to delete those objects afterwards. Handler would override this property and always set it to disabled before completing the import.
Appending removes Fake User from IDs, add them back to Keymesh blocks.
Before the current frame changes it displays the last block instead of the one it should on the current frame. Handler could either register update_keymesh() function or simply offset the current frame by +-1
Even though simple append and link works there needs to be a check for copy-pasting and asset browser.
Library override system is working nicely in #8 and makes for a good first release, but some things can be improved for future updates:
[ ] Editing individual blocks on overridden objects is probably still possible (but opens up whole new workflow issues, so postponed for now). Will require batch operators, tests and fallbacks.
[ ] Removing blocks in object file messes with animation. While it's not broken, it can be improved by removing keyframes in scene file (maybe with handler).
UPDATE: I requested the handles in /blender/blender/122357 and Philipp Oeser was kind enough to work on implementing it in /blender/blender/122365. I'll make changes once they're in Blender.
This continues the exploration of better support for append & link after #4.
The biggest issue is the lack of handlers for append and link. There are a couple of annoyances that could be solved with handlers:
Linked/appended object and it's blocks might have the same Keymesh ID as something else in the scene. If objects are the same type this breaks things and appends blocks from both objects to each other. Handler would be able to detect such cases by checking IDs on objects and offset ID on appended object if it finds a match.
Append and link operators have the 'Instance Object Data' property enabled by default. That creates new objects for each referenced object data that is without an object (e.i. everything Keymesh imports). If user leaves it on they need to delete those objects afterwards. Handler would override this property and always set it to disabled before completing the import.
Appending removes Fake User from IDs, add them back to Keymesh blocks.
Before the current frame changes it displays the last block instead of the one it should on the current frame. Handler could either register update_keymesh() function or simply offset the current frame by +-1
Even though simple append and link works there needs to be a check for copy-pasting and asset browser.
Library override system is working nicely in #8 and makes for a good first release, but some things can be improved for future updates: