Skip to content

Commit

Permalink
GH-222 Allow some constant/singleton names be searchable
Browse files Browse the repository at this point in the history
  • Loading branch information
Naros committed Apr 5, 2024
1 parent 139a5f0 commit 5ccab43
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 2 deletions.
5 changes: 4 additions & 1 deletion src/editor/graph/actions/default_action_registrar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,14 @@ void OrchestratorDefaultGraphActionRegistrar::_register_node(const OrchestratorG

PackedStringArray name_parts = p_category.split("/");

PackedStringArray keywords = node->get_keywords();
keywords.append_array(name_parts);

OrchestratorGraphActionSpec spec;
spec.category = "Script/Nodes/" + p_category;
spec.tooltip = node->get_tooltip_text();
spec.text = name_parts[int(name_parts.size()) - 1].capitalize();
spec.keywords = StringUtils::join(",", name_parts);
spec.keywords = StringUtils::join(",", keywords);
spec.icon = node->get_icon();
spec.type_icon = "PluginScript";
spec.graph_compatible = node->is_compatible_with_graph(p_context.graph->get_owning_graph());
Expand Down
2 changes: 1 addition & 1 deletion src/script/node.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ class OScriptNode : public Resource

/// Get keywords that should also be matched when performing action lookups
/// @return keywords that are additional matches beyond the node name
virtual String get_keywords() const { return {}; }
virtual PackedStringArray get_keywords() const { return {}; }

/// Get all node-specific actions that will be appended to the node context menu.
/// @param p_action_list the list of actions to append actions
Expand Down
10 changes: 10 additions & 0 deletions src/script/nodes/constants/constants.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,11 @@ String OScriptNodeGlobalConstant::get_icon() const
return "MemberConstant";
}

PackedStringArray OScriptNodeGlobalConstant::get_keywords() const
{
return ExtensionDB::get_global_enum_value_names();
}

OScriptNodeInstance* OScriptNodeGlobalConstant::instantiate(OScriptInstance* p_instance)
{
OScriptNodeGlobalConstantInstance* i = memnew(OScriptNodeGlobalConstantInstance);
Expand Down Expand Up @@ -258,6 +263,11 @@ String OScriptNodeMathConstant::get_icon() const
return "MemberConstant";
}

PackedStringArray OScriptNodeMathConstant::get_keywords() const
{
return ExtensionDB::get_math_constant_names();
}

OScriptNodeInstance* OScriptNodeMathConstant::instantiate(OScriptInstance* p_instance)
{
OScriptNodeMathConstantInstance* i = memnew(OScriptNodeMathConstantInstance);
Expand Down
2 changes: 2 additions & 0 deletions src/script/nodes/constants/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class OScriptNodeGlobalConstant : public OScriptNodeConstant
String get_tooltip_text() const override;
String get_node_title() const override;
String get_icon() const override;
PackedStringArray get_keywords() const override;
OScriptNodeInstance* instantiate(OScriptInstance* p_instance) override;
void initialize(const OScriptNodeInitContext& p_context) override;
bool validate_node_during_build() const override;
Expand All @@ -83,6 +84,7 @@ class OScriptNodeMathConstant : public OScriptNodeConstant
String get_tooltip_text() const override;
String get_node_title() const override;
String get_icon() const override;
PackedStringArray get_keywords() const override;
OScriptNodeInstance* instantiate(OScriptInstance* p_instance) override;
bool validate_node_during_build() const override;
//~ End OScriptNodeInterface
Expand Down
5 changes: 5 additions & 0 deletions src/script/nodes/utilities/engine_singleton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@ String OScriptNodeEngineSingleton::get_icon() const
return "GodotMonochrome";
}

PackedStringArray OScriptNodeEngineSingleton::get_keywords() const
{
return Engine::get_singleton()->get_singleton_list();
}

StringName OScriptNodeEngineSingleton::resolve_type_class(const Ref<OScriptNodePin>& p_pin) const
{
return _singleton;
Expand Down
1 change: 1 addition & 0 deletions src/script/nodes/utilities/engine_singleton.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class OScriptNodeEngineSingleton : public OScriptNode
String get_node_title() const override;
String get_node_title_color_name() const override { return "variable"; }
String get_icon() const override;
PackedStringArray get_keywords() const override;
StringName resolve_type_class(const Ref<OScriptNodePin>& p_pin) const override;
OScriptNodeInstance* instantiate(OScriptInstance* p_instance) override;
//~ End OScriptNode Interface
Expand Down

0 comments on commit 5ccab43

Please sign in to comment.