summaryrefslogtreecommitdiff
path: root/collada_superbmd_import.py
diff options
context:
space:
mode:
authorOwl <isaclien9752@gmail.com>2025-08-25 21:35:45 -0400
committerOwl <isaclien9752@gmail.com>2025-08-25 21:35:45 -0400
commit2f71ead735326d2f79ebeec1a739943da6e95b41 (patch)
tree87943ff992633a2d7df941b82b818c2e7089a17a /collada_superbmd_import.py
parent8fd537dfe7cc170290b1043a1e601699fc14c8fb (diff)
downloadblenxy-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.py31
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