diff options
author | Owl <isaclien9752@gmail.com> | 2025-08-25 21:35:45 -0400 |
---|---|---|
committer | Owl <isaclien9752@gmail.com> | 2025-08-25 21:35:45 -0400 |
commit | 2f71ead735326d2f79ebeec1a739943da6e95b41 (patch) | |
tree | 87943ff992633a2d7df941b82b818c2e7089a17a /collada_superbmd_import.py | |
parent | 8fd537dfe7cc170290b1043a1e601699fc14c8fb (diff) | |
download | blenxy-2f71ead735326d2f79ebeec1a739943da6e95b41.tar.gz blenxy-2f71ead735326d2f79ebeec1a739943da6e95b41.zip |
setup blenxy to be able to "reload" without quitting blender
Diffstat (limited to 'collada_superbmd_import.py')
-rw-r--r-- | collada_superbmd_import.py | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/collada_superbmd_import.py b/collada_superbmd_import.py index 08d4677..d28f8bd 100644 --- a/collada_superbmd_import.py +++ b/collada_superbmd_import.py @@ -26,7 +26,7 @@ from . import math_funcs def import_collada_superbmd(context, filepath): # scene variable is always needed for something - scene = bpy.context.scene + scene = context.scene # make a temporal collada file with the "unit" and "up_axis" elements modified # and import that file (elements inside the assets element) @@ -39,6 +39,14 @@ def import_collada_superbmd(context, filepath): # get asset's unit element root = xml.getroot() + # check if it is a superbmd collada file (hopefully this check is enough) + if (root.find("asset") == None + or root.find("asset").find("contributor") == None + or root.find("asset").find("contributor").find("author") == None + or root.find("asset").find("contributor").find("author").text != "Assimp"): + blender_funcs.disp_msg("Collada file isn't from SuperBMD.") + return {"FINISHED"} + # texture files path if (os.name == "posix" and root.find("library_images") != None): for image in root.find("library_images"): @@ -220,8 +228,19 @@ class import_superbmd_collada(Operator, ExportHelper): def menu_import_superbmd_collada(self, context): self.layout.operator(import_superbmd_collada.bl_idname, text = "SuperBMD Collada (.dae)") -bpy.utils.register_class(import_superbmd_collada) -bpy.types.INFO_MT_file_import.append(menu_import_superbmd_collada) - -# test call -bpy.ops.import_scene.superbmd_collada("INVOKE_DEFAULT") +# register func +@bpy.app.handlers.persistent +def register(dummy): + try: + bpy.utils.register_class(import_superbmd_collada) + bpy.types.INFO_MT_file_import.append(menu_import_superbmd_collada) + except: + return + +# unregister func +def unregister(): + try: + bpy.utils.unregister_class(import_superbmd_collada) + bpy.types.INFO_MT_file_import.remove(menu_import_superbmd_collada) + except: + return |