diff --git a/addons/io_scene_swbf_msh/msh_model_gather.py b/addons/io_scene_swbf_msh/msh_model_gather.py index bbe82c6..cb95369 100644 --- a/addons/io_scene_swbf_msh/msh_model_gather.py +++ b/addons/io_scene_swbf_msh/msh_model_gather.py @@ -354,6 +354,14 @@ def get_collision_primitive_shape(obj: bpy.types.Object) -> CollisionPrimitiveSh """ Gets the CollisionPrimitiveShape of an object or raises an error if it can't. """ + # arc170 fighter has examples of box colliders without proper naming + # and cis_hover_aat has a cylinder which is named p_vehiclesphere. + # To export these properly we must check the collision_prim property + # that was assigned on import BEFORE looking at the name. + prim_type = obj.swbf_msh_coll_prim.prim_type + if prim_type in [item.value for item in CollisionPrimitiveShape]: + return CollisionPrimitiveShape(prim_type) + name = obj.name.lower() if "sphere" in name or "sphr" in name or "spr" in name: @@ -363,11 +371,6 @@ def get_collision_primitive_shape(obj: bpy.types.Object) -> CollisionPrimitiveSh if "box" in name or "cube" in name or "cuboid" in name: return CollisionPrimitiveShape.BOX - # arc170 fighter has examples of box colliders without proper naming - prim_type = obj.swbf_msh_coll_prim.prim_type - if prim_type in [item.value for item in CollisionPrimitiveShape]: - return CollisionPrimitiveShape(prim_type) - raise RuntimeError(f"Object '{obj.name}' has no primitive type specified in it's name!")