diff options
author | Hans Goudey <h.goudey@me.com> | 2021-11-11 20:47:43 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-11-11 20:47:43 +0300 |
commit | e61da8e4fb4221ba771f2f00fbd58f2b1f80f9a6 (patch) | |
tree | 83c93bed50e8054897441bd40e20cf04724a72e8 /source | |
parent | 50f32025ac5cad8808dd31ce74a30ff3a31af6de (diff) | |
parent | f3bdabbe24fe591dc90d62af373c01d06e8e4c8a (diff) |
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 3444be40a59..70f6020f5a9 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -1026,17 +1026,22 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md) { NodesModifierData *nmd = reinterpret_cast<NodesModifierData *>(md); - int i = 0; + int geometry_socket_count = 0; + + int i; LISTBASE_FOREACH_INDEX (const bNodeSocket *, socket, &nmd->node_group->inputs, i) { /* The first socket is the special geometry socket for the modifier object. */ - if (i == 0 && socket->type == SOCK_GEOMETRY) { - continue; + if (i == 0) { + if (socket->type == SOCK_GEOMETRY) { + continue; + } + BKE_modifier_set_error(ob, md, "The first node group input must be a geometry"); } IDProperty *property = IDP_GetPropertyFromGroup(nmd->settings.properties, socket->identifier); if (property == nullptr) { if (socket->type == SOCK_GEOMETRY) { - BKE_modifier_set_error(ob, md, "Node group can only have one geometry input"); + geometry_socket_count++; } else { BKE_modifier_set_error(ob, md, "Missing property for input socket \"%s\"", socket->name); @@ -1050,6 +1055,10 @@ static void check_property_socket_sync(const Object *ob, ModifierData *md) continue; } } + + if (geometry_socket_count > 1) { + BKE_modifier_set_error(ob, md, "Node group can only have one geometry input"); + } } static void modifyGeometry(ModifierData *md, |