From b422998e25416f2b25522ea4eca53cb9b98c9673 Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 26 Jan 2026 22:08:18 +0100 Subject: [PATCH] feat: added "-detailoutline" model import flag --- project/assets/style/model_importer.gd | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/project/assets/style/model_importer.gd b/project/assets/style/model_importer.gd index 0f81e368..92ef55dc 100644 --- a/project/assets/style/model_importer.gd +++ b/project/assets/style/model_importer.gd @@ -3,7 +3,6 @@ extends EditorScenePostImport var regular_outline_material : StandardMaterial3D var character_outline_material : StandardMaterial3D -var outline_disable_flag : String = "-nooutline" func _post_import(root : Node): regular_outline_material = ResourceLoader.load("res://assets/style/base_outline_material.tres") as StandardMaterial3D @@ -11,13 +10,20 @@ func _post_import(root : Node): apply_outline_recursive(root) return root +func get_flag(node : Node, flag : String) -> bool: + if node.name.contains(flag): + node.name = node.name.erase(node.name.find(flag), flag.length()) + return true + else: + return false + func apply_outline_recursive(node : Node): if node != null: - if node.name.contains(outline_disable_flag): - node.name = node.name.erase(node.name.find(outline_disable_flag), outline_disable_flag.length()) - elif node is MeshInstance3D: + var outline : bool = not get_flag(node, "-nooutline") + if outline and node is MeshInstance3D: + var detail : bool = get_flag(node, "-detailoutline") var mesh : MeshInstance3D = (node as MeshInstance3D) - if mesh.skeleton and character_outline_material: + if detail and character_outline_material: mesh.material_overlay = character_outline_material elif regular_outline_material: mesh.material_overlay = regular_outline_material