diff --git a/editor/visual_script_editor.cpp b/editor/visual_script_editor.cpp index 569bcad..9e6c0ef 100644 --- a/editor/visual_script_editor.cpp +++ b/editor/visual_script_editor.cpp @@ -1603,12 +1603,12 @@ void VisualScriptEditor::_remove_output_port(int p_id, int p_port) { List data_connections; script->get_data_connection_list(&data_connections); - HashMap> conn_map; + HashMap> conn_map; for (const VisualScript::DataConnection &E : data_connections) { if (E.from_node == p_id && E.from_port == p_port) { // Push into the connections map. if (!conn_map.has(E.to_node)) { - conn_map.insert(E.to_node, Set()); + conn_map.insert(E.to_node, RBSet()); } conn_map[E.to_node].insert(E.to_port); } @@ -1617,8 +1617,8 @@ void VisualScriptEditor::_remove_output_port(int p_id, int p_port) { undo_redo->add_do_method(vsn.ptr(), "remove_output_data_port", p_port); undo_redo->add_do_method(this, "_update_graph", p_id); - for (const KeyValue> &E : conn_map) { - for (const Set::Element *F = E.value.front(); F; F = F->next()) { + for (const KeyValue> &E : conn_map) { + for (const RBSet::Element *F = E.value.front(); F; F = F->next()) { undo_redo->add_undo_method(script.ptr(), "data_connect", p_id, p_port, E.key, F->get()); } } @@ -1760,14 +1760,14 @@ void VisualScriptEditor::_on_nodes_paste() { return; } - Map remap; + HashMap remap; undo_redo->create_action(TTR("Paste VisualScript Nodes")); int idc = script->get_available_id() + 1; - Set to_select; + RBSet to_select; - Set existing_positions; + RBSet existing_positions; { List nodes; @@ -1806,12 +1806,12 @@ void VisualScriptEditor::_on_nodes_paste() { undo_redo->add_undo_method(script.ptr(), "remove_node", new_id); } - for (Set::Element *E = clipboard->sequence_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = clipboard->sequence_connections.front(); E; E = E->next()) { undo_redo->add_do_method(script.ptr(), "sequence_connect", remap[E->get().from_node], E->get().from_output, remap[E->get().to_node]); undo_redo->add_undo_method(script.ptr(), "sequence_disconnect", remap[E->get().from_node], E->get().from_output, remap[E->get().to_node]); } - for (Set::Element *E = clipboard->data_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = clipboard->data_connections.front(); E; E = E->next()) { undo_redo->add_do_method(script.ptr(), "data_connect", remap[E->get().from_node], E->get().from_port, remap[E->get().to_node], E->get().to_port); undo_redo->add_undo_method(script.ptr(), "data_disconnect", remap[E->get().from_node], E->get().from_port, remap[E->get().to_node], E->get().to_port); } @@ -1881,7 +1881,7 @@ void VisualScriptEditor::_on_nodes_delete() { } void VisualScriptEditor::_on_nodes_duplicate() { - Set to_duplicate; + RBSet to_duplicate; for (int i = 0; i < graph->get_child_count(); i++) { GraphNode *gn = Object::cast_to(graph->get_child(i)); @@ -1900,10 +1900,10 @@ void VisualScriptEditor::_on_nodes_duplicate() { undo_redo->create_action(TTR("Duplicate VisualScript Nodes")); int idc = script->get_available_id() + 1; - Set to_select; + RBSet to_select; HashMap remap; - for (Set::Element *F = to_duplicate.front(); F; F = F->next()) { + for (RBSet::Element *F = to_duplicate.front(); F; F = F->next()) { // Duplicate from the specific function but place it into the default func as it would lack the connections. Ref node = script->get_node(F->get()); @@ -3175,7 +3175,7 @@ void VisualScriptEditor::_graph_connect_to_empty(const String &p_from, int p_fro } } -VisualScriptNode::TypeGuess VisualScriptEditor::_guess_output_type(int p_port_action_node, int p_port_action_output, Set &visited_nodes) { +VisualScriptNode::TypeGuess VisualScriptEditor::_guess_output_type(int p_port_action_node, int p_port_action_output, RBSet &visited_nodes) { VisualScriptNode::TypeGuess tg; tg.type = Variant::NIL; @@ -3226,7 +3226,7 @@ VisualScriptNode::TypeGuess VisualScriptEditor::_guess_output_type(int p_port_ac } void VisualScriptEditor::_port_action_menu(int p_option) { - Set vn; + RBSet vn; switch (p_option) { case CREATE_CALL_SET_GET: { @@ -3338,7 +3338,7 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri #endif Vector2 pos = _get_pos_in_graph(port_action_pos); - Set vn; + RBSet vn; bool port_node_exists = true; if (drop_position != Vector2()) { @@ -4094,8 +4094,8 @@ void VisualScriptEditor::_menu_option(int p_what) { } break; case EDIT_CREATE_FUNCTION: { // Create Function. - Map> nodes; - Set selections; + HashMap> nodes; + RBSet selections; for (int i = 0; i < graph->get_child_count(); i++) { GraphNode *gn = Object::cast_to(graph->get_child(i)); if (gn) { @@ -4118,18 +4118,18 @@ void VisualScriptEditor::_menu_option(int p_what) { return; // nothing to be done if there are no valid nodes selected } - Set seqmove; - Set datamove; + RBSet seqmove; + RBSet datamove; - Set seqext; - Set dataext; + RBSet seqext; + RBSet dataext; int start_node = -1; - Set end_nodes; + RBSet end_nodes; if (nodes.size() == 1) { - Ref nd = script->get_node(nodes.front()->key()); + Ref nd = script->get_node(nodes.begin()->key); if (nd.is_valid() && nd->has_input_sequence_port()) { - start_node = nodes.front()->key(); + start_node = nodes.begin()->key; } else { EditorNode::get_singleton()->show_warning(TTR("Select at least one node with sequence port.")); return; @@ -4167,8 +4167,8 @@ void VisualScriptEditor::_menu_option(int p_what) { } } else { // Pick the node with input sequence. - Set nodes_from; - Set nodes_to; + RBSet nodes_from; + RBSet nodes_to; for (const VisualScript::SequenceConnection &E : seqs) { if (nodes.has(E.from_node) && nodes.has(E.to_node)) { seqmove.insert(E); @@ -4194,7 +4194,7 @@ void VisualScriptEditor::_menu_option(int p_what) { // If we still don't have a start node then, // run through the nodes and select the first tree node, // i.e. node without any input sequence but output sequence. - for (Set::Element *E = nodes_from.front(); E; E = E->next()) { + for (RBSet::Element *E = nodes_from.front(); E; E = E->next()) { if (!nodes_to.has(E->get())) { start_node = E->get(); } @@ -4265,11 +4265,11 @@ void VisualScriptEditor::_menu_option(int p_what) { // Move the nodes. // Handles reconnection of sequence connections on undo, start here in case of issues. - for (Set::Element *E = seqext.front(); E; E = E->next()) { + for (RBSet::Element *E = seqext.front(); E; E = E->next()) { undo_redo->add_do_method(script.ptr(), "sequence_disconnect", E->get().from_node, E->get().from_output, E->get().to_node); undo_redo->add_undo_method(script.ptr(), "sequence_connect", E->get().from_node, E->get().from_output, E->get().to_node); } - for (Set::Element *E = dataext.front(); E; E = E->next()) { + for (RBSet::Element *E = dataext.front(); E; E = E->next()) { undo_redo->add_do_method(script.ptr(), "data_disconnect", E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port); undo_redo->add_undo_method(script.ptr(), "data_connect", E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port); } @@ -4279,7 +4279,7 @@ void VisualScriptEditor::_menu_option(int p_what) { // Could fail with the new changes, start here when searching for bugs in create function shortcut. int m = 1; - for (Set::Element *G = end_nodes.front(); G; G = G->next()) { + for (RBSet::Element *G = end_nodes.front(); G; G = G->next()) { Ref ret_node; ret_node.instantiate(); @@ -4331,7 +4331,7 @@ void VisualScriptEditor::_menu_option(int p_what) { // This is likely going to be very slow and I am not sure if I should keep it, // but I hope that it will not be a problem considering that we won't be creating functions so frequently, // and cyclic connections would be a problem but hopefully we won't let them get to this point. -void VisualScriptEditor::_get_ends(int p_node, const List &p_seqs, const Set &p_selected, Set &r_end_nodes) { +void VisualScriptEditor::_get_ends(int p_node, const List &p_seqs, const RBSet &p_selected, RBSet &r_end_nodes) { for (const VisualScript::SequenceConnection &E : p_seqs) { int from = E.from_node; int to = E.to_node; @@ -4837,7 +4837,7 @@ Ref VisualScriptCustomNodes::create_node_custom(const String & } VisualScriptCustomNodes *VisualScriptCustomNodes::singleton = nullptr; -Map> VisualScriptCustomNodes::custom_nodes; +HashMap> VisualScriptCustomNodes::custom_nodes; VisualScriptCustomNodes::VisualScriptCustomNodes() { singleton = this; diff --git a/editor/visual_script_editor.h b/editor/visual_script_editor.h index e63539a..c7fd8c4 100644 --- a/editor/visual_script_editor.h +++ b/editor/visual_script_editor.h @@ -142,9 +142,9 @@ class VisualScriptEditor : public ScriptEditorBase { Vector> args; }; - Map node_colors; + HashMap node_colors; HashMap> node_styles; - Map base_type_map; + HashMap base_type_map; void _update_graph_connections(); void _update_graph(int p_only_id = -1); @@ -159,11 +159,11 @@ class VisualScriptEditor : public ScriptEditorBase { String _validate_name(const String &p_name) const; struct Clipboard { - Map> nodes; - Map nodes_positions; + HashMap> nodes; + HashMap nodes_positions; - Set sequence_connections; - Set data_connections; + RBSet sequence_connections; + RBSet data_connections; }; static Clipboard *clipboard; @@ -213,7 +213,7 @@ class VisualScriptEditor : public ScriptEditorBase { void _end_node_move(); void _move_node(int p_id, const Vector2 &p_to); - void _get_ends(int p_node, const List &p_seqs, const Set &p_selected, Set &r_end_nodes); + void _get_ends(int p_node, const List &p_seqs, const RBSet &p_selected, RBSet &r_end_nodes); void _node_moved(Vector2 p_from, Vector2 p_to, int p_id); void _remove_node(int p_id); @@ -287,7 +287,7 @@ class VisualScriptEditor : public ScriptEditorBase { void _draw_color_over_button(Object *obj, Color p_color); void _button_resource_previewed(const String &p_path, const Ref &p_preview, const Ref &p_small_preview, Variant p_ud); - VisualScriptNode::TypeGuess _guess_output_type(int p_port_action_node, int p_port_action_output, Set &p_visited_nodes); + VisualScriptNode::TypeGuess _guess_output_type(int p_port_action_node, int p_port_action_output, RBSet &p_visited_nodes); void _member_rmb_selected(const Vector2 &p_pos); void _member_option(int p_option); @@ -359,7 +359,7 @@ protected: static void _bind_methods(); static VisualScriptCustomNodes *singleton; - static Map> custom_nodes; + static HashMap> custom_nodes; static Ref create_node_custom(const String &p_name); public: diff --git a/editor/visual_script_property_selector.cpp b/editor/visual_script_property_selector.cpp index c8549dd..18d56a3 100644 --- a/editor/visual_script_property_selector.cpp +++ b/editor/visual_script_property_selector.cpp @@ -726,7 +726,7 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_match_classes_init() { combined_docs.insert(class_doc.name, class_doc); } } - iterator_doc = combined_docs.front(); + iterator_doc = combined_docs.begin(); return true; } @@ -787,7 +787,7 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_node_classes_build() { } bool VisualScriptPropertySelector::SearchRunner::_phase_match_classes() { - DocData::ClassDoc &class_doc = iterator_doc->value(); + DocData::ClassDoc &class_doc = iterator_doc->value; if ( (!_is_class_disabled_by_feature_profile(class_doc.name) && !_is_class_disabled_by_scope(class_doc.name)) || _match_visual_script(class_doc)) { @@ -909,13 +909,13 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_match_classes() { } } - iterator_doc = iterator_doc->next(); + ++iterator_doc; return !iterator_doc; } bool VisualScriptPropertySelector::SearchRunner::_phase_class_items_init() { results_tree->clear(); - iterator_match = matches.front(); + iterator_match = matches.begin(); root_item = results_tree->create_item(); class_items.clear(); @@ -928,7 +928,7 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_class_items() { return true; } - ClassMatch &match = iterator_match->value(); + ClassMatch &match = iterator_match->value; if (search_flags & SEARCH_SHOW_HIERARCHY) { if (match.required()) { @@ -940,12 +940,12 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_class_items() { } } - iterator_match = iterator_match->next(); + ++iterator_match; return !iterator_match; } bool VisualScriptPropertySelector::SearchRunner::_phase_member_items_init() { - iterator_match = matches.front(); + iterator_match = matches.begin(); return true; } @@ -955,7 +955,7 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_member_items() { return true; } - ClassMatch &match = iterator_match->value(); + ClassMatch &match = iterator_match->value; TreeItem *parent = (search_flags & SEARCH_SHOW_HIERARCHY) ? class_items[match.doc->name] : root_item; bool constructor_created = false; @@ -986,7 +986,7 @@ bool VisualScriptPropertySelector::SearchRunner::_phase_member_items() { _create_theme_property_item(parent, match.doc, match.theme_properties[i]); } - iterator_match = iterator_match->next(); + ++iterator_match; return !iterator_match; } diff --git a/editor/visual_script_property_selector.h b/editor/visual_script_property_selector.h index 90a6265..91d81bb 100644 --- a/editor/visual_script_property_selector.h +++ b/editor/visual_script_property_selector.h @@ -179,15 +179,15 @@ class VisualScriptPropertySelector::SearchRunner : public RefCounted { Ref empty_icon; Color disabled_color; - Map::Element *iterator_doc = nullptr; - Map matches; - Map::Element *iterator_match = nullptr; + HashMap::Iterator iterator_doc; + HashMap matches; + HashMap::Iterator iterator_match; TreeItem *root_item = nullptr; - Map class_items; + HashMap class_items; TreeItem *matched_item = nullptr; float match_highest_score = 0; - Map combined_docs; + HashMap combined_docs; List vs_nodes; bool _is_class_disabled_by_feature_profile(const StringName &p_class); diff --git a/visual_script.cpp b/visual_script.cpp index c140ceb..a287b8e 100644 --- a/visual_script.cpp +++ b/visual_script.cpp @@ -230,7 +230,7 @@ void VisualScript::_node_ports_changed(int p_id) { { List to_remove; - for (Set::Element *E = sequence_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = sequence_connections.front(); E; E = E->next()) { if (E->get().from_node == p_id && E->get().from_output >= vsn->get_output_sequence_port_count()) { to_remove.push_back(E->get()); } @@ -248,7 +248,7 @@ void VisualScript::_node_ports_changed(int p_id) { { List to_remove; - for (Set::Element *E = data_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = data_connections.front(); E; E = E->next()) { if (E->get().from_node == p_id && E->get().from_port >= vsn->get_output_value_port_count()) { to_remove.push_back(E->get()); } @@ -292,7 +292,7 @@ void VisualScript::remove_node(int p_id) { { List to_remove; - for (Set::Element *E = sequence_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = sequence_connections.front(); E; E = E->next()) { if (E->get().from_node == p_id || E->get().to_node == p_id) { to_remove.push_back(E->get()); } @@ -307,7 +307,7 @@ void VisualScript::remove_node(int p_id) { { List to_remove; - for (Set::Element *E = data_connections.front(); E; E = E->next()) { + for (RBSet::Element *E = data_connections.front(); E; E = E->next()) { if (E->get().from_node == p_id || E->get().to_node == p_id) { to_remove.push_back(E->get()); } @@ -384,7 +384,7 @@ bool VisualScript::has_sequence_connection(int p_from_node, int p_from_output, i } void VisualScript::get_sequence_connection_list(List *r_connection) const { - for (const Set::Element *E = sequence_connections.front(); E; E = E->next()) { + for (const RBSet::Element *E = sequence_connections.front(); E; E = E->next()) { r_connection->push_back(E->get()); } } @@ -426,7 +426,7 @@ bool VisualScript::has_data_connection(int p_from_node, int p_from_port, int p_t } bool VisualScript::is_input_value_port_connected(int p_node, int p_port) const { - for (const Set::Element *E = data_connections.front(); E; E = E->next()) { + for (const RBSet::Element *E = data_connections.front(); E; E = E->next()) { if (E->get().to_node == p_node && E->get().to_port == p_port) { return true; } @@ -435,7 +435,7 @@ bool VisualScript::is_input_value_port_connected(int p_node, int p_port) const { } bool VisualScript::get_input_value_port_connection_source(int p_node, int p_port, int *r_node, int *r_port) const { - for (const Set::Element *E = data_connections.front(); E; E = E->next()) { + for (const RBSet::Element *E = data_connections.front(); E; E = E->next()) { if (E->get().to_node == p_node && E->get().to_port == p_port) { *r_node = E->get().from_node; *r_port = E->get().from_port; @@ -446,7 +446,7 @@ bool VisualScript::get_input_value_port_connection_source(int p_node, int p_port } void VisualScript::get_data_connection_list(List *r_connection) const { - for (const Set::Element *E = data_connections.front(); E; E = E->next()) { + for (const RBSet::Element *E = data_connections.front(); E; E = E->next()) { r_connection->push_back(E->get()); } } @@ -751,7 +751,7 @@ void VisualScript::_update_placeholders() { return; // No bother if no placeholders. } List pinfo; - Map values; + HashMap values; for (const KeyValue &E : variables) { if (!variables[E.key]._export) { @@ -764,7 +764,7 @@ void VisualScript::_update_placeholders() { values[p.name] = variables[E.key].default_value; } - for (Set::Element *E = placeholders.front(); E; E = E->next()) { + for (RBSet::Element *E = placeholders.front(); E; E = E->next()) { E->get()->update(pinfo, values); } } @@ -779,7 +779,7 @@ ScriptInstance *VisualScript::instance_create(Object *p_this) { placeholders.insert(sins); List pinfo; - Map values; + HashMap values; for (const KeyValue &E : variables) { if (!variables[E.key]._export) { @@ -1078,7 +1078,7 @@ Dictionary VisualScript::_get_data() const { d["nodes"] = nds; Array seqconns; - for (const Set::Element *F = sequence_connections.front(); F; F = F->next()) { + for (const RBSet::Element *F = sequence_connections.front(); F; F = F->next()) { seqconns.push_back(F->get().from_node); seqconns.push_back(F->get().from_output); seqconns.push_back(F->get().to_node); @@ -1086,7 +1086,7 @@ Dictionary VisualScript::_get_data() const { d["sequence_connections"] = seqconns; Array dataconns; - for (const Set::Element *F = data_connections.front(); F; F = F->next()) { + for (const RBSet::Element *F = data_connections.front(); F; F = F->next()) { dataconns.push_back(F->get().from_node); dataconns.push_back(F->get().from_port); dataconns.push_back(F->get().to_node); @@ -1168,10 +1168,10 @@ bool VisualScript::inherits_script(const Ref