- 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.
- Added VRM to the list of files able to be imported.
- Added error handling for missing vrm importer, will popup to the user telling them to download vrm addon.
- Removed automatically url opening as we should have user consent to open a url, automatic url opening goes against blenders best practices and can be a security concern.
- Optimised the way we import multiple models, the old way just added unnecessary complexity, The try-except block was used to iterate over self.files and set is_multi to True if no exception occurs. However, this is an unnecessarily complex way to determine if the list is non-empty. Simply checking the length of the list is more straightforward and efficient. The way we were using the try-except box could of also lead to silent failures which is not user friendly.
- 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.
Yes I did do this code all myself and they have been looked over and modified since proposed to other addons.
The commented MMD animation importer is stashed as a comment for now till an MMD animation importer is properly created.