| 1515 | } |
| 1516 | |
| 1517 | void RuntimeNodeSelect::_setup(const Dictionary &p_settings) { |
| 1518 | Window *root = SceneTree::get_singleton()->get_root(); |
| 1519 | ERR_FAIL_COND(root->is_connected(SceneStringName(window_input), callable_mp(this, &RuntimeNodeSelect::_root_window_input))); |
| 1520 | |
| 1521 | root->connect(SceneStringName(window_input), callable_mp(this, &RuntimeNodeSelect::_root_window_input)); |
| 1522 | root->connect("size_changed", callable_mp(this, &RuntimeNodeSelect::_queue_selection_update), CONNECT_DEFERRED); |
| 1523 | |
| 1524 | max_selection = p_settings.get("debugger/max_node_selection", 1); |
| 1525 | |
| 1526 | panner.instantiate(); |
| 1527 | panner->set_callbacks(callable_mp(this, &RuntimeNodeSelect::_pan_callback), callable_mp(this, &RuntimeNodeSelect::_zoom_callback)); |
| 1528 | |
| 1529 | ViewPanner::ControlScheme panning_scheme = (ViewPanner::ControlScheme)p_settings.get("editors/panning/2d_editor_panning_scheme", 0).operator int(); |
| 1530 | bool simple_panning = p_settings.get("editors/panning/simple_panning", false); |
| 1531 | int pan_speed = p_settings.get("editors/panning/2d_editor_pan_speed", 20); |
| 1532 | Array keys = p_settings.get("canvas_item_editor/pan_view", Array()).operator Array(); |
| 1533 | panner->setup(panning_scheme, DebuggerMarshalls::deserialize_key_shortcut(keys), simple_panning); |
| 1534 | panner->setup_warped_panning(root, p_settings.get("editors/panning/warped_mouse_panning", true)); |
| 1535 | panner->set_scroll_speed(pan_speed); |
| 1536 | |
| 1537 | sel_2d_grab_dist = p_settings.get("editors/polygon_editor/point_grab_radius", 0); |
| 1538 | |
| 1539 | selection_area_fill = p_settings.get("box_selection_fill_color", Color()); |
| 1540 | selection_area_outline = p_settings.get("box_selection_stroke_color", Color()); |
| 1541 | |
| 1542 | draw_canvas = RS::get_singleton()->canvas_create(); |
| 1543 | sel_drag_ci = RS::get_singleton()->canvas_item_create(); |
| 1544 | |
| 1545 | /// 2D Selection Box Generation |
| 1546 | |
| 1547 | sbox_2d_ci = RS::get_singleton()->canvas_item_create(); |
| 1548 | RS::get_singleton()->viewport_attach_canvas(root->get_viewport_rid(), draw_canvas); |
| 1549 | RS::get_singleton()->canvas_item_set_parent(sel_drag_ci, draw_canvas); |
| 1550 | RS::get_singleton()->canvas_item_set_parent(sbox_2d_ci, draw_canvas); |
| 1551 | |
| 1552 | #ifndef _3D_DISABLED |
| 1553 | cursor = Cursor(); |
| 1554 | |
| 1555 | camera_fov = p_settings.get("editors/3d/default_fov", 70); |
| 1556 | camera_znear = p_settings.get("editors/3d/default_z_near", 0.05); |
| 1557 | camera_zfar = p_settings.get("editors/3d/default_z_far", 4'000); |
| 1558 | |
| 1559 | invert_x_axis = p_settings.get("editors/3d/navigation/invert_x_axis", false); |
| 1560 | invert_y_axis = p_settings.get("editors/3d/navigation/invert_y_axis", false); |
| 1561 | warped_mouse_panning_3d = p_settings.get("editors/3d/navigation/warped_mouse_panning", true); |
| 1562 | |
| 1563 | freelook_base_speed = p_settings.get("editors/3d/freelook/freelook_base_speed", 5); |
| 1564 | freelook_sensitivity = Math::deg_to_rad((real_t)p_settings.get("editors/3d/freelook/freelook_sensitivity", 0.25)); |
| 1565 | orbit_sensitivity = Math::deg_to_rad((real_t)p_settings.get("editors/3d/navigation_feel/orbit_sensitivity", 0.004)); |
| 1566 | translation_sensitivity = p_settings.get("editors/3d/navigation_feel/translation_sensitivity", 1); |
| 1567 | |
| 1568 | // 3D Selection Box Generation |
| 1569 | // Copied from the Node3DEditor implementation. |
| 1570 | |
| 1571 | sbox_3d_color = p_settings.get("editors/3d/selection_box_color", Color()); |
| 1572 | |
| 1573 | // Use two AABBs to create the illusion of a slightly thicker line. |
| 1574 | AABB aabb(Vector3(), Vector3(1, 1, 1)); |
no test coverage detected