From 86895c1cbff1370e1c8e8cb94ac860e4d347f77e Mon Sep 17 00:00:00 2001 From: nikitalita <69168929+nikitalita@users.noreply.github.com> Date: Wed, 7 Feb 2024 12:15:38 -0800 Subject: [PATCH] Support setting old `material/#` properties on MeshInstance3D --- scene/3d/mesh_instance_3d.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index e8166802f8f..c96625ecb8f 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -50,8 +50,19 @@ bool MeshInstance3D::_set(const StringName &p_name, const Variant &p_value) { return true; } - if (p_name.operator String().begins_with("surface_material_override/")) { - int idx = p_name.operator String().get_slicec('/', 1).to_int(); + String name = p_name; + +#ifndef DISABLE_DEPRECATED + if (name.begins_with("material/")) { + WARN_DEPRECATED_MSG("This mesh uses an old deprecated parameter name. Consider re-saving this scene in order for it to continue working in future versions." + + (is_inside_tree() ? vformat(" Path: \"%s\"", get_path()) : String())); + } + if (name.begins_with("surface_material_override/") || name.begins_with("material/")) +#else + if (name.begins_with("surface_material_override/")) +#endif + { + int idx = name.get_slicec('/', 1).to_int(); if (idx >= surface_override_materials.size() || idx < 0) { return false;