Support setting old `material/#` properties on MeshInstance3D

This commit is contained in:
nikitalita 2024-02-07 12:15:38 -08:00
parent e3213aaef5
commit 86895c1cbf
1 changed files with 13 additions and 2 deletions

View File

@ -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;