@tool class_name BilliardsImporter extends EditorScenePostImport func _post_import(scene: Node) -> Object: if scene.name == "balls": scene.name = "bodies" setup_balls_scene(scene) return scene func setup_balls_scene(scene: Node) -> void: for node in scene.get_children(): if is_instance_of(node, RigidBody3D): node.name = node.name.replace("-rigid", "") node.set_collision_layer_value(1, true) node.set_collision_layer_value(2, true) node.set_collision_mask_value(1, true) node.set_collision_mask_value(2, true) elif is_instance_of(node, MeshInstance3D): node.name = "mesh" elif is_instance_of(node, CollisionShape3D): node.name = "shape" if node.name == "white_ball": node.get_parent().move_child(node, 0) node.set_collision_layer_value(1, true) node.set_collision_layer_value(2, true) node.set_collision_layer_value(3, true) node.set_collision_mask_value(1, true) node.set_collision_mask_value(2, true) node.set_collision_mask_value(3, true) node.axis_lock_linear_y = true #var marker = Marker3D.new() #marker.name = "white_ball_marker" #node.get_parent().get_parent().add_child(marker) #node.get_parent().get_parent().move_child(marker, 0) setup_balls_scene(node)