diff --git a/blackboard/bb_param/bb_node.cpp b/blackboard/bb_param/bb_node.cpp index c841193..f7546ef 100644 --- a/blackboard/bb_param/bb_node.cpp +++ b/blackboard/bb_param/bb_node.cpp @@ -13,7 +13,7 @@ Variant BBNode::get_value(Node *p_scene_root, const Ref &p_blackboard, const Variant &p_default) { ERR_FAIL_NULL_V_MSG(p_scene_root, Variant(), "BBNode: get_value() failed - scene_root is null."); - ERR_FAIL_NULL_V_MSG(p_blackboard, Variant(), "BBNode: get_value() failed - blackboard is null."); + ERR_FAIL_COND_V_MSG(p_blackboard.is_null(), Variant(), "BBNode: get_value() failed - blackboard is null."); Variant val; if (get_value_source() == SAVED_VALUE) { diff --git a/blackboard/blackboard_plan.cpp b/blackboard/blackboard_plan.cpp index c4bee42..ff6dee1 100644 --- a/blackboard/blackboard_plan.cpp +++ b/blackboard/blackboard_plan.cpp @@ -430,7 +430,7 @@ void BlackboardPlan::populate_blackboard(const Ref &p_blackboard, bo if (has_mapping) { StringName target_var = parent_scope_mapping[p.first]; if (target_var != StringName()) { - ERR_CONTINUE_MSG(p_blackboard->get_parent() == nullptr, vformat("BlackboardPlan: Cannot link variable %s to parent scope because the parent scope is not set.", LimboUtility::get_singleton()->decorate_var(p.first))); + ERR_CONTINUE_MSG(p_blackboard->get_parent().is_null(), vformat("BlackboardPlan: Cannot link variable %s to parent scope because the parent scope is not set.", LimboUtility::get_singleton()->decorate_var(p.first))); p_blackboard->link_var(p.first, p_blackboard->get_parent(), target_var); } } diff --git a/bt/behavior_tree.cpp b/bt/behavior_tree.cpp index 64d5f4a..afd0feb 100644 --- a/bt/behavior_tree.cpp +++ b/bt/behavior_tree.cpp @@ -78,10 +78,10 @@ void BehaviorTree::copy_other(const Ref &p_other) { } Ref BehaviorTree::instantiate(Node *p_agent, const Ref &p_blackboard, Node *p_instance_owner, Node *p_custom_scene_root) const { - ERR_FAIL_COND_V_MSG(root_task == nullptr, nullptr, "BehaviorTree: Instantiation failed - BT has no valid root task."); + ERR_FAIL_COND_V_MSG(root_task.is_null(), nullptr, "BehaviorTree: Instantiation failed - BT has no valid root task."); ERR_FAIL_NULL_V_MSG(p_agent, nullptr, "BehaviorTree: Instantiation failed - agent can't be null."); ERR_FAIL_NULL_V_MSG(p_instance_owner, nullptr, "BehaviorTree: Instantiation failed -- instance owner can't be null."); - ERR_FAIL_NULL_V_MSG(p_blackboard, nullptr, "BehaviorTree: Instantiation failed - blackboard can't be null."); + ERR_FAIL_COND_V_MSG(p_blackboard.is_null(), nullptr, "BehaviorTree: Instantiation failed - blackboard can't be null."); Node *scene_root = p_custom_scene_root ? p_custom_scene_root : p_instance_owner->get_owner(); ERR_FAIL_NULL_V_MSG(scene_root, nullptr, "BehaviorTree: Instantiation failed - unable to establish scene root. This is likely due to the instance owner not being owned by a scene node and custom_scene_root being null."); Ref root_copy = root_task->clone(); diff --git a/bt/bt_instance.cpp b/bt/bt_instance.cpp index 2f95dc8..8b78cc9 100644 --- a/bt/bt_instance.cpp +++ b/bt/bt_instance.cpp @@ -25,7 +25,7 @@ #endif Ref BTInstance::create(Ref p_root_task, String p_source_bt_path, Node *p_owner_node) { - ERR_FAIL_NULL_V(p_root_task, nullptr); + ERR_FAIL_COND_V(p_root_task.is_null(), nullptr); ERR_FAIL_NULL_V(p_owner_node, nullptr); Ref inst; inst.instantiate(); @@ -102,7 +102,7 @@ double BTInstance::_get_mean_update_time_msec_and_reset() { void BTInstance::_add_custom_monitor() { ERR_FAIL_NULL(get_owner_node()); - ERR_FAIL_NULL(root_task); + ERR_FAIL_COND(root_task.is_null()); ERR_FAIL_NULL(root_task->get_agent()); if (monitor_id == StringName()) { diff --git a/bt/bt_state.cpp b/bt/bt_state.cpp index 5449943..835d382 100644 --- a/bt/bt_state.cpp +++ b/bt/bt_state.cpp @@ -98,7 +98,7 @@ void BTState::_update(double p_delta) { // Bail out if a transition happened in the meantime. return; } - ERR_FAIL_NULL(bt_instance); + ERR_FAIL_COND(bt_instance.is_null()); BT::Status status = bt_instance->update(p_delta); if (status == BTTask::SUCCESS) { get_root()->dispatch(success_event, Variant()); diff --git a/bt/tasks/bt_comment.cpp b/bt/tasks/bt_comment.cpp index b5689da..d2475b6 100644 --- a/bt/tasks/bt_comment.cpp +++ b/bt/tasks/bt_comment.cpp @@ -30,7 +30,7 @@ PackedStringArray BTComment::get_configuration_warnings() { if (get_child_count_excluding_comments() > 0) { warnings.append("Can only have other comment tasks as children."); } - if (get_parent() == nullptr) { + if (get_parent().is_null()) { warnings.append("Can't be the root task."); } return warnings; diff --git a/bt/tasks/bt_task.cpp b/bt/tasks/bt_task.cpp index 11ae322..315344e 100644 --- a/bt/tasks/bt_task.cpp +++ b/bt/tasks/bt_task.cpp @@ -163,7 +163,7 @@ void BTTask::set_custom_name(const String &p_name) { void BTTask::initialize(Node *p_agent, const Ref &p_blackboard, Node *p_scene_root) { ERR_FAIL_NULL(p_agent); - ERR_FAIL_NULL(p_blackboard); + ERR_FAIL_COND(p_blackboard.is_null()); ERR_FAIL_NULL(p_scene_root); data.agent = p_agent; data.blackboard = p_blackboard; diff --git a/bt/tasks/decorators/bt_cooldown.cpp b/bt/tasks/decorators/bt_cooldown.cpp index c16199f..1997bce 100644 --- a/bt/tasks/decorators/bt_cooldown.cpp +++ b/bt/tasks/decorators/bt_cooldown.cpp @@ -80,7 +80,7 @@ void BTCooldown::_chill() { timer->set_time_left(duration); } else { timer = SCENE_TREE()->create_timer(duration, process_pause); - ERR_FAIL_NULL(timer); + ERR_FAIL_COND(timer.is_null()); timer->connect(LW_NAME(timeout), callable_mp(this, &BTCooldown::_on_timeout), CONNECT_ONE_SHOT); } } diff --git a/bt/tasks/decorators/bt_new_scope.cpp b/bt/tasks/decorators/bt_new_scope.cpp index 5a2b1c4..4098b6d 100644 --- a/bt/tasks/decorators/bt_new_scope.cpp +++ b/bt/tasks/decorators/bt_new_scope.cpp @@ -32,16 +32,16 @@ void BTNewScope::set_blackboard_plan(const Ref &p_plan) { #ifdef TOOLS_ENABLED void BTNewScope::_set_parent_scope_plan_from_bt() { - ERR_FAIL_NULL(get_blackboard_plan()); + ERR_FAIL_COND(get_blackboard_plan().is_null()); Ref bt = get_root()->editor_get_behavior_tree(); - ERR_FAIL_NULL(bt); + ERR_FAIL_COND(bt.is_null()); get_blackboard_plan()->set_parent_scope_plan_provider(callable_mp(bt.ptr(), &BehaviorTree::get_blackboard_plan)); } #endif // TOOLS_ENABLED void BTNewScope::initialize(Node *p_agent, const Ref &p_blackboard, Node *p_scene_root) { ERR_FAIL_COND(p_agent == nullptr); - ERR_FAIL_COND(p_blackboard == nullptr); + ERR_FAIL_COND(p_blackboard.is_null()); Ref bb; if (blackboard_plan.is_valid()) { diff --git a/editor/blackboard_plan_editor.cpp b/editor/blackboard_plan_editor.cpp index 5e509c0..75c1bfc 100644 --- a/editor/blackboard_plan_editor.cpp +++ b/editor/blackboard_plan_editor.cpp @@ -46,7 +46,7 @@ LineEdit *BlackboardPlanEditor::_get_name_edit(int p_row_index) const { } void BlackboardPlanEditor::_add_var() { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); int suffix = 1; StringName var_name = default_var_name == StringName() ? "var" : default_var_name; @@ -65,14 +65,14 @@ void BlackboardPlanEditor::_add_var() { } void BlackboardPlanEditor::_trash_var(int p_index) { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); StringName var_name = plan->get_var_by_index(p_index).first; plan->remove_var(var_name); _refresh(); } void BlackboardPlanEditor::_rename_var(const StringName &p_new_name, int p_index) { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); LineEdit *name_edit = _get_name_edit(p_index); ERR_FAIL_NULL(name_edit); @@ -96,7 +96,7 @@ void BlackboardPlanEditor::_rename_var(const StringName &p_new_name, int p_index } void BlackboardPlanEditor::_change_var_type(Variant::Type p_new_type, int p_index) { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); BBVariable var = plan->get_var_by_index(p_index).second; if (var.get_type() == p_new_type) { @@ -115,14 +115,14 @@ void BlackboardPlanEditor::_change_var_type(Variant::Type p_new_type, int p_inde } void BlackboardPlanEditor::_change_var_hint(PropertyHint p_new_hint, int p_index) { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); plan->get_var_by_index(p_index).second.set_hint(p_new_hint); plan->notify_property_list_changed(); _refresh(); } void BlackboardPlanEditor::_change_var_hint_string(const String &p_new_hint_string, int p_index) { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); plan->get_var_by_index(p_index).second.set_hint_string(p_new_hint_string); plan->notify_property_list_changed(); } @@ -278,7 +278,7 @@ void BlackboardPlanEditor::_refresh() { Button *drag_button = memnew(Button); props_hbox->add_child(drag_button); drag_button->set_custom_minimum_size(Size2(28.0, 28.0) * EDSCALE); - BUTTON_SET_ICON(drag_button, theme_cache.grab_icon); + drag_button->set_button_icon(theme_cache.grab_icon); drag_button->connect(LW_NAME(gui_input), callable_mp(this, &BlackboardPlanEditor::_drag_button_gui_input)); drag_button->connect(LW_NAME(button_down), callable_mp(this, &BlackboardPlanEditor::_drag_button_down).bind(row_panel)); drag_button->connect(LW_NAME(button_up), callable_mp(this, &BlackboardPlanEditor::_drag_button_up)); @@ -297,7 +297,7 @@ void BlackboardPlanEditor::_refresh() { type_choice->set_custom_minimum_size(Size2(170, 0.0) * EDSCALE); type_choice->set_text(Variant::get_type_name(var.get_type())); type_choice->set_tooltip_text(Variant::get_type_name(var.get_type())); - BUTTON_SET_ICON(type_choice, get_theme_icon(Variant::get_type_name(var.get_type()), LW_NAME(EditorIcons))); + type_choice->set_button_icon(get_theme_icon(Variant::get_type_name(var.get_type()), LW_NAME(EditorIcons))); type_choice->set_text_overrun_behavior(TextServer::OVERRUN_TRIM_ELLIPSIS); type_choice->set_flat(true); type_choice->set_text_alignment(HORIZONTAL_ALIGNMENT_LEFT); @@ -326,7 +326,7 @@ void BlackboardPlanEditor::_refresh() { Button *trash_button = memnew(Button); props_hbox->add_child(trash_button); trash_button->set_custom_minimum_size(Size2(24.0, 0.0) * EDSCALE); - BUTTON_SET_ICON(trash_button, theme_cache.trash_icon); + trash_button->set_button_icon(theme_cache.trash_icon); trash_button->connect(LW_NAME(pressed), callable_mp(this, &BlackboardPlanEditor::_trash_var).bind(i)); } } @@ -337,7 +337,7 @@ void BlackboardPlanEditor::_notification(int p_what) { theme_cache.trash_icon = get_theme_icon(LW_NAME(Remove), LW_NAME(EditorIcons)); theme_cache.grab_icon = get_theme_icon(LW_NAME(TripleBar), LW_NAME(EditorIcons)); - BUTTON_SET_ICON(add_var_tool, get_theme_icon(LW_NAME(Add), LW_NAME(EditorIcons))); + add_var_tool->set_button_icon(get_theme_icon(LW_NAME(Add), LW_NAME(EditorIcons))); type_menu->clear(); for (int i = 0; i < Variant::VARIANT_MAX; i++) { @@ -472,14 +472,14 @@ BlackboardPlanEditor::BlackboardPlanEditor() { // ***** EditorInspectorPluginBBPlan ***** void EditorInspectorPluginBBPlan::_edit_plan(const Ref &p_plan) { - ERR_FAIL_NULL(p_plan); + ERR_FAIL_COND(p_plan.is_null()); plan_editor->edit_plan(p_plan); plan_editor->popup_centered(); } void EditorInspectorPluginBBPlan::_open_base_plan(const Ref &p_plan) { - ERR_FAIL_NULL(p_plan); - ERR_FAIL_NULL(p_plan->get_base_plan()); + ERR_FAIL_COND(p_plan.is_null()); + ERR_FAIL_COND(p_plan->get_base_plan().is_null()); EditorInterface::get_singleton()->call_deferred("edit_resource", p_plan->get_base_plan()); } @@ -501,7 +501,7 @@ void EditorInspectorPluginBBPlan::parse_begin(Object *p_object) { void EditorInspectorPluginBBPlan::_parse_begin(Object *p_object) { #endif Ref plan = Object::cast_to(p_object); - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); PanelContainer *panel = memnew(PanelContainer); ADD_STYLEBOX_OVERRIDE(panel, LW_NAME(panel), toolbar_style); @@ -522,7 +522,7 @@ void EditorInspectorPluginBBPlan::_parse_begin(Object *p_object) { goto_btn->set_text(TTR("Edit Base")); goto_btn->set_h_size_flags(Control::SIZE_SHRINK_CENTER); goto_btn->set_custom_minimum_size(Size2(150.0, 0.0) * EDSCALE); - BUTTON_SET_ICON(goto_btn, EditorInterface::get_singleton()->get_editor_theme()->get_icon(LW_NAME(Edit), LW_NAME(EditorIcons))); + goto_btn->set_button_icon(EditorInterface::get_singleton()->get_editor_theme()->get_icon(LW_NAME(Edit), LW_NAME(EditorIcons))); goto_btn->connect(LW_NAME(pressed), callable_mp(this, &EditorInspectorPluginBBPlan::_open_base_plan).bind(plan)); } else { Button *edit_btn = memnew(Button); @@ -530,7 +530,7 @@ void EditorInspectorPluginBBPlan::_parse_begin(Object *p_object) { edit_btn->set_text(TTR("Manage...")); edit_btn->set_h_size_flags(Control::SIZE_SHRINK_CENTER); edit_btn->set_custom_minimum_size(Size2(150.0, 0.0) * EDSCALE); - BUTTON_SET_ICON(edit_btn, EditorInterface::get_singleton()->get_editor_theme()->get_icon(LW_NAME(EditAddRemove), LW_NAME(EditorIcons))); + edit_btn->set_button_icon(EditorInterface::get_singleton()->get_editor_theme()->get_icon(LW_NAME(EditAddRemove), LW_NAME(EditorIcons))); edit_btn->connect(LW_NAME(pressed), callable_mp(this, &EditorInspectorPluginBBPlan::_edit_plan).bind(plan)); } diff --git a/editor/debugger/limbo_debugger_plugin.cpp b/editor/debugger/limbo_debugger_plugin.cpp index db6bcb5..e8f0f7d 100644 --- a/editor/debugger/limbo_debugger_plugin.cpp +++ b/editor/debugger/limbo_debugger_plugin.cpp @@ -209,7 +209,7 @@ void LimboDebuggerTab::_notification(int p_what) { } break; case NOTIFICATION_THEME_CHANGED: { alert_icon->set_texture(get_theme_icon(LW_NAME(StatusWarning), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(resource_header, LimboUtility::get_singleton()->get_task_icon("BehaviorTree")); + resource_header->set_button_icon(LimboUtility::get_singleton()->get_task_icon("BehaviorTree")); } break; } } diff --git a/editor/editor_property_bb_param.cpp b/editor/editor_property_bb_param.cpp index 5969baa..4ab8e89 100644 --- a/editor/editor_property_bb_param.cpp +++ b/editor/editor_property_bb_param.cpp @@ -287,14 +287,14 @@ void EditorPropertyBBParam::update_property() { variable_editor->update_property(); variable_editor->show(); bottom_container->hide(); - type_choice->set_icon(get_editor_theme_icon(SNAME("LimboExtraVariable"))); + type_choice->set_button_icon(get_editor_theme_icon(SNAME("LimboExtraVariable"))); } else { _create_value_editor(param->get_type()); variable_editor->hide(); value_editor->show(); value_editor->set_object_and_property(param.ptr(), SNAME("saved_value")); value_editor->update_property(); - type_choice->set_icon(get_editor_theme_icon(Variant::get_type_name(param->get_type()))); + type_choice->set_button_icon(get_editor_theme_icon(Variant::get_type_name(param->get_type()))); } } @@ -316,7 +316,7 @@ void EditorPropertyBBParam::_notification(int p_what) { { String type = Variant::get_type_name(_get_edited_param()->get_type()); - type_choice->set_icon(get_editor_theme_icon(type)); + type_choice->set_button_icon(get_editor_theme_icon(type)); } // Initialize type choice. diff --git a/editor/editor_property_variable_name.cpp b/editor/editor_property_variable_name.cpp index 44c11f8..6a88a47 100644 --- a/editor/editor_property_variable_name.cpp +++ b/editor/editor_property_variable_name.cpp @@ -36,7 +36,7 @@ int EditorPropertyVariableName::last_caret_column = 0; //***** EditorPropertyVariableName void EditorPropertyVariableName::_show_variables_popup() { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); variables_popup->clear(); variables_popup->reset_size(); @@ -86,30 +86,30 @@ void EditorPropertyVariableName::_update_status() { } String var_name = name_edit->get_text(); if (var_name.is_empty() && allow_empty) { - BUTTON_SET_ICON(status_btn, theme_cache.var_empty_icon); + status_btn->set_button_icon(theme_cache.var_empty_icon); status_btn->set_tooltip_text(TTR("Variable name not specified.\nClick to open the blackboard plan.")); } else if (plan->has_var(var_name)) { if (expected_type == Variant::NIL || plan->get_var(var_name).get_type() == expected_type) { - BUTTON_SET_ICON(status_btn, theme_cache.var_exists_icon); + status_btn->set_button_icon(theme_cache.var_exists_icon); status_btn->set_tooltip_text(TTR("This variable is present in the blackboard plan.\nClick to open the blackboard plan.")); } else { - BUTTON_SET_ICON(status_btn, theme_cache.var_error_icon); + status_btn->set_button_icon(theme_cache.var_error_icon); status_btn->set_tooltip_text(TTR(vformat( "The %s variable in the blackboard plan should be of type %s.\nClick to open the blackboard plan.", LimboUtility::get_singleton()->decorate_var(var_name), Variant::get_type_name(expected_type)))); } } else if (name_edit->get_text().begins_with("_")) { - BUTTON_SET_ICON(status_btn, theme_cache.var_private_icon); + status_btn->set_button_icon(theme_cache.var_private_icon); status_btn->set_tooltip_text(TTR("This variable is private and is not included in the blackboard plan.\nClick to open the blackboard plan.")); } else { - BUTTON_SET_ICON(status_btn, theme_cache.var_not_found_icon); + status_btn->set_button_icon(theme_cache.var_not_found_icon); status_btn->set_tooltip_text(TTR("No matching variable found in the blackboard plan!\nClick to open the blackboard plan.")); } } void EditorPropertyVariableName::_status_pressed() { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); if (!plan->has_var(name_edit->get_text())) { BlackboardPlanEditor::get_singleton()->set_defaults(name_edit->get_text(), expected_type == Variant::NIL ? Variant::FLOAT : expected_type, @@ -120,14 +120,14 @@ void EditorPropertyVariableName::_status_pressed() { } void EditorPropertyVariableName::_status_mouse_entered() { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); if (!plan->has_var(name_edit->get_text())) { - BUTTON_SET_ICON(status_btn, theme_cache.var_add_icon); + status_btn->set_button_icon(theme_cache.var_add_icon); } } void EditorPropertyVariableName::_status_mouse_exited() { - ERR_FAIL_NULL(plan); + ERR_FAIL_COND(plan.is_null()); _update_status(); } @@ -182,7 +182,7 @@ void EditorPropertyVariableName::_notification(int p_what) { } } break; case NOTIFICATION_THEME_CHANGED: { - BUTTON_SET_ICON(drop_btn, get_theme_icon(LW_NAME(GuiOptionArrow), LW_NAME(EditorIcons))); + drop_btn->set_button_icon(get_theme_icon(LW_NAME(GuiOptionArrow), LW_NAME(EditorIcons))); theme_cache.var_add_icon = LimboUtility::get_singleton()->get_task_icon(LW_NAME(LimboVarAdd)); theme_cache.var_exists_icon = LimboUtility::get_singleton()->get_task_icon(LW_NAME(LimboVarExists)); theme_cache.var_not_found_icon = LimboUtility::get_singleton()->get_task_icon(LW_NAME(LimboVarNotFound)); @@ -257,7 +257,7 @@ bool EditorInspectorPluginVariableName::_parse_property(Object *p_object, const Variant default_value; if (is_mapping) { plan.reference_ptr(Object::cast_to(p_object)); - ERR_FAIL_NULL_V(plan, false); + ERR_FAIL_COND_V(plan.is_null(), false); String var_name = p_path.trim_prefix("mapping/"); if (plan->has_var(var_name)) { BBVariable variable = plan->get_var(var_name); @@ -272,7 +272,7 @@ bool EditorInspectorPluginVariableName::_parse_property(Object *p_object, const plan = parent_plan; } } - ERR_FAIL_NULL_V(plan, false); + ERR_FAIL_COND_V(plan.is_null(), false); } else { plan = editor_plan_provider.call(); } diff --git a/editor/limbo_ai_editor_plugin.cpp b/editor/limbo_ai_editor_plugin.cpp index 589ec5f..a152afc 100644 --- a/editor/limbo_ai_editor_plugin.cpp +++ b/editor/limbo_ai_editor_plugin.cpp @@ -183,7 +183,7 @@ void LimboAIEditor::_remove_task(const Ref &p_task) { ERR_FAIL_COND(p_task.is_null()); ERR_FAIL_COND(task_tree->get_bt().is_null()); EditorUndoRedoManager *undo_redo = _new_undo_redo_action(TTR("Remove BT Task")); - if (p_task->get_parent() == nullptr) { + if (p_task->get_parent().is_null()) { ERR_FAIL_COND(task_tree->get_bt()->get_root_task() != p_task); undo_redo->add_do_method(task_tree->get_bt().ptr(), LW_NAME(set_root_task), Variant()); undo_redo->add_undo_method(task_tree->get_bt().ptr(), LW_NAME(set_root_task), task_tree->get_bt()->get_root_task()); @@ -719,7 +719,7 @@ void LimboAIEditor::_action_selected(int p_id) { void LimboAIEditor::_on_probability_edited(double p_value) { Ref selected = task_tree->get_selected(); - ERR_FAIL_COND(selected == nullptr); + ERR_FAIL_COND(selected.is_null()); Ref probability_selector = selected->get_parent(); ERR_FAIL_COND(probability_selector.is_null()); if (percent_mode->is_pressed()) { @@ -1223,7 +1223,7 @@ void LimboAIEditor::_tab_menu_option_selected(int p_id) { } break; case TAB_JUMP_TO_OWNER: { Ref bt = history[idx_history]; - ERR_FAIL_NULL(bt); + ERR_FAIL_COND(bt.is_null()); String bt_path = bt->get_path(); if (!bt_path.is_empty()) { owner_picker->pick_and_open_owner_of_resource(bt_path); @@ -1341,7 +1341,7 @@ void LimboAIEditor::_update_favorite_tasks() { } btn->set_text(task_name); btn->set_meta(LW_NAME(task_meta), task_meta); - BUTTON_SET_ICON(btn, LimboUtility::get_singleton()->get_task_icon(task_meta)); + btn->set_button_icon(LimboUtility::get_singleton()->get_task_icon(task_meta)); btn->set_tooltip_text(vformat(TTR("Add %s task."), task_name)); btn->set_flat(true); btn->add_theme_constant_override(LW_NAME(icon_max_width), 16 * EDSCALE); // Force user icons to be of the proper size. @@ -1512,11 +1512,11 @@ void LimboAIEditor::_notification(int p_what) { ADD_STYLEBOX_OVERRIDE(tab_bar_panel, "panel", get_theme_stylebox("tabbar_background", "TabContainer")); - BUTTON_SET_ICON(new_btn, get_theme_icon(LW_NAME(New), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(load_btn, get_theme_icon(LW_NAME(Load), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(save_btn, get_theme_icon(LW_NAME(Save), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(new_script_btn, get_theme_icon(LW_NAME(ScriptCreate), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(misc_btn, get_theme_icon(LW_NAME(Tools), LW_NAME(EditorIcons))); + new_btn->set_button_icon(get_theme_icon(LW_NAME(New), LW_NAME(EditorIcons))); + load_btn->set_button_icon(get_theme_icon(LW_NAME(Load), LW_NAME(EditorIcons))); + save_btn->set_button_icon(get_theme_icon(LW_NAME(Save), LW_NAME(EditorIcons))); + new_script_btn->set_button_icon(get_theme_icon(LW_NAME(ScriptCreate), LW_NAME(EditorIcons))); + misc_btn->set_button_icon(get_theme_icon(LW_NAME(Tools), LW_NAME(EditorIcons))); _update_favorite_tasks(); } break; diff --git a/editor/limbo_ai_editor_plugin.h b/editor/limbo_ai_editor_plugin.h index 6068aec..4a7d6ea 100644 --- a/editor/limbo_ai_editor_plugin.h +++ b/editor/limbo_ai_editor_plugin.h @@ -26,6 +26,7 @@ #include "core/object/class_db.h" #include "core/object/object.h" #include "core/templates/hash_set.h" +#include "editor/editor_main_screen.h" #include "editor/editor_node.h" #include "editor/editor_undo_redo_manager.h" #include "editor/gui/editor_spin_slider.h" @@ -42,6 +43,7 @@ #include "scene/gui/popup.h" #include "scene/gui/popup_menu.h" #include "scene/gui/split_container.h" +#include "scene/gui/tab_bar.h" #include "scene/gui/tree.h" #include "scene/resources/texture.h" #endif // LIMBOAI_MODULE diff --git a/editor/mode_switch_button.h b/editor/mode_switch_button.h index 4bc6a09..e7b5e3e 100644 --- a/editor/mode_switch_button.h +++ b/editor/mode_switch_button.h @@ -44,7 +44,7 @@ private: _FORCE_INLINE_ void _set_mode_by_index(int p_index) { current_mode_index = p_index; - BUTTON_SET_ICON(this, modes[current_mode_index].icon); + this->set_button_icon(modes[current_mode_index].icon); if (!modes[current_mode_index].tooltip.is_empty()) { set_tooltip_text(modes[current_mode_index].tooltip); } diff --git a/editor/task_palette.cpp b/editor/task_palette.cpp index b0af452..7f427a6 100644 --- a/editor/task_palette.cpp +++ b/editor/task_palette.cpp @@ -184,7 +184,7 @@ void TaskPaletteSection::set_filter(String p_filter_text) { void TaskPaletteSection::add_task_button(const String &p_name, const Ref &icon, const String &p_meta) { TaskButton *btn = memnew(TaskButton); btn->set_text(p_name); - BUTTON_SET_ICON(btn, icon); + btn->set_button_icon(icon); btn->set_tooltip_text("dummy_text"); // Force tooltip to be shown. btn->set_task_meta(p_meta); btn->add_theme_constant_override(LW_NAME(icon_max_width), 16 * EDSCALE); // Force user icons to be of the proper size. @@ -195,7 +195,7 @@ void TaskPaletteSection::add_task_button(const String &p_name, const Refset_visible(!p_collapsed); - BUTTON_SET_ICON(section_header, (p_collapsed ? theme_cache.arrow_right_icon : theme_cache.arrow_down_icon)); + section_header->set_button_icon((p_collapsed ? theme_cache.arrow_right_icon : theme_cache.arrow_down_icon)); } bool TaskPaletteSection::is_collapsed() const { @@ -214,7 +214,7 @@ void TaskPaletteSection::_notification(int p_what) { } break; case NOTIFICATION_THEME_CHANGED: { _do_update_theme_item_cache(); - BUTTON_SET_ICON(section_header, (is_collapsed() ? theme_cache.arrow_right_icon : theme_cache.arrow_down_icon)); + section_header->set_button_icon((is_collapsed() ? theme_cache.arrow_right_icon : theme_cache.arrow_down_icon)); section_header->add_theme_font_override(LW_NAME(font), get_theme_font(LW_NAME(bold), LW_NAME(EditorFonts))); } break; } @@ -600,13 +600,13 @@ void TaskPalette::_notification(int p_what) { case NOTIFICATION_THEME_CHANGED: { _do_update_theme_item_cache(); - BUTTON_SET_ICON(tool_filters, get_theme_icon(LW_NAME(AnimationFilter), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(tool_refresh, get_theme_icon(LW_NAME(Reload), LW_NAME(EditorIcons))); + tool_filters->set_button_icon(get_theme_icon(LW_NAME(AnimationFilter), LW_NAME(EditorIcons))); + tool_refresh->set_button_icon(get_theme_icon(LW_NAME(Reload), LW_NAME(EditorIcons))); filter_edit->set_right_icon(get_theme_icon(LW_NAME(Search), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(select_all, LimboUtility::get_singleton()->get_task_icon("LimboSelectAll")); - BUTTON_SET_ICON(deselect_all, LimboUtility::get_singleton()->get_task_icon("LimboDeselectAll")); + select_all->set_button_icon(LimboUtility::get_singleton()->get_task_icon("LimboSelectAll")); + deselect_all->set_button_icon(LimboUtility::get_singleton()->get_task_icon("LimboDeselectAll")); category_choice->queue_redraw(); diff --git a/editor/task_tree.cpp b/editor/task_tree.cpp index efd57b2..f215539 100644 --- a/editor/task_tree.cpp +++ b/editor/task_tree.cpp @@ -192,7 +192,7 @@ void TaskTree::_on_item_collapsed(Object *p_obj) { } Ref task = item->get_metadata(0); - ERR_FAIL_NULL(task); + ERR_FAIL_COND(task.is_null()); task->set_display_collapsed(item->is_collapsed()); } @@ -574,7 +574,7 @@ void TaskTree::_bind_methods() { // TreeSearch API void TaskTree::tree_search_show_and_focus() { - ERR_FAIL_NULL(tree_search); + ERR_FAIL_COND(tree_search.is_null()); tree_search_panel->set_visible(true); tree_search_panel->focus_editor(); } @@ -587,7 +587,7 @@ TreeSearch::SearchInfo TaskTree::tree_search_get_search_info() const { } void TaskTree::tree_search_set_search_info(const TreeSearch::SearchInfo &p_search_info) { - ERR_FAIL_NULL(tree_search); + ERR_FAIL_COND(tree_search.is_null()); tree_search_panel->set_search_info(p_search_info); } diff --git a/editor/tree_search.cpp b/editor/tree_search.cpp index cea10fc..ff8bb6d 100644 --- a/editor/tree_search.cpp +++ b/editor/tree_search.cpp @@ -158,7 +158,7 @@ void TreeSearch::_draw_highlight_item(TreeItem *p_tree_item, const Rect2 p_rect, if (font.is_null()) { font = p_tree_item->get_tree()->get_theme_font(LW_NAME(font)); } - ERR_FAIL_NULL(font); + ERR_FAIL_COND(font.is_null()); float font_size = p_tree_item->get_custom_font_size(0); if (font_size == -1) { font_size = p_tree_item->get_tree()->get_theme_font_size(LW_NAME(font)); @@ -176,7 +176,7 @@ void TreeSearch::_draw_highlight_item(TreeItem *p_tree_item, const Rect2 p_rect, // Stylebox Ref stylebox = p_tree_item->get_tree()->get_theme_stylebox(LW_NAME(Focus)); - ERR_FAIL_NULL(stylebox); + ERR_FAIL_COND(stylebox.is_null()); // Extract separation float h_sep = p_tree_item->get_tree()->get_theme_constant(LW_NAME(h_separation)); @@ -559,9 +559,9 @@ void TreeSearchPanel::_notification(int p_what) { break; } case NOTIFICATION_THEME_CHANGED: { - BUTTON_SET_ICON(close_button, get_theme_icon(LW_NAME(Close), LW_NAME(EditorIcons))); - BUTTON_SET_ICON(find_prev_button, get_theme_icon("MoveUp", LW_NAME(EditorIcons))); - BUTTON_SET_ICON(find_next_button, get_theme_icon("MoveDown", LW_NAME(EditorIcons))); + close_button->set_button_icon(get_theme_icon(LW_NAME(Close), LW_NAME(EditorIcons))); + find_prev_button->set_button_icon(get_theme_icon("MoveUp", LW_NAME(EditorIcons))); + find_next_button->set_button_icon(get_theme_icon("MoveDown", LW_NAME(EditorIcons))); label_filter->set_text(TTR("Filter")); break; } diff --git a/tests/test_task.h b/tests/test_task.h index 5e79ae0..efa3350 100644 --- a/tests/test_task.h +++ b/tests/test_task.h @@ -78,7 +78,7 @@ TEST_CASE("[Modules][LimboAI] BTTask") { SUBCASE("Test next_sibling()") { CHECK(child1->next_sibling() == child2); CHECK(child2->next_sibling() == child3); - CHECK(child3->next_sibling() == nullptr); + CHECK(child3->next_sibling().is_null()); } SUBCASE("Test remove_child()") { task->remove_child(child2); @@ -153,7 +153,7 @@ TEST_CASE("[Modules][LimboAI] BTTask") { CHECK(child3->get_root() == task); } SUBCASE("Test get_parent()") { - CHECK(task->get_parent() == nullptr); + CHECK(task->get_parent().is_null()); CHECK(child1->get_parent() == task); CHECK(child2->get_parent() == task); CHECK(child2->get_parent() == task); diff --git a/util/limbo_compat.cpp b/util/limbo_compat.cpp index 3be7317..6aab45c 100644 --- a/util/limbo_compat.cpp +++ b/util/limbo_compat.cpp @@ -16,6 +16,7 @@ #ifdef TOOLS_ENABLED #include "core/io/resource.h" #include "core/variant/variant.h" +#include "editor/editor_main_screen.h" #include "editor/editor_node.h" #include "editor/plugins/script_editor_plugin.h" #endif // TOOLS_ENABLED @@ -213,7 +214,7 @@ Variant VARIANT_DEFAULT(Variant::Type p_type) { void SHOW_BUILTIN_DOC(const String &p_topic) { #ifdef LIMBOAI_MODULE ScriptEditor::get_singleton()->goto_help(p_topic); - EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT); + EditorNode::get_singleton()->get_editor_main_screen()->select(EditorMainScreen::EDITOR_SCRIPT); #elif LIMBOAI_GDEXTENSION TypedArray open_editors = EditorInterface::get_singleton()->get_script_editor()->get_open_script_editors(); ERR_FAIL_COND_MSG(open_editors.size() == 0, "Can't open help page. Need at least one script open in the script editor."); diff --git a/util/limbo_compat.h b/util/limbo_compat.h index 5740477..389da1f 100644 --- a/util/limbo_compat.h +++ b/util/limbo_compat.h @@ -28,7 +28,7 @@ #define EDITOR_FILE_SYSTEM() (EditorFileSystem::get_singleton()) #define EDITOR_SETTINGS() (EditorSettings::get_singleton()) #define BASE_CONTROL() (EditorNode::get_singleton()->get_gui_base()) -#define MAIN_SCREEN_CONTROL() (EditorNode::get_singleton()->get_main_screen_control()) +#define MAIN_SCREEN_CONTROL() (EditorNode::get_singleton()->get_editor_main_screen()) #define SCENE_TREE() (SceneTree::get_singleton()) #define IS_DEBUGGER_ACTIVE() (EngineDebugger::is_active()) #define FS_DOCK_SELECT_FILE(m_path) FileSystemDock::get_singleton()->select_file(m_path) @@ -37,7 +37,6 @@ #define IS_CLASS(m_obj, m_class) (m_obj->is_class_ptr(m_class::get_class_ptr_static())) #define RAND_RANGE(m_from, m_to) (Math::random(m_from, m_to)) #define RANDF() (Math::randf()) -#define BUTTON_SET_ICON(m_btn, m_icon) m_btn->set_icon(m_icon) #define RESOURCE_LOAD(m_path, m_hint) ResourceLoader::load(m_path, m_hint) #define RESOURCE_LOAD_NO_CACHE(m_path, m_hint) ResourceLoader::load(m_path, m_hint, ResourceFormatLoader::CACHE_MODE_IGNORE) #define RESOURCE_SAVE(m_res, m_path, m_flags) ResourceSaver::save(m_res, m_path, m_flags) @@ -47,7 +46,7 @@ #define GET_PROJECT_SETTINGS_DIR() EditorPaths::get_singleton()->get_project_settings_dir() #define EDIT_RESOURCE(m_res) EditorNode::get_singleton()->edit_resource(m_res) #define INSPECTOR_GET_EDITED_OBJECT() (InspectorDock::get_inspector_singleton()->get_edited_object()) -#define SET_MAIN_SCREEN_EDITOR(m_name) (EditorNode::get_singleton()->select_editor_by_name(m_name)) +#define SET_MAIN_SCREEN_EDITOR(m_name) (EditorNode::get_singleton()->get_editor_main_screen()->select_by_name(m_name)) #define FILE_EXISTS(m_path) FileAccess::exists(m_path) #define DIR_ACCESS_CREATE() DirAccess::create(DirAccess::ACCESS_RESOURCES) #define PERFORMANCE_ADD_CUSTOM_MONITOR(m_id, m_callable) (Performance::get_singleton()->add_custom_monitor(m_id, m_callable, Variant())) @@ -96,7 +95,6 @@ using namespace godot; #define IS_CLASS(m_obj, m_class) (m_obj->is_class(#m_class)) #define RAND_RANGE(m_from, m_to) (UtilityFunctions::randf_range(m_from, m_to)) #define RANDF() (UtilityFunctions::randf()) -#define BUTTON_SET_ICON(m_btn, m_icon) m_btn->set_button_icon(m_icon) #define RESOURCE_LOAD(m_path, m_hint) ResourceLoader::get_singleton()->load(m_path, m_hint) #define RESOURCE_LOAD_NO_CACHE(m_path, m_hint) ResourceLoader::get_singleton()->load(m_path, m_hint, ResourceLoader::CACHE_MODE_IGNORE) #define RESOURCE_SAVE(m_res, m_path, m_flags) ResourceSaver::get_singleton()->save(m_res, m_path, m_flags) diff --git a/util/limbo_utility.cpp b/util/limbo_utility.cpp index e5f16f6..381cfee 100644 --- a/util/limbo_utility.cpp +++ b/util/limbo_utility.cpp @@ -395,6 +395,12 @@ String LimboUtility::get_property_hint_text(PropertyHint p_hint) const { case PROPERTY_HINT_ARRAY_TYPE: { return "ARRAY_TYPE"; } + case PROPERTY_HINT_DICTIONARY_TYPE: { + return "DICTIONARY_TYPE"; + } + case PROPERTY_HINT_TOOL_BUTTON: { + return "TOOL_BUTTON"; + } case PROPERTY_HINT_LOCALE_ID: { return "LOCALE_ID"; }