diff options
author | Thaddeus Crews <repiteo@outlook.com> | 2024-11-19 15:20:11 -0600 |
---|---|---|
committer | Thaddeus Crews <repiteo@outlook.com> | 2024-11-19 15:20:11 -0600 |
commit | 1680edb2cda73aa8fe1dbb83ec3d059c4999be7c (patch) | |
tree | af2c9aa43091b02613e796a3cd80dd41f9b69659 | |
parent | e4dbba94d9019dddc620b0c0c71f265dd857bb51 (diff) | |
parent | b0e04c1e7a01d24953e56ff019dc1e0e8fe8cc6d (diff) | |
download | redot-engine-1680edb2cda73aa8fe1dbb83ec3d059c4999be7c.tar.gz |
Merge pull request #99231 from fire/sort-blendshapes-by-id
Sort blend shapes in the inspector by ID instead of alphabetically
-rw-r--r-- | scene/3d/mesh_instance_3d.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index f551cb401c..14bc22a217 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -87,17 +87,9 @@ bool MeshInstance3D::_get(const StringName &p_name, Variant &r_ret) const { } void MeshInstance3D::_get_property_list(List<PropertyInfo> *p_list) const { - List<String> ls; - for (const KeyValue<StringName, int> &E : blend_shape_properties) { - ls.push_back(E.key); - } - - ls.sort(); - - for (const String &E : ls) { - p_list->push_back(PropertyInfo(Variant::FLOAT, E, PROPERTY_HINT_RANGE, "-1,1,0.00001")); + for (uint32_t i = 0; i < blend_shape_tracks.size(); i++) { + p_list->push_back(PropertyInfo(Variant::FLOAT, vformat("blend_shapes/%s", String(mesh->get_blend_shape_name(i))), PROPERTY_HINT_RANGE, "-1,1,0.00001")); } - if (mesh.is_valid()) { for (int i = 0; i < mesh->get_surface_count(); i++) { p_list->push_back(PropertyInfo(Variant::OBJECT, vformat("%s/%d", PNAME("surface_material_override"), i), PROPERTY_HINT_RESOURCE_TYPE, "BaseMaterial3D,ShaderMaterial", PROPERTY_USAGE_DEFAULT)); @@ -142,6 +134,7 @@ int MeshInstance3D::get_blend_shape_count() const { } return mesh->get_blend_shape_count(); } + int MeshInstance3D::find_blend_shape_by_name(const StringName &p_name) { if (mesh.is_null()) { return -1; @@ -153,11 +146,13 @@ int MeshInstance3D::find_blend_shape_by_name(const StringName &p_name) { } return -1; } + float MeshInstance3D::get_blend_shape_value(int p_blend_shape) const { ERR_FAIL_COND_V(mesh.is_null(), 0.0); ERR_FAIL_INDEX_V(p_blend_shape, (int)blend_shape_tracks.size(), 0); return blend_shape_tracks[p_blend_shape]; } + void MeshInstance3D::set_blend_shape_value(int p_blend_shape, float p_value) { ERR_FAIL_COND(mesh.is_null()); ERR_FAIL_INDEX(p_blend_shape, (int)blend_shape_tracks.size()); |