Geometry Nodes: Add link drag search items to store named grid node
This commit is contained in:
@@ -34,8 +34,31 @@ static void node_declare(NodeDeclarationBuilder &b)
|
||||
|
||||
static void search_link_ops(GatherLinkSearchOpParams ¶ms)
|
||||
{
|
||||
if (U.experimental.use_new_volume_nodes) {
|
||||
nodes::search_link_ops_for_basic_node(params);
|
||||
if (!U.experimental.use_new_volume_nodes) {
|
||||
return;
|
||||
}
|
||||
params.add_item(IFACE_("Volume"), [](LinkSearchOpParams ¶ms) {
|
||||
bNode &node = params.add_node("GeometryNodeStoreNamedGrid");
|
||||
params.update_and_connect_available_socket(node, "Volume");
|
||||
});
|
||||
if (params.in_out() == SOCK_IN) {
|
||||
if (params.other_socket().type == SOCK_STRING) {
|
||||
params.add_item(IFACE_("Name"), [](LinkSearchOpParams ¶ms) {
|
||||
bNode &node = params.add_node("GeometryNodeStoreNamedGrid");
|
||||
params.update_and_connect_available_socket(node, "Name");
|
||||
});
|
||||
}
|
||||
if (const std::optional<eCustomDataType> data_type = bke::socket_type_to_custom_data_type(
|
||||
eNodeSocketDatatype(params.other_socket().type)))
|
||||
{
|
||||
if (grid_type_supported(*data_type)) {
|
||||
params.add_item(IFACE_("Grid"), [data_type](LinkSearchOpParams ¶ms) {
|
||||
bNode &node = params.add_node("GeometryNodeStoreNamedGrid");
|
||||
node.custom1 = *data_type;
|
||||
params.update_and_connect_available_socket(node, "Grid");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user