diff --git a/addons/material_maker/engine/nodes/gen_portal.gd b/addons/material_maker/engine/nodes/gen_portal.gd index 402d3a160..8038877c7 100644 --- a/addons/material_maker/engine/nodes/gen_portal.gd +++ b/addons/material_maker/engine/nodes/gen_portal.gd @@ -17,6 +17,7 @@ var source : MMGenBase.OutputPort var editable := false var color : Color = Color.WHITE +var horizontal_label : bool = mm_globals.get_config("aperture_label_position") func is_editable() -> bool: return true @@ -93,6 +94,7 @@ func _serialize(data : Dictionary) -> Dictionary: data.io = io data.port_type = port_type data.color = MMType.serialize_value(color) + data.horizontal_label = horizontal_label # remove unused field data.erase("seed_int") @@ -105,3 +107,5 @@ func _deserialize(data : Dictionary) -> void: port_type = data.port_type if data.has("color"): color = MMType.deserialize_value(data.color) + if data.has("horizontal_label"): + horizontal_label = data.horizontal_label diff --git a/material_maker/doc/user_interface_shortcuts.rst b/material_maker/doc/user_interface_shortcuts.rst index dd7b98d34..4d97e67ca 100644 --- a/material_maker/doc/user_interface_shortcuts.rst +++ b/material_maker/doc/user_interface_shortcuts.rst @@ -78,6 +78,9 @@ Graph Editor +-------------------------------------------------------+----------------------------------------------------+ | :kbd:`F2` | :kbd:`Enter` | :kbd:`LMB` Double-click | Edit selected aperture node | +-------------------------------------------------------+----------------------------------------------------+ +| :kbd:`R` | Toggle aperture node label position | +| | (vertical/horizontal) | ++-------------------------------------------------------+----------------------------------------------------+ | :kbd:`Ctrl/Cmd-G` | Create group from selected nodes | +-------------------------------------------------------+----------------------------------------------------+ | :kbd:`Alt-S` | Swap inputs on selected node | diff --git a/material_maker/globals.gd b/material_maker/globals.gd index baf778c76..d3d777ae0 100644 --- a/material_maker/globals.gd +++ b/material_maker/globals.gd @@ -58,8 +58,9 @@ const DEFAULT_CONFIG : Dictionary = { ui_use_native_file_dialogs = true, win_tablet_driver = 0, dialog_dim_background = true, - node_minimize_button = true, - node_close_button = true, + node_minimize_button = false, + node_close_button = false, + aperture_label_position = 0 } diff --git a/material_maker/nodes/portal/completion.gd b/material_maker/nodes/portal/completion.gd new file mode 100644 index 000000000..bc46e5ac7 --- /dev/null +++ b/material_maker/nodes/portal/completion.gd @@ -0,0 +1,132 @@ +class_name PortalCompletionPanel +extends Panel + +var selected_item : int = -1 +const HEIGHT_MAX_ITEMS : int = 8 + +@export_multiline var slot_svg : String +@onready var graph : MMGraphEdit = get_parent() + +var portal_edit : LineEdit = null + + +## Emitted when selected item changes(i.e. via up/down key presses) +signal selection_updated + +func _ready() -> void: + hide_panel() + setup_theme() + update_position() + setup_signals() + +func setup_signals() -> void: + graph.draw.connect(update_position) + portal_edit.tree_exiting.connect(portal_edit_tree_exiting) + +func portal_edit_tree_exiting() -> void: + graph.draw.disconnect(update_position) + queue_free() + +func update_position() -> void: + scale = portal_edit.scale + position = Vector2((portal_edit.size.x - size.x) * 0.5, + portal_edit.size.y + 10) * graph.zoom + portal_edit.position + +func _gui_input(event: InputEvent) -> void: + if (event is InputEventMouseButton + and event.button_index == MOUSE_BUTTON_WHEEL_UP + or event.button_index == MOUSE_BUTTON_WHEEL_DOWN): + accept_event() + +func _input(event : InputEvent) -> void: + if event is InputEventKey and event.pressed and visible: + match event.get_keycode_with_modifiers(): + KEY_UP: + update_current_selection(KEY_UP) + accept_event() + KEY_DOWN: + update_current_selection(KEY_DOWN) + accept_event() + KEY_ESCAPE: + hide_panel() + accept_event() + elif event is InputEventMouseButton and event.pressed: + if event.button_index == MOUSE_BUTTON_LEFT or event.button_index == MOUSE_BUTTON_RIGHT: + if not Rect2(Vector2.ZERO, size).has_point(get_local_mouse_position()) or not visible: + hide_panel() + else: + if visible: + handle_click_completion() + accept_event() + +func setup_theme() -> void: + theme = mm_globals.main_window.theme + $ItemList.add_theme_constant_override("scrollbar_h_separation", 1) + + var vscroll : VScrollBar = $ItemList.get_v_scroll_bar() + vscroll.add_theme_constant_override("padding_left", 2) + vscroll.add_theme_constant_override("padding_right", 1) + + var sb : StyleBoxFlat = StyleBoxFlat.new() + sb.draw_center = true + sb.bg_color = Color.TRANSPARENT + sb.border_color = sb.bg_color + sb.set_border_width_all(2) + vscroll.add_theme_stylebox_override("scroll", sb) + +func show_panel() -> void: + mouse_filter = Control.MOUSE_FILTER_PASS + show() + +func hide_panel() -> void: + mouse_filter = Control.MOUSE_FILTER_IGNORE + hide() + +func request_completion(filter : String) -> void: + if filter.is_empty(): + hide_panel() + return + show_panel() + selected_item = -1 + $ItemList.clear() + + if not filter.is_empty(): + for node in graph.get_children(): + if node is MMGraphPortal and node.is_portal_in(): + var link : String = node.get_link() + if link.begins_with(filter.to_lower()) or link.contains(filter.to_lower()): + var port_color : Color = node.get_input_port_color(0) + var icon : Image = Image.new() + icon.load_svg_from_buffer(slot_svg.replace("#FFF", + "#" + port_color.to_html(false)).to_utf8_buffer()) + var index : int = $ItemList.add_icon_item(ImageTexture.create_from_image(icon)) + $ItemList.set_item_text(index, link) + $ItemList.set_item_tooltip_enabled(index, false) + + # approx height adjustment + size.y = clampf(4 + $ItemList.item_count * 25, 50, HEIGHT_MAX_ITEMS * 25) + custom_minimum_size = size + if $ItemList.item_count == 0: + hide_panel() + +func update_current_selection(input : Key) -> void: + selected_item = wrapi(selected_item + + (1 if input == KEY_DOWN else -1), 0, $ItemList.item_count) + if $ItemList.item_count != 0: + $ItemList.select(selected_item) + $ItemList.ensure_current_is_visible() + set_portal_edit_text($ItemList.get_item_text(selected_item)) + portal_edit.size.x = 0 + selection_updated.emit() + +func handle_click_completion() -> void: + var item : int = $ItemList.get_item_at_position(get_local_mouse_position(), true) + if item != -1: + $ItemList.select(item) + set_portal_edit_text($ItemList.get_item_text(item)) + portal_edit.focus_exited.emit() + hide_panel() + +func set_portal_edit_text(new_text : String) -> void: + portal_edit.text = new_text + portal_edit.caret_column = new_text.length() diff --git a/material_maker/nodes/portal/completion.gd.uid b/material_maker/nodes/portal/completion.gd.uid new file mode 100644 index 000000000..9633f3964 --- /dev/null +++ b/material_maker/nodes/portal/completion.gd.uid @@ -0,0 +1 @@ +uid://buqmwxkc40t11 diff --git a/material_maker/nodes/portal/completion.tscn b/material_maker/nodes/portal/completion.tscn new file mode 100644 index 000000000..711b4ca4d --- /dev/null +++ b/material_maker/nodes/portal/completion.tscn @@ -0,0 +1,28 @@ +[gd_scene format=3 uid="uid://s1vtfefwu7cr"] + +[ext_resource type="Script" uid="uid://buqmwxkc40t11" path="res://material_maker/nodes/portal/completion.gd" id="1_v4kch"] + +[node name="Completion" type="Panel" unique_id=1214631678] +custom_minimum_size = Vector2(225, 0) +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -100.0 +offset_right = 100.0 +grow_horizontal = 2 +script = ExtResource("1_v4kch") +slot_svg = " + +" + +[node name="ItemList" type="ItemList" parent="." unique_id=1794413207] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +allow_search = false +wraparound_items = false +fixed_column_width = 200 +metadata/_edit_use_anchors_ = true diff --git a/material_maker/nodes/portal/portal.gd b/material_maker/nodes/portal/portal.gd index 36d7f3d38..c5780423f 100644 --- a/material_maker/nodes/portal/portal.gd +++ b/material_maker/nodes/portal/portal.gd @@ -9,6 +9,8 @@ var is_editing := false var syncing_io := false +const label_y_offset : float = 35.0 + func _ready() -> void: super._ready() get_titlebar_hbox().get_children().map(func(n): n.hide()) @@ -22,7 +24,6 @@ func update_node() -> void: func _draw() -> void: const label_font_size : int = 16 - const label_y_offset : int = 40 # in/out arc decoration var offset : float = PI if is_portal_out() else 0.0 @@ -31,10 +32,16 @@ func _draw() -> void: # label var label_pos := size * 0.5 var label_color : Color = generator.color + var label_draw_pos : Vector2 = label_pos + var label_size : Vector2 = LABEL_FONT.get_string_size( + get_link(), HORIZONTAL_ALIGNMENT_CENTER, -1, label_font_size) - var label_size = LABEL_FONT.get_string_size(get_link(), HORIZONTAL_ALIGNMENT_CENTER, -1, label_font_size) - var label_draw_pos := label_pos - Vector2(label_size.x * 0.5, label_y_offset) if not is_editing: + if generator.horizontal_label: + label_draw_pos += Vector2(31.0 if is_portal_in() else (-label_size.x - 31.0), 5.0) + else: + label_draw_pos -= Vector2(label_size.x * 0.5, label_y_offset) + draw_string_outline(LABEL_FONT, label_draw_pos, get_link(), HORIZONTAL_ALIGNMENT_CENTER, -1, label_font_size, 5, Color.BLACK) draw_string(LABEL_FONT, label_draw_pos, get_link(), HORIZONTAL_ALIGNMENT_CENTER, -1, label_font_size, label_color) @@ -78,20 +85,30 @@ func _exit_tree() -> void: func _gui_input(event : InputEvent) -> void: if event is InputEventMouseButton and event.double_click: setup_portal_edit() + accept_event() func _input(event : InputEvent) -> void: - if event is InputEventKey and event.pressed and selected and not is_editing: + if event is InputEventKey and event.pressed and selected: match event.get_keycode_with_modifiers(): KEY_F2, KEY_ENTER: + if not is_editing: + setup_portal_edit() + KEY_UP, KEY_DOWN: + if is_editing: + accept_event() + KEY_ENTER: + accept_event() setup_portal_edit() + KEY_R: + generator.horizontal_label = !generator.horizontal_label + queue_redraw() elif event is InputEventMouseMotion: + const tip : String = "#LMB: Select node, #LMB#LMB/F2/Enter: Rename link, R: Toggle label position" if Rect2(Vector2.ZERO, size).has_point(get_local_mouse_position()): - mm_globals.set_tip_text(tr("#LMB: Select node, #LMB#LMB/F2/Enter: Rename link"), 1.0, 2) + mm_globals.set_tip_text(tr(tip), 1.0, 2) elif %Dragger.get_rect().has_point(get_local_mouse_position()): - if is_editing: - mm_globals.set_tip_text(tr("Enter: Rename link, Ctrl/Cmd+Enter: Batch rename links"), 1.0, 2) - else: - mm_globals.set_tip_text(tr("#LMB: Select node, #LMB#LMB: Rename link"), 1.0, 2) + mm_globals.set_tip_text( + tr("Enter: Rename link, Ctrl/Cmd+Enter: Batch rename links" if is_editing else tip)) func _on_dragger_gui_input(event : InputEvent) -> void: if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT: @@ -257,14 +274,19 @@ func replace_links(new_link : String, from_link : String) -> void: p.on_parameter_changed("link", new_link) func edit_box_set_position(edit : LineEdit) -> void: - const y_offset : int = 61 + var y_offset : float = label_y_offset + 21.0 var g : MMGraphEdit = get_parent() if g == null: edit.queue_free() return edit.scale = Vector2.ONE * g.zoom edit.position = graph_node_center(self, g) - edit.position -= Vector2(edit.size.x * 0.5 - 0.5, y_offset) * g.zoom + + if generator.horizontal_label: + edit.alignment = HORIZONTAL_ALIGNMENT_LEFT if is_portal_in() else HORIZONTAL_ALIGNMENT_RIGHT + edit.position -= Vector2(-21.0 if is_portal_in() else edit.size.x + 21.0, edit.size.y * 0.5) * g.zoom + else: + edit.position -= Vector2(edit.size.x * 0.5 - 0.5, y_offset) * g.zoom func setup_portal_edit() -> void: if is_editing: @@ -285,33 +307,56 @@ func setup_portal_edit() -> void: position_offset_changed.connect(edit_box_set_position.bind(edit)) graph.draw.connect(edit_box_set_position.bind(edit)) - edit.modulate = link_collision_warning_color() + var completion_panel : PortalCompletionPanel + if is_portal_out(): + completion_panel = preload("res://material_maker/nodes/portal/completion.tscn").instantiate() + completion_panel.portal_edit = edit + completion_panel.selection_updated.connect(edit_box_set_position.bind(edit)) + completion_panel.visibility_changed.connect( + func() -> void: + if not generator.horizontal_label: + visible = not completion_panel.visible) + graph.add_child(completion_panel) + + edit.modulate = link_collision_warning_color(get_link()) edit.text_submitted.connect( func(new_text : String) -> void: if not is_editing: return + var new_link := new_text.strip_edges() - if not new_link.is_empty() and is_link_unique(new_link): - graph.undoredo.start_group() - on_parameter_changed("link", new_link) - add_link_undoredo(old_link, new_link) - if Input.is_key_pressed(KEY_CTRL) or Input.is_key_pressed(KEY_META): - replace_links(new_link, old_link) - graph.undoredo.end_group() + if not new_link.is_empty(): + if is_link_unique(new_link): + graph.undoredo.start_group() + on_parameter_changed("link", new_link) + add_link_undoredo(old_link, new_link) + if Input.is_key_pressed(KEY_CTRL) or Input.is_key_pressed(KEY_META): + replace_links(new_link, old_link) + graph.undoredo.end_group() + else: + on_parameter_changed("link", old_link) + else: + edit.text = old_link is_editing = false generator.editable = false edit.reset_size() - edit.queue_free()) + edit.queue_free() + graph.grab_focus() + selected = true + queue_redraw()) edit.text_changed.connect( func(new_text : String) -> void: var new_link : String = new_text.strip_edges() if not new_link.is_empty(): edit.modulate = link_collision_warning_color(new_link) + if completion_panel: + completion_panel.request_completion(new_link) edit_box_set_position(edit)) edit.focus_exited.connect(func(): edit.text_submitted.emit(edit.text)) edit.tree_exiting.connect( func() -> void: + show() position_offset_changed.disconnect(edit_box_set_position) graph.draw.disconnect(edit_box_set_position)) diff --git a/material_maker/nodes/portal/portal.tscn b/material_maker/nodes/portal/portal.tscn index 40b737c09..6e20ec394 100644 --- a/material_maker/nodes/portal/portal.tscn +++ b/material_maker/nodes/portal/portal.tscn @@ -1,10 +1,10 @@ -[gd_scene load_steps=3 format=3 uid="uid://8ne0p5ahkdw1"] +[gd_scene format=3 uid="uid://8ne0p5ahkdw1"] [ext_resource type="Script" uid="uid://bqruhogmtlu81" path="res://material_maker/nodes/portal/portal.gd" id="1_qhgt7"] [sub_resource type="Theme" id="Theme_fybc5"] -[node name="Portal" type="GraphNode"] +[node name="Portal" type="GraphNode" unique_id=97108403] offset_right = 60.0 offset_bottom = 79.0 theme = SubResource("Theme_fybc5") @@ -21,12 +21,12 @@ slot/0/right_icon = null slot/0/draw_stylebox = true script = ExtResource("1_qhgt7") -[node name="Control" type="Control" parent="."] +[node name="Control" type="Control" parent="." unique_id=1244434570] custom_minimum_size = Vector2(24, 24) layout_mode = 2 mouse_filter = 2 -[node name="Dragger" type="Control" parent="Control"] +[node name="Dragger" type="Control" parent="Control" unique_id=467501132] unique_name_in_owner = true anchors_preset = 0 offset_right = 40.0 diff --git a/material_maker/theme/classic_base.tres b/material_maker/theme/classic_base.tres index 5e759d08f..d90d16687 100644 --- a/material_maker/theme/classic_base.tres +++ b/material_maker/theme/classic_base.tres @@ -219,15 +219,10 @@ content_margin_left = 3.0 content_margin_top = 3.0 content_margin_right = 3.0 content_margin_bottom = 3.0 -draw_center = false -border_width_left = 1 -border_width_top = 1 -border_width_right = 1 -border_width_bottom = 1 -border_color = Color(0.473976, 0.473976, 0.473975, 1) +bg_color = Color(0.234, 0.26970002, 0.36, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fbnbn"] -bg_color = Color(0.14902, 0.172549, 0.231373, 1) +bg_color = Color(0.1625, 0.18729167, 0.25, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_attdh"] content_margin_left = 3.0 @@ -1068,7 +1063,7 @@ ItemList/colors/guide_color = Color(0.701961, 0.701961, 0.701961, 0.129412) ItemList/styles/focus = SubResource("StyleBoxEmpty_v2584") ItemList/styles/hovered = SubResource("StyleBoxFlat_m2221") ItemList/styles/panel = SubResource("StyleBoxFlat_fbnbn") -ItemList/styles/selected = SubResource("StyleBoxFlat_attdh") +ItemList/styles/selected = SubResource("StyleBoxFlat_m2221") ItemList/styles/selected_focus = SubResource("StyleBoxFlat_attdh") Label/colors/font_color = Color(0.8, 0.807843, 0.827451, 1) Label/colors/font_outline_color = Color(0, 0, 0, 0) diff --git a/material_maker/windows/preferences/preferences.tscn b/material_maker/windows/preferences/preferences.tscn index 5e33751ba..bf73df645 100644 --- a/material_maker/windows/preferences/preferences.tscn +++ b/material_maker/windows/preferences/preferences.tscn @@ -1,14 +1,14 @@ -[gd_scene load_steps=8 format=3 uid="uid://c1j6a4jdggjm6"] +[gd_scene format=3 uid="uid://c1j6a4jdggjm6"] [ext_resource type="PackedScene" uid="uid://drg0s4lftblx3" path="res://material_maker/windows/preferences/bool_option.tscn" id="1"] [ext_resource type="Script" uid="uid://cwom8loyqsvf2" path="res://material_maker/windows/preferences/preferences.gd" id="2"] [ext_resource type="FontFile" uid="uid://bn648prik7soq" path="res://material_maker/theme/font_rubik/Rubik-416.ttf" id="2_vp06c"] [ext_resource type="PackedScene" uid="uid://3lo2jh781ten" path="res://material_maker/windows/preferences/float_option.tscn" id="3"] -[ext_resource type="Script" path="res://material_maker/windows/preferences/preferences_tree.gd" id="3_mlqij"] +[ext_resource type="Script" uid="uid://b6irr1ykhui6l" path="res://material_maker/windows/preferences/preferences_tree.gd" id="3_mlqij"] [ext_resource type="Script" uid="uid://gmystrme5ayw" path="res://material_maker/windows/preferences/lang_option.gd" id="4"] -[ext_resource type="Script" path="res://material_maker/windows/preferences/enum_option.gd" id="5_vp06c"] +[ext_resource type="Script" uid="uid://d3h4xmek7b2vq" path="res://material_maker/windows/preferences/enum_option.gd" id="5_vp06c"] -[node name="Preferences" type="Window"] +[node name="Preferences" type="Window" unique_id=1381532869] oversampling_override = 1.0 title = "Preferences" position = Vector2i(0, 36) @@ -16,7 +16,7 @@ size = Vector2i(700, 450) exclusive = true script = ExtResource("2") -[node name="HSplitContainer" type="HSplitContainer" parent="."] +[node name="HSplitContainer" type="HSplitContainer" parent="." unique_id=1745020672] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -24,10 +24,11 @@ grow_horizontal = 2 grow_vertical = 2 size_flags_horizontal = 6 size_flags_vertical = 3 -split_offset = 100 +split_offsets = PackedInt32Array(100) dragger_visibility = 2 +split_offset = 100 -[node name="PreferenceCategory" type="MarginContainer" parent="HSplitContainer"] +[node name="PreferenceCategory" type="MarginContainer" parent="HSplitContainer" unique_id=48858491] custom_minimum_size = Vector2(86.8, 0) layout_mode = 2 theme_override_constants/margin_left = 4 @@ -35,7 +36,7 @@ theme_override_constants/margin_top = 4 theme_override_constants/margin_right = 4 theme_override_constants/margin_bottom = 4 -[node name="Tree" type="Tree" parent="HSplitContainer/PreferenceCategory" groups=["updated_from_locale"]] +[node name="Tree" type="Tree" parent="HSplitContainer/PreferenceCategory" unique_id=1979311227 groups=["updated_from_locale"]] unique_name_in_owner = true layout_mode = 2 theme_override_constants/item_margin = 2 @@ -44,19 +45,19 @@ theme_override_font_sizes/font_size = 18 auto_tooltip = false script = ExtResource("3_mlqij") -[node name="PreferencesPanel" type="MarginContainer" parent="HSplitContainer"] +[node name="PreferencesPanel" type="MarginContainer" parent="HSplitContainer" unique_id=1299017681] layout_mode = 2 theme_override_constants/margin_left = 4 theme_override_constants/margin_top = 4 theme_override_constants/margin_right = 4 theme_override_constants/margin_bottom = 4 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel" unique_id=1565604656] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="TabContainer" type="TabContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer"] +[node name="TabContainer" type="TabContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer" unique_id=577230706] unique_name_in_owner = true custom_minimum_size = Vector2(289, 172) layout_mode = 2 @@ -66,54 +67,54 @@ current_tab = 0 tabs_visible = false use_hidden_tabs_for_min_size = true -[node name="General" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer"] +[node name="General" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer" unique_id=374768329] layout_mode = 2 theme_type_variation = &"MM_PreferenceTab" metadata/_tab_index = 0 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General" unique_id=1194816991] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="Language" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Language" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=944194775] layout_mode = 2 -[node name="Label2" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language"] +[node name="Label2" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language" unique_id=705052595] layout_mode = 2 text = "Language" -[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language"] +[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language" unique_id=156579648] layout_mode = 2 size_flags_horizontal = 10 -[node name="Language" type="OptionButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer"] +[node name="Language" type="OptionButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer" unique_id=1966657748] unique_name_in_owner = true custom_minimum_size = Vector2(0, 10) layout_mode = 2 script = ExtResource("4") config_variable = "locale" -[node name="InstallLanguage" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer"] +[node name="InstallLanguage" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer" unique_id=1777545887] layout_mode = 2 text = "Install" -[node name="DownloadLanguage" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer"] +[node name="DownloadLanguage" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Language/HBoxContainer" unique_id=1792197627] layout_mode = 2 text = "Download" -[node name="Spacer1" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Spacer1" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=2115349960] custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="ConfirmQuit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="ConfirmQuit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=856917195] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmQuit"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmQuit" unique_id=1267253341] layout_mode = 2 text = "Confirm when quitting the application" -[node name="ConfirmQuit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmQuit" instance=ExtResource("1")] +[node name="ConfirmQuit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmQuit" unique_id=151102227 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -121,14 +122,14 @@ text = "On" flat = false config_variable = "confirm_quit" -[node name="ConfirmCloseProject" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="ConfirmCloseProject" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=888689530] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmCloseProject"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmCloseProject" unique_id=173183391] layout_mode = 2 text = "Confirm when closing a project" -[node name="ConfirmCloseProject" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmCloseProject" instance=ExtResource("1")] +[node name="ConfirmCloseProject" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/ConfirmCloseProject" unique_id=876328075 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -136,18 +137,18 @@ text = "On" flat = false config_variable = "confirm_close_project" -[node name="Spacer2" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Spacer2" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=574666865] custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="GuiScale" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="GuiScale" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=481218205] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiScale"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiScale" unique_id=24813096] layout_mode = 2 text = "UI scale (0 = auto)" -[node name="GuiScale" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiScale" instance=ExtResource("3")] +[node name="GuiScale" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiScale" unique_id=1793222461 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -157,15 +158,15 @@ max_value = 2.0 step = 0.01 float_only = true -[node name="GuiUseNativeFileDialogs" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="GuiUseNativeFileDialogs" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=941480316] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiUseNativeFileDialogs"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiUseNativeFileDialogs" unique_id=1460825111] layout_mode = 2 mouse_filter = 1 text = "Use native file dialogs" -[node name="GuiUseNativeFileDialogs" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiUseNativeFileDialogs" instance=ExtResource("1")] +[node name="GuiUseNativeFileDialogs" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/GuiUseNativeFileDialogs" unique_id=547159745 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -174,15 +175,15 @@ text = "On" flat = false config_variable = "ui_use_native_file_dialogs" -[node name="DialogDimBackground" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="DialogDimBackground" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=799052998] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/DialogDimBackground"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/DialogDimBackground" unique_id=1099484764] layout_mode = 2 mouse_filter = 1 text = "Dim background when showing dialogs" -[node name="DialogDimBackground" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/DialogDimBackground" instance=ExtResource("1")] +[node name="DialogDimBackground" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/DialogDimBackground" unique_id=1421211243 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -191,19 +192,19 @@ text = "On" flat = false config_variable = "dialog_dim_background" -[node name="Spacer5" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Spacer5" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=51325216] custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="Gui3DPreviewResolution" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Gui3DPreviewResolution" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=162285950] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewResolution"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewResolution" unique_id=372295082] layout_mode = 2 mouse_filter = 1 text = "3D preview resolution" -[node name="Gui3DPreviewResolution" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewResolution" instance=ExtResource("3")] +[node name="Gui3DPreviewResolution" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewResolution" unique_id=632343159 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -215,15 +216,15 @@ max_value = 2.5 step = 0.1 float_only = true -[node name="Gui3DPreviewTesselationDetail" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Gui3DPreviewTesselationDetail" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=387944643] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewTesselationDetail"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewTesselationDetail" unique_id=403479965] layout_mode = 2 mouse_filter = 1 text = "3D preview tesselation detail" -[node name="Gui3DPreviewTesselationDetail" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewTesselationDetail" instance=ExtResource("3")] +[node name="Gui3DPreviewTesselationDetail" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewTesselationDetail" unique_id=1885729398 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -237,14 +238,14 @@ max_value = 1024.0 step = 1.0 float_only = true -[node name="Gui3DPreviewSunShadow" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Gui3DPreviewSunShadow" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=10559186] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewSunShadow"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewSunShadow" unique_id=1503124185] layout_mode = 2 text = "3D preview sun shadow (requires restart)" -[node name="Gui3DPreviewSunShadow" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewSunShadow" instance=ExtResource("1")] +[node name="Gui3DPreviewSunShadow" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/Gui3DPreviewSunShadow" unique_id=538587700 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -255,20 +256,20 @@ text = "On" flat = false config_variable = "ui_3d_preview_sun_shadow" -[node name="WinTabletDriverSpacer" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="WinTabletDriverSpacer" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=80969969] unique_name_in_owner = true custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="WinTabletDriver" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="WinTabletDriver" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=2059445757] unique_name_in_owner = true layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/WinTabletDriver"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/WinTabletDriver" unique_id=1800837495] layout_mode = 2 text = "Tablet Driver" -[node name="EnumOption" type="OptionButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/WinTabletDriver"] +[node name="EnumOption" type="OptionButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/WinTabletDriver" unique_id=478509396] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -288,18 +289,18 @@ popup/item_2/id = 2 script = ExtResource("5_vp06c") config_variable = "win_tablet_driver" -[node name="Spacer3" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Spacer3" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=929266442] custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="EnableVSync" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="EnableVSync" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=215323957] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/EnableVSync"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/EnableVSync" unique_id=1913636566] layout_mode = 2 text = "VSync" -[node name="EnableVSync" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/EnableVSync" instance=ExtResource("1")] +[node name="EnableVSync" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/EnableVSync" unique_id=1297375914 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -307,14 +308,14 @@ text = "On" flat = false config_variable = "vsync" -[node name="FPSLimit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="FPSLimit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=659374031] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/FPSLimit"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/FPSLimit" unique_id=32632348] layout_mode = 2 text = "FPS Limit" -[node name="FPSLimit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/FPSLimit" instance=ExtResource("3")] +[node name="FPSLimit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/FPSLimit" unique_id=1988289587 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -327,10 +328,10 @@ max_value = 200.0 step = 1.0 float_only = true -[node name="IdleFPSLimit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="IdleFPSLimit" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=1965993657] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/IdleFPSLimit"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/IdleFPSLimit" unique_id=465905816] layout_mode = 2 size_flags_horizontal = 0 tooltip_text = "FPS limit to use when window isn't focused to save CPU/GPU resources. @@ -338,7 +339,7 @@ Lower values may help reducing power usage, but could increase response time whe mouse_filter = 1 text = "Idle FPS limit" -[node name="IdleFPSLimit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/IdleFPSLimit" instance=ExtResource("3")] +[node name="IdleFPSLimit" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer/IdleFPSLimit" unique_id=54829409 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -351,28 +352,28 @@ max_value = 20.0 step = 1.0 float_only = true -[node name="Spacer4" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer"] +[node name="Spacer4" type="Control" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/General/VBoxContainer" unique_id=688175812] custom_minimum_size = Vector2(0, 10) layout_mode = 2 -[node name="Bake" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer"] +[node name="Bake" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer" unique_id=1720138624] visible = false layout_mode = 2 theme_type_variation = &"MM_PreferenceTab" metadata/_tab_index = 1 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake" unique_id=976441628] layout_mode = 2 size_flags_horizontal = 3 -[node name="RayCount" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer"] +[node name="RayCount" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer" unique_id=1448611367] layout_mode = 2 -[node name="LabelRayCount" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayCount"] +[node name="LabelRayCount" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayCount" unique_id=1310816134] layout_mode = 2 text = "Ray Count" -[node name="RayCount" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayCount" instance=ExtResource("3")] +[node name="RayCount" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayCount" unique_id=1941159673 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -383,14 +384,14 @@ max_value = 256.0 step = 1.0 float_only = true -[node name="RayLength" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer"] +[node name="RayLength" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer" unique_id=1875803362] layout_mode = 2 -[node name="LabelRayLength" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayLength"] +[node name="LabelRayLength" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayLength" unique_id=1843733576] layout_mode = 2 text = "Ray Length" -[node name="RayLength" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayLength" instance=ExtResource("3")] +[node name="RayLength" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayLength" unique_id=432073024 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -401,14 +402,14 @@ max_value = 1024.0 step = 1.0 float_only = true -[node name="RayBias" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer"] +[node name="RayBias" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer" unique_id=976338811] layout_mode = 2 -[node name="LabelRayBias" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayBias"] +[node name="LabelRayBias" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayBias" unique_id=1276415913] layout_mode = 2 text = "Ray Bias" -[node name="RayBias" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayBias" instance=ExtResource("3")] +[node name="RayBias" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/RayBias" unique_id=1178874389 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -418,14 +419,14 @@ max_value = 1024.0 step = 0.001 float_only = true -[node name="DenoiseRadius" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer"] +[node name="DenoiseRadius" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer" unique_id=813297568] layout_mode = 2 -[node name="LabelDenoiseRadius" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/DenoiseRadius"] +[node name="LabelDenoiseRadius" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/DenoiseRadius" unique_id=1703895901] layout_mode = 2 text = "Denoise Radius" -[node name="DenoiseRadius" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/DenoiseRadius" instance=ExtResource("3")] +[node name="DenoiseRadius" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Bake/VBoxContainer/DenoiseRadius" unique_id=969890942 instance=ExtResource("3")] custom_minimum_size = Vector2(200, 24) layout_mode = 2 size_flags_horizontal = 10 @@ -436,24 +437,24 @@ max_value = 10.0 step = 1.0 float_only = true -[node name="Graph" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer"] +[node name="Graph" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer" unique_id=20741903] visible = false layout_mode = 2 theme_type_variation = &"MM_PreferenceTab" metadata/_tab_index = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph" unique_id=1018529552] layout_mode = 2 size_flags_horizontal = 3 -[node name="AutoSizeComment" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer"] +[node name="AutoSizeComment" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer" unique_id=1249553501] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/AutoSizeComment"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/AutoSizeComment" unique_id=979882285] layout_mode = 2 text = "Auto size comment node to selection" -[node name="AutoSizeComment" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/AutoSizeComment" instance=ExtResource("1")] +[node name="AutoSizeComment" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/AutoSizeComment" unique_id=1504051025 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -461,14 +462,14 @@ text = "On" flat = false config_variable = "auto_size_comment" -[node name="NodeMinimizeButton" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer"] +[node name="NodeMinimizeButton" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer" unique_id=330098328] layout_mode = 2 -[node name="LabelNodeMinBtn" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeMinimizeButton"] +[node name="LabelNodeMinBtn" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeMinimizeButton" unique_id=1831371397] layout_mode = 2 text = "Show minimize button on nodes" -[node name="NodeMinimizeButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeMinimizeButton" instance=ExtResource("1")] +[node name="NodeMinimizeButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeMinimizeButton" unique_id=874091438 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -478,14 +479,14 @@ text = "On" flat = false config_variable = "node_minimize_button" -[node name="NodeCloseButton" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer"] +[node name="NodeCloseButton" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer" unique_id=753239952] layout_mode = 2 -[node name="LabelNodeCloseButton" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeCloseButton"] +[node name="LabelNodeCloseButton" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeCloseButton" unique_id=1401331697] layout_mode = 2 text = "Show close button on nodes" -[node name="NodeCloseButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeCloseButton" instance=ExtResource("1")] +[node name="NodeCloseButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/NodeCloseButton" unique_id=1333942709 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -494,24 +495,46 @@ text = "On" flat = false config_variable = "node_close_button" -[node name="Export" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer"] +[node name="ApertureLabelPosition" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer" unique_id=459231391] +layout_mode = 2 + +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/ApertureLabelPosition" unique_id=1117413719] +layout_mode = 2 +text = "Aperture node label position" + +[node name="EnumOption" type="OptionButton" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Graph/VBoxContainer/ApertureLabelPosition" unique_id=1920152932] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 10 +tooltip_text = "Default label position used for aperture nodes. +Can also be toggled manually by pressing R when a node is selected." +selected = 0 +item_count = 2 +popup/item_0/text = "Top" +popup/item_0/id = 0 +popup/item_1/text = "Side" +popup/item_1/id = 1 +script = ExtResource("5_vp06c") +config_variable = "aperture_label_position" + +[node name="Export" type="ScrollContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer" unique_id=794249654] visible = false layout_mode = 2 theme_type_variation = &"MM_PreferenceTab" metadata/_tab_index = 3 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export" unique_id=1509334150] layout_mode = 2 size_flags_horizontal = 3 -[node name="RememberAnimExport" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer"] +[node name="RememberAnimExport" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer" unique_id=858349611] layout_mode = 2 -[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer/RememberAnimExport"] +[node name="Label" type="Label" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer/RememberAnimExport" unique_id=1758219625] layout_mode = 2 text = "Remember last animation export settings" -[node name="RememberAnimExport" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer/RememberAnimExport" instance=ExtResource("1")] +[node name="RememberAnimExport" parent="HSplitContainer/PreferencesPanel/VBoxContainer/TabContainer/Export/VBoxContainer/RememberAnimExport" unique_id=804650281 instance=ExtResource("1")] custom_minimum_size = Vector2(200, 0) layout_mode = 2 size_flags_horizontal = 10 @@ -520,27 +543,27 @@ text = "On" flat = false config_variable = "remember_anim_export" -[node name="MarginContainer" type="MarginContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer"] +[node name="MarginContainer" type="MarginContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer" unique_id=1777305573] layout_mode = 2 theme_override_constants/margin_top = 4 theme_override_constants/margin_right = 4 theme_override_constants/margin_bottom = 4 -[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer" unique_id=1177693365] layout_mode = 2 size_flags_horizontal = 8 -[node name="Apply" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer"] +[node name="Apply" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer" unique_id=493731568] custom_minimum_size = Vector2(80, 0) layout_mode = 2 text = "Apply" -[node name="OK" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer"] +[node name="OK" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer" unique_id=165496194] custom_minimum_size = Vector2(80, 0) layout_mode = 2 text = "OK" -[node name="Cancel" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer"] +[node name="Cancel" type="Button" parent="HSplitContainer/PreferencesPanel/VBoxContainer/MarginContainer/HBoxContainer" unique_id=1701125395] custom_minimum_size = Vector2(80, 0) layout_mode = 2 text = "Cancel"