- Re-wrote how the plugin registers itself.
- No longer need @register_wrapper classes get auto detected and added.
- The new Auto loader is much better then the old way, no longer need "if "bpy" not in locals():" this was an old way of doing things and wasn't really efficient.
using auto_load.py provides several advantages:
- It automatically discovers and loads all modules in the addon.
- It handles dependencies between classes correctly through topological sorting.
- It manages registration order automatically.
- It properly handles unregistration in the correct order.
This approach is much less error prone and I not had any issues so far. However it still needs testing fully.
I have also start to re-organise files into folders as well, this is going to be needed so we don't have a long list of files as Avatar Toolkit is getting larger then i originally planned.
- operator strings are referenced via the class property rather than a hard coded string
- class names have been cleaned to have _OT_ or _PT_ depending on the kind of class it was.
- Class names should mostly be CamelCase now.
- Added a check to make sure Armature is valid.
- Added a helper to select the current armature selected in armature selection.
- Added a helper to get all meshes.
- Updated all current functions to work with the system.
- made remove doubles a blender modal. this way the code can run over multiple frames.
- Since remove doubles is async now, the user gets feedback on which shapekey and mesh is being worked on
- this does not remove doubles correctly yet, but is very close to ready