From 71b8be9a183388cee02e2df0fdfa0d7244eab8c6 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Fri, 16 Aug 2024 17:05:17 +0200 Subject: [PATCH 01/31] Adjust Add Node panel size and font size --- material_maker/theme/modern.tres | 6 +++++- material_maker/windows/add_node_popup/add_node_popup.tscn | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index 0790e9363..29a69d0f7 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=57 format=3 uid="uid://b628lwfk6ig2c"] +[gd_resource type="Theme" load_steps=58 format=3 uid="uid://b628lwfk6ig2c"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="1_hqoqt"] [ext_resource type="FontFile" uid="uid://btybkvkb8rtol" path="res://material_maker/fonts/DroidSansFallback.ttf" id="2_1xp11"] @@ -194,6 +194,8 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5447p"] + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dyhk7"] content_margin_left = 10.0 content_margin_top = 2.0 @@ -568,6 +570,8 @@ LineEdit/styles/read_only = SubResource("StyleBoxFlat_k7e83") MM_AddNodePanel/base_type = &"PanelContainer" MM_AddNodePanel/styles/panel = SubResource("StyleBoxFlat_f0kci") MM_AddNodePanelList/base_type = &"ItemList" +MM_AddNodePanelList/font_sizes/font_size = 14 +MM_AddNodePanelList/styles/focus = SubResource("StyleBoxEmpty_5447p") MM_FilterLineEdit/base_type = &"LineEdit" MM_FilterLineEdit/styles/focus = SubResource("StyleBoxFlat_dyhk7") MM_FilterLineEdit/styles/normal = SubResource("StyleBoxFlat_mv8c7") diff --git a/material_maker/windows/add_node_popup/add_node_popup.tscn b/material_maker/windows/add_node_popup/add_node_popup.tscn index 8c4f0b11a..17ec984eb 100644 --- a/material_maker/windows/add_node_popup/add_node_popup.tscn +++ b/material_maker/windows/add_node_popup/add_node_popup.tscn @@ -99,7 +99,7 @@ shader_parameter/tex = ExtResource("3") [node name="AddNodePopup" type="Popup"] transparent_bg = true -size = Vector2i(252, 400) +size = Vector2i(350, 400) visible = true transparent = true script = ExtResource("1") @@ -200,4 +200,3 @@ fixed_icon_size = Vector2i(18, 18) [connection signal="gui_input" from="PanelContainer/VBoxContainer/Filter" to="." method="_on_filter_gui_input"] [connection signal="gui_input" from="PanelContainer/VBoxContainer/List" to="." method="_on_list_gui_input"] [connection signal="item_activated" from="PanelContainer/VBoxContainer/List" to="." method="_on_list_item_activated"] -[connection signal="item_clicked" from="PanelContainer/VBoxContainer/List" to="." method="_on_list_item_clicked"] From 225c27299cdffe0e8c198fb626d8fec89d60c95c Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Fri, 16 Aug 2024 17:07:59 +0200 Subject: [PATCH 02/31] Implement better filtering and sorting in library search This is done by assigning a "result_quality" score to each item based on how it matched. In the Add Node Panel this is used to sort the results. --- .../tools/library_manager/library.gd | 43 ++++++++++++++++++- .../tools/library_manager/library_manager.gd | 17 +++++--- .../windows/add_node_popup/add_node_popup.gd | 24 +++++++---- 3 files changed, 66 insertions(+), 18 deletions(-) diff --git a/material_maker/tools/library_manager/library.gd b/material_maker/tools/library_manager/library.gd index 3427c3ee9..b0b210f30 100644 --- a/material_maker/tools/library_manager/library.gd +++ b/material_maker/tools/library_manager/library.gd @@ -65,14 +65,53 @@ func get_item(lib_name : String): func get_items(filter : String, disabled_sections : Array, aliased_items : Array) -> Array: var array : Array = [] + filter = filter.to_lower().strip_edges() for i in library_items: - if filter == "" or i.tree_item.to_lower().find(filter) != -1 or aliased_items.find(i.tree_item) != -1: + var include := true + var result_quality := 1.0 + if filter: + include = false + if i.display_name.to_lower().begins_with(filter) or " "+filter in i.display_name.to_lower(): + include = true + + if not include: + include = true + result_quality = 0.8 + for word in filter.split(" "): + if not word in i.display_name.to_lower(): + include = false + + if (not include) and i.has("name"): + include = true + result_quality = 0.8 + for word in filter.split(" "): + if not word in i.name.to_lower(): + include = false + + if not include: + result_quality = 0.6 + for alias_dict in aliased_items: + for key in alias_dict: + if key == i.tree_item and filter in alias_dict[key]: + if alias_dict[key].begins_with(filter) or ","+filter in alias_dict[key]: + result_quality = 0.9 + include = true + + if not include: + include = true + result_quality = 0.4 + for word in filter.split(" "): + if not word in i.tree_item.to_lower(): + include = false + + if include: var slash_pos = i.tree_item.find("/") var section_name = i.tree_item.left(slash_pos) if slash_pos != -1 else i.tree_item if disabled_sections.find(section_name) == -1: - array.push_back({ name=i.tree_item, item=i, icon=library_icons[i.tree_item] }) + array.push_back({ name=i.tree_item, item=i, icon=library_icons[i.tree_item], quality=result_quality}) return array + func generate_node_sections(node_sections : Dictionary) -> void: for i in library_items: var section = i.tree_item diff --git a/material_maker/tools/library_manager/library_manager.gd b/material_maker/tools/library_manager/library_manager.gd index 8591c16e8..e6f2b9b35 100644 --- a/material_maker/tools/library_manager/library_manager.gd +++ b/material_maker/tools/library_manager/library_manager.gd @@ -94,22 +94,20 @@ func get_item(item_name : String): func get_items(filter : String, sorted = false) -> Array: var array : Array = [] - var aliased_items = [] - for al in [ base_item_aliases, user_item_aliases ]: - for a in al.keys(): - if al[a].find(filter) != -1 and aliased_items.find(a) == -1: - aliased_items.push_back(a) + var aliased_items := [base_item_aliases, user_item_aliases] + for li in get_child_count(): var l = get_child(li) if disabled_libraries.find(l.library_path) == -1: for i in l.get_items(filter, disabled_sections, aliased_items): i.library_index = li array.push_back(i) + if sorted: - var sorted_array : Array = [] + var sorted_array: Array = [] for i in array: var u1 = item_usage[i.name] if item_usage.has(i.name) else 0 - var inserted = false + var inserted := false for p in sorted_array.size(): var i2 = sorted_array[p] var u2 = item_usage[i2.name] if item_usage.has(i2.name) else 0 @@ -120,6 +118,11 @@ func get_items(filter : String, sorted = false) -> Array: if !inserted: sorted_array.push_back(i) array = sorted_array + var idx := 0 + for item in array: + item["idx"] = idx + idx += 1 + return array func save_library_list() -> void: diff --git a/material_maker/windows/add_node_popup/add_node_popup.gd b/material_maker/windows/add_node_popup/add_node_popup.gd index a8e7fd41c..e4b197edd 100644 --- a/material_maker/windows/add_node_popup/add_node_popup.gd +++ b/material_maker/windows/add_node_popup/add_node_popup.gd @@ -81,7 +81,7 @@ func show_popup(node_name : String = "", slot : int = -1, slot_type : int = -1, b.enable() if filter.text != "": filter.text = "" - update_list(filter.text) + update_list(filter.text) filter.grab_focus() @@ -163,7 +163,9 @@ func update_list(filter_text : String = "") -> void: %List.clear() var idx := 0 - for i in library_manager.get_items(filter_text, true): + var items: Array = library_manager.get_items(filter_text, true) + items.sort_custom(func(a,b): return a.idx < b.idx if a.quality == b.quality else a.quality > b.quality) + for i in items: var obj = i.item if not obj.has("type"): continue @@ -172,8 +174,12 @@ func update_list(filter_text : String = "") -> void: var section = obj.tree_item.get_slice("/", 0) var color : Color = get_node("/root/MainWindow/NodeLibraryManager").get_section_color(section) color = color.lerp(get_theme_color("font_color", "Label"), 0.5) + #print(i) + var _name = obj.display_name + _name = obj.tree_item# + "("+str(i.quality)+")" + " ("+str(i.idx)+")" + #if obj.has("shortdesc") - %List.add_item(obj.display_name, i.icon) + %List.add_item(_name, i.icon) %List.set_item_custom_fg_color(idx, color) %List.set_item_metadata(idx, i) %List.set_item_tooltip_enabled(idx, false) @@ -192,7 +198,7 @@ func _unhandled_input(event) -> void: func _on_filter_gui_input(event: InputEvent) -> void: if event.is_action("ui_down"): %List.grab_focus() - %List.select(1) + %List.select(0) func _on_list_gui_input(event: InputEvent) -> void: @@ -200,6 +206,11 @@ func _on_list_gui_input(event: InputEvent) -> void: if not %List.item_count or %List.is_selected(0): %Filter.grab_focus() + if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and not event.pressed: + var idx: int = %List.get_item_at_position(%List.get_local_mouse_position(), true) + if idx != -1: + _on_list_item_activated(idx) + func get_list_drag_data(m_position): var data = %List.get_item_metadata(%List.get_item_at_position(m_position)) @@ -210,11 +221,6 @@ func get_list_drag_data(m_position): return data.item.tree_item - -func _on_list_item_clicked(index: int, at_position:= Vector2(), mouse_button_index:= 0) -> void: - pass - - func _on_list_item_activated(index: int) -> void: var data = %List.get_item_metadata(index) add_node(data.item) From 7701d925b37fdc78294545f75205fab32bfa8e1d Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Fri, 16 Aug 2024 17:09:11 +0200 Subject: [PATCH 03/31] Library Panel: Improve scroll to section This makes it so clicking on one of the Library panels "Section" buttons (e.g. Simple, 3D, Noise) will scroll far enough to have that item at the TOP of the tree, not just barely visible. --- material_maker/panels/library/library.gd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/material_maker/panels/library/library.gd b/material_maker/panels/library/library.gd index 9fd6df739..b4cf08710 100644 --- a/material_maker/panels/library/library.gd +++ b/material_maker/panels/library/library.gd @@ -218,7 +218,10 @@ func _on_Section_Button_pressed(category : String) -> void: if item.get_text(0) == category: item.select(0) item.collapsed = false - tree.ensure_cursor_is_visible() + for node in tree.get_children(true): + if node is VScrollBar: + node.value = tree.get_item_area_rect(item).position.y + break break func _on_Section_Button_event(event : InputEvent, category : String) -> void: From 0c694af76e84394577497b64c9105d16e3a293f8 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Tue, 20 Aug 2024 12:26:31 +0200 Subject: [PATCH 04/31] Initial Commit of better PreviewPanel menus --- .../common/menu_bar_button_with_panel.gd | 52 +++ .../panels/graph_edit/graph_edit.gd | 10 +- .../panels/preview_2d/export_menu.gd | 153 ++++++++ .../panels/preview_2d/preview_2d.gd | 11 +- .../panels/preview_2d/preview_2d_panel.gd | 34 +- .../panels/preview_2d/preview_2d_panel.tscn | 329 +++++++++++++++++- material_maker/panels/preview_2d/view_menu.gd | 29 ++ material_maker/theme/modern.tres | 49 ++- .../windows/file_dialog/file_dialog.gd | 1 + 9 files changed, 646 insertions(+), 22 deletions(-) create mode 100644 material_maker/panels/common/menu_bar_button_with_panel.gd create mode 100644 material_maker/panels/preview_2d/export_menu.gd create mode 100644 material_maker/panels/preview_2d/view_menu.gd diff --git a/material_maker/panels/common/menu_bar_button_with_panel.gd b/material_maker/panels/common/menu_bar_button_with_panel.gd new file mode 100644 index 000000000..5688eadf8 --- /dev/null +++ b/material_maker/panels/common/menu_bar_button_with_panel.gd @@ -0,0 +1,52 @@ +extends Button + +@onready var panel := get_child(0) + +var pinned := false + + +func _ready() -> void: + toggled.connect(_on_toggled) + owner.resized.connect(position_panel) + + panel.hide() + + +func _draw() -> void: + if pinned: + draw_circle(Vector2(size.x, 0), 4, get_theme_color("icon_pressed_color")) + + +func _on_toggled(pressed:bool) -> void: + panel.visible = pressed + + if panel.visible: + position_panel() + if panel.has_method("_open"): + panel._open() + else: + pinned = false + +func position_panel() -> void: + var at_position := global_position + at_position.x += size.x/2 - panel.size.x/2 + at_position.x = max(at_position.x, get_parent().get_child(0).global_position.x) + at_position.y += size.y + 6 + panel.global_position = at_position + + +func _input(event:InputEvent) -> void: + if not panel.visible: + return + + if event is InputEventMouseButton: + var node := get_viewport().gui_get_hovered_control() + if node != self and not is_ancestor_of(node) and (not pinned or (node and node.script == self.script)): + button_pressed = false + + +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseButton and not event.pressed: + if event.button_index == MOUSE_BUTTON_RIGHT: + pinned = true + grab_focus() diff --git a/material_maker/panels/graph_edit/graph_edit.gd b/material_maker/panels/graph_edit/graph_edit.gd index 618f8d696..cb817da3c 100644 --- a/material_maker/panels/graph_edit/graph_edit.gd +++ b/material_maker/panels/graph_edit/graph_edit.gd @@ -16,7 +16,7 @@ class Preview: var node_factory = null -var save_path = null: set = set_save_path +var save_path := "": set = set_save_path var need_save : bool = false var save_crash_recovery_path = "" var need_save_crash_recovery : bool = false @@ -362,7 +362,7 @@ func update_tab_title() -> void: #print("no set_tab_title method") return var title = "[unnamed]" - if save_path != null: + if not save_path.is_empty(): title = save_path.right(-(save_path.rfind("/")+1)) if need_save: title += " *" @@ -375,7 +375,7 @@ func set_need_save(ns = true) -> void: update_tab_title() need_save_crash_recovery = true -func set_save_path(path) -> void: +func set_save_path(path: String) -> void: if path != save_path: remove_crash_recovery_file() need_save_crash_recovery = false @@ -483,7 +483,7 @@ func new_material(init_nodes = {nodes=[{name="Material", type="material",paramet move_child(top_generator, 0) update_view(top_generator) center_view() - set_save_path(null) + set_save_path("") set_need_save(false) func get_free_name(type) -> String: @@ -624,7 +624,7 @@ func save_as() -> bool: return true return false -func save_file(filename) -> bool: +func save_file(filename:String) -> bool: mm_loader.current_project_path = filename.get_base_dir() var data = top_generator.serialize() mm_loader.current_project_path = "" diff --git a/material_maker/panels/preview_2d/export_menu.gd b/material_maker/panels/preview_2d/export_menu.gd new file mode 100644 index 000000000..9cf278bb3 --- /dev/null +++ b/material_maker/panels/preview_2d/export_menu.gd @@ -0,0 +1,153 @@ +extends PanelContainer + +var export_settings := { + "path" : "preview$SUFFIX_last_export_path", + "resolution" : "preview$SUFFIX_last_export_resolution", + "extension" : "preview$SUFFIX_last_export_extension", + "file_name" : "preview$SUFFIX_last_export_file_name", + #"export_type" : "preview$SUFFIX_last_export_type", + } + +func _ready() -> void: + for val in export_settings.values(): + val = val.replace("$SUFFIX", owner.config_var_suffix) + + owner.generator_changed.connect(update) + +func _open() -> void: + if mm_globals.has_config(export_settings.path): + %ExportFolder.text = mm_globals.get_config(export_settings.path) + + if mm_globals.has_config(export_settings.file_name): + %ExportFile.text = mm_globals.get_config(export_settings.file_name) + %ExportFileResultLabel.text = interpret_file_name(%ExportFile.text) + + if mm_globals.has_config(export_settings.resolution): + %Resolution.selected = mm_globals.get_config(export_settings.resolution) + + if mm_globals.has_config(export_settings.resolution): + %Resolution.selected = mm_globals.get_config(export_settings.resolution) + + if mm_globals.has_config(export_settings.extension): + %FileType.selected = mm_globals.get_config(export_settings.extension) + + export_notification("") + +func update() -> void: + if not is_visible_in_tree(): + return + + %ExportFileResultLabel.text = interpret_file_name(%ExportFile.text) + + +func _on_export_folder_text_changed(new_text: String) -> void: + mm_globals.set_config(export_settings.path, new_text) + + +func _on_export_folder_button_pressed() -> void: + var file_dialog := preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() + file_dialog.access = FileDialog.ACCESS_FILESYSTEM + file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR + file_dialog.add_filter("*.png; PNG image file") + file_dialog.add_filter("*.exr; EXR image file") + if mm_globals.config.has_section_key("path", "save_preview"): + file_dialog.current_dir = mm_globals.config.get_value("path", "save_preview") + var files = await file_dialog.select_files() + + if files.size() == 1: + %ExportFolder.text = files[0] + _on_export_folder_text_changed(files[0]) + %ExportFolder.tooltip_text = files[0] + + +func _on_export_file_text_changed(new_text: String) -> void: + mm_globals.set_config(export_settings.file_name, new_text) + update() + + +func _on_file_type_item_selected(index: int) -> void: + mm_globals.set_config(export_settings.extension, index) + update() + + +func _on_resolution_item_selected(index: int) -> void: + mm_globals.set_config(export_settings.resolution, index) + + +func _on_image_pressed() -> void: + var path: String = %ExportFolder.text + var file_name: String = %ExportFile.text + + if path.is_empty(): + var file_dialog := preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() + file_dialog.access = FileDialog.ACCESS_FILESYSTEM + file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR + file_dialog.add_filter("*.png; PNG image file") + file_dialog.add_filter("*.exr; EXR image file") + if mm_globals.config.has_section_key("path", "save_preview"): + file_dialog.current_dir = mm_globals.config.get_value("path", "save_preview") + + var files = await file_dialog.select_files() + + if files.size() > 0: + path = files[0] + %ExportFolder.text = path.get_base_dir() + _on_export_folder_text_changed(path.get_base_dir()) + %ExportFolder.tooltip_text = path.get_base_dir() + + else: + file_name = interpret_file_name(file_name) + + path = path.path_join(file_name) + + if path: + owner.export_as_image_file(path, 64 << %Resolution.selected) + update() + export_notification("Exported to " + path) + + +func _on_animation_pressed() -> void: + owner.export_animation() + + +func _on_taa_render_pressed() -> void: + owner.export_taa() + + +func _on_reference_pressed() -> void: + owner.export_to_reference(%Resolution.selected) + export_notification("Exported to Reference") + + +func export_notification(text:String) -> void: + %ExportNotificationLabel.text = text + %ExportNotificationLabel.visible = not text.is_empty() + + +func interpret_file_name(file_name: String) -> String: + var path: String = %ExportFolder.text + + if owner.generator: + file_name = file_name.replace("$node", owner.generator.name) + else: + file_name = file_name.replace("$node", "unnamed") + + var current_graph: MMGraphEdit = find_parent("MainWindow").get_current_graph_edit() + if current_graph.save_path: + file_name = file_name.replace("$project", current_graph.save_path.get_file().trim_suffix("."+current_graph.save_path.get_extension())) + else: + file_name = file_name.replace("$project", "unnamed_project") + + match %FileType.selected: + 0: file_name += ".png" + 1: file_name += ".exr" + + if "$idx" in file_name: + if path: + var idx := 1 + while FileAccess.file_exists(path.path_join(file_name).replace("$idx", str(idx).pad_zeros(2))): + idx += 1 + file_name = file_name.replace("$idx", str(idx).pad_zeros(2)) + else: + file_name = file_name.replace("$idx", str(1).pad_zeros(2)) + return file_name diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index d2fcf3cb3..68af4cfb8 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -10,7 +10,7 @@ var is_greyscale : bool = false var need_generate : bool = false var last_export_filename : String = "" -var last_export_size = 0 +var last_export_size = 4 const MENU_EXPORT_AGAIN : int = 1000 @@ -18,6 +18,7 @@ const MENU_EXPORT_ANIMATION : int = 1001 const MENU_EXPORT_TAA_RENDER : int = 1002 const MENU_EXPORT_CUSTOM_SIZE : int = 1003 +signal generator_changed func _enter_tree(): mm_deps.create_buffer("preview_"+str(get_instance_id()), self) @@ -92,6 +93,7 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: var item_index = $ContextMenu.get_item_index(MENU_EXPORT_ANIMATION) if item_index != -1: $ContextMenu.set_item_disabled(item_index, !is_instance_valid(g)) + generator_changed.emit() update_material(source) var refreshing_generator : bool = false @@ -147,7 +149,8 @@ func export_animation() -> void: var window = load("res://material_maker/windows/export_animation/export_animation.tscn").instantiate() mm_globals.main_window.add_dialog(window) window.set_source(generator, output) - window.popup_centered() + window.exclusive = true + window.popup_centered()#e(get_window(), Rect2(get_window().size()) func export_taa() -> void: if generator == null: @@ -207,9 +210,9 @@ func export_as_image_file(file_name : String, image_size : int) -> void: last_export_size = image_size $ContextMenu.set_item_disabled($ContextMenu.get_item_index(MENU_EXPORT_AGAIN), false) -func _on_Reference_id_pressed(id : int): +func export_to_reference(resolution_id : int): var texture : ImageTexture = ImageTexture.new() - await create_image("copy_to_texture", [ texture ], 64 << id) + await create_image("copy_to_texture", [ texture ], 64 << resolution_id) mm_globals.main_window.get_panel("Reference").add_reference(texture) func _on_Preview2D_visibility_changed(): diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index 47e004e19..ec96f3c21 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -35,6 +35,8 @@ func _ready(): update_postprocess_menu() update_Guides_menu() update_export_menu() + reset_view() + func update_view_menu() -> void: $ContextMenu.add_submenu_item("View", "View") @@ -48,9 +50,9 @@ func update_Guides_menu() -> void: $ContextMenu/Guides.add_item("Change color", 1000) $ContextMenu.add_submenu_item("Guides", "Guides") if mm_globals.has_config("preview"+config_var_suffix+"_view_mode"): - _on_View_id_pressed(mm_globals.get_config("preview"+config_var_suffix+"_view_mode")) + set_view_mode(mm_globals.get_config("preview"+config_var_suffix+"_view_mode")) if mm_globals.has_config("preview"+config_var_suffix+"_view_postprocess"): - _on_PostProcess_id_pressed(mm_globals.get_config("preview"+config_var_suffix+"_view_postprocess")) + set_post_processing(mm_globals.get_config("preview"+config_var_suffix+"_view_postprocess")) func update_postprocess_menu() -> void: $ContextMenu/PostProcess.clear() @@ -71,6 +73,7 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: func update_material(source): super.update_material(source) material.set_shader_parameter("mode", view_mode) + material.set_shader_parameter("background_color", get_theme_stylebox("panel", "MM_PanelBackground").bg_color) material.set_shader_parameter("background_color_1", Color(0.4, 0.4, 0.4)) material.set_shader_parameter("background_color_2", Color(0.6, 0.6, 0.6)) @@ -173,6 +176,8 @@ func update_shader_options() -> void: func on_resized() -> void: super.on_resized() + material.set_shader_parameter("background_color", get_theme_stylebox("panel", "MM_PanelBackground").bg_color) + printt(name, get_theme_stylebox("panel", "MM_PanelBackground").bg_color) material.set_shader_parameter("preview_2d_center", center) material.set_shader_parameter("preview_2d_scale", view_scale) setup_controls("previous") @@ -198,6 +203,7 @@ func _on_gui_input(event): MOUSE_BUTTON_MIDDLE: dragging = true MOUSE_BUTTON_LEFT: + print(material.shader.code) if event.shift_pressed: dragging = true elif event.is_command_or_control_pressed(): @@ -230,9 +236,7 @@ func _on_gui_input(event): func _on_ContextMenu_id_pressed(id) -> void: match id: 0: - center = Vector2(0.5, 0.5) - view_scale = 1.2 - update_shader_options() + reset_view() MENU_EXPORT_AGAIN: export_again() MENU_EXPORT_ANIMATION: @@ -242,7 +246,14 @@ func _on_ContextMenu_id_pressed(id) -> void: _: print("unsupported id "+str(id)) -func _on_View_id_pressed(id): + +func reset_view() -> void: + center = Vector2(0.5, 0.5) + view_scale = 1.2 + update_shader_options() + + +func set_view_mode(id:int) -> void: if id == view_mode: return $ContextMenu/View.set_item_checked(view_mode, false) @@ -251,6 +262,11 @@ func _on_View_id_pressed(id): material.set_shader_parameter("mode", view_mode) mm_globals.set_config("preview"+config_var_suffix+"_view_mode", view_mode) + +func get_view_mode() -> int: + return view_mode + + func _on_Guides_id_pressed(id): if id == 1000: var color_picker_popup = preload("res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn").instantiate() @@ -268,10 +284,14 @@ func _on_GridSize_value_changed(value): $Guides.show_grid(value) -func _on_PostProcess_id_pressed(id): +func set_post_processing(id:int) -> void: current_postprocess_option = id set_generator(generator, output, true) mm_globals.set_config("preview"+config_var_suffix+"_view_postprocess", current_postprocess_option) + +func get_post_processing() -> int: + return current_postprocess_option + func _on_Preview2D_mouse_entered(): mm_globals.set_tip_text("#MMB: Pan, Mouse wheel: Zoom, #RMB: Context menu", 3) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 3e8ec1ed6..77cdaabe8 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=17 format=3 uid="uid://b7x7yqgsurxhv"] +[gd_scene load_steps=26 format=3 uid="uid://b7x7yqgsurxhv"] [ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="1"] [ext_resource type="PackedScene" uid="uid://est6pi7xbptp" path="res://material_maker/panels/preview_2d/control_point.tscn" id="2"] @@ -10,19 +10,52 @@ [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="6"] [ext_resource type="PackedScene" uid="uid://b51634rcdiyr" path="res://material_maker/widgets/pixels_edit/pixels_editor.tscn" id="6_m4663"] [ext_resource type="PackedScene" uid="uid://dicq2cut03ved" path="res://material_maker/widgets/lattice_edit/lattice_editor.tscn" id="7_u2w4r"] +[ext_resource type="Texture2D" uid="uid://tfi3spyumjxt" path="res://material_maker/theme/dark/popupmenu_visibility_visible.png" id="11_l5q6b"] +[ext_resource type="PackedScene" uid="uid://dj5q8sxvd3gci" path="res://material_maker/widgets/option_edit/option_edit.tscn" id="12_4017l"] +[ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="12_nrhap"] +[ext_resource type="Texture2D" uid="uid://dw0lvt1ip8ifp" path="res://material_maker/theme/dark/popupmenu_submenu.png" id="12_wun6p"] +[ext_resource type="Script" path="res://material_maker/panels/preview_2d/view_menu.gd" id="13_5w2hy"] +[ext_resource type="Texture2D" uid="uid://tetgna5qjvkf" path="res://material_maker/theme/dark/tabs_increment.png" id="15_ikyi1"] +[ext_resource type="Script" path="res://material_maker/panels/preview_2d/export_menu.gd" id="16_0fl4g"] +[ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="18_kn37y"] [sub_resource type="Shader" id="1"] resource_local_to_scene = true code = "shader_type canvas_item; +uniform vec2 preview_2d_size = vec2(100.0); +uniform float preview_2d_scale = 1.2; +uniform vec2 preview_2d_center = vec2(0.5); +uniform int mode = 0; +uniform vec4 background_color = vec4(0.0); +uniform vec4 background_color_1 = vec4(0.0); +uniform vec4 background_color_2 = vec4(1.0); + void fragment() { - COLOR = vec4(0.0, 0.0, 0.0, 1.0); + vec2 ratio = preview_2d_size; + vec2 uv = preview_2d_center+(UV-0.5)*preview_2d_scale*ratio/min(ratio.x, ratio.y); + if (mode == 2 && (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)) { + COLOR = background_color; + } else { + if (mode == 1) { + uv = fract(uv); + } + float checkerboard = mod(floor(uv.x*32.0)+floor(uv.y*32.0), 2.0); + COLOR = vec4(mix(background_color_1, background_color_2, checkerboard).rgb, 1.0); + } } " [sub_resource type="ShaderMaterial" id="2"] resource_local_to_scene = true shader = SubResource("1") +shader_parameter/preview_2d_size = Vector2(100, 100) +shader_parameter/preview_2d_scale = 1.655 +shader_parameter/preview_2d_center = Vector2(0.46, 0.56) +shader_parameter/mode = 2 +shader_parameter/background_color = Vector4(0, 0, 0, 0) +shader_parameter/background_color_1 = Vector4(0.4, 0.4, 0.4, 1) +shader_parameter/background_color_2 = Vector4(0.6, 0.6, 0.6, 1) [sub_resource type="AtlasTexture" id="3"] atlas = ExtResource("1") @@ -40,11 +73,20 @@ resource_local_to_scene = true render_priority = 0 shader = SubResource("5") +[sub_resource type="FontVariation" id="FontVariation_wkuuo"] +base_font = ExtResource("18_kn37y") +variation_transform = Transform2D(1, 0.22, 0, 1, 0, 0) + [node name="Preview2D" instance=ExtResource("3")] material = SubResource("2") custom_minimum_size = Vector2(100, 100) -offset_right = -758.0 -offset_bottom = -267.0 +offset_left = 8.0 +offset_top = -5.0 +offset_right = 508.0 +offset_bottom = 434.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(1, 1, 1, 0) script = ExtResource("4") config_var_suffix = "" shader_accumulate = "uniform sampler2D sum; @@ -82,6 +124,7 @@ shader = "uniform vec2 preview_2d_size = vec2(100.0); uniform float preview_2d_scale = 1.2; uniform vec2 preview_2d_center = vec2(0.5); uniform int mode = 0; +uniform vec4 background_color = vec4(0.0); uniform vec4 background_color_1 = vec4(0.0); uniform vec4 background_color_2 = vec4(1.0); @@ -89,7 +132,7 @@ void fragment() { vec2 ratio = preview_2d_size; vec2 uv = preview_2d_center+(UV-0.5)*preview_2d_scale*ratio/min(ratio.x, ratio.y); if (mode == 2 && (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)) { - COLOR = vec4(0.0); + COLOR = background_color; } else { if (mode == 1) { uv = fract(uv); @@ -374,6 +417,268 @@ offset_left = -32.0 offset_bottom = 20.0 grow_horizontal = 0 +[node name="MenuBar" type="ScrollContainer" parent="." index="22"] +unique_name_in_owner = true +clip_contents = false +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 30.0 +grow_horizontal = 2 +theme_type_variation = &"MM_PanelMenuBackground" +horizontal_scroll_mode = 3 +vertical_scroll_mode = 0 + +[node name="HBox" type="HBoxContainer" parent="MenuBar" index="0"] +layout_mode = 2 + +[node name="MainMenu" type="PanelContainer" parent="MenuBar/HBox" index="0"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" + +[node name="HBox" type="HBoxContainer" parent="MenuBar/HBox/MainMenu" index="0"] +layout_mode = 2 + +[node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0"] +layout_mode = 2 +toggle_mode = true +button_mask = 3 +text = "View" +icon = ExtResource("11_l5q6b") +script = ExtResource("12_nrhap") + +[node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] +layout_mode = 0 +offset_left = -53.0 +offset_top = 34.0 +offset_right = 92.0 +offset_bottom = 115.0 +theme_type_variation = &"MM_PanelMenuSubPanel" +script = ExtResource("13_5w2hy") + +[node name="VBox" type="VBoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" index="0"] +layout_mode = 2 +theme_override_constants/separation = 2 + +[node name="ResetViewButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="0"] +unique_name_in_owner = true +layout_mode = 2 +text = "Reset View" + +[node name="ViewModeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="1"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "View Mode" + +[node name="ViewMode" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="2" instance=ExtResource("12_4017l")] +unique_name_in_owner = true +layout_mode = 2 +selected = 0 +item_count = 5 +popup/item_0/text = "Extend" +popup/item_1/text = "Repeat" +popup/item_1/id = 1 +popup/item_2/text = "Clamp" +popup/item_2/id = 2 +popup/item_3/text = "Temporal AA" +popup/item_3/id = 3 +popup/item_4/text = "Remporal AA 2.2" +popup/item_4/id = 4 + +[node name="PostProcessingLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="3"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Post Processing" + +[node name="PostProcessing" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="4" instance=ExtResource("12_4017l")] +unique_name_in_owner = true +layout_mode = 2 +selected = 0 +item_count = 6 +popup/item_0/text = "None" +popup/item_1/text = "Lowres 32x32" +popup/item_1/id = 1 +popup/item_2/text = "Lowres 64x64" +popup/item_2/id = 2 +popup/item_3/text = "Lowres 128x128" +popup/item_3/id = 3 +popup/item_4/text = "Lowres 256x256" +popup/item_4/id = 4 +popup/item_5/text = "Lowres 512x512" +popup/item_5/id = 5 + +[node name="GuidesLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="5"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Guides" + +[node name="BoxContainer" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="6"] +layout_mode = 2 + +[node name="Guides" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer" index="0" instance=ExtResource("12_4017l")] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +selected = 0 +item_count = 7 +popup/item_0/text = "None" +popup/item_1/text = "Corners" +popup/item_1/id = 1 +popup/item_2/text = "Lines" +popup/item_2/id = 2 +popup/item_3/text = "Grid 4x4" +popup/item_3/id = 3 +popup/item_4/text = "Grid 8x8" +popup/item_4/id = 4 +popup/item_5/text = "Grid 10x10" +popup/item_5/id = 5 +popup/item_6/text = "Grid 16x16" +popup/item_6/id = 6 + +[node name="GuidesColor" type="ColorPickerButton" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer" index="1"] +unique_name_in_owner = true +custom_minimum_size = Vector2(25, 0) +layout_mode = 2 + +[node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] +layout_mode = 2 +toggle_mode = true +button_mask = 3 +text = "Export" +icon = ExtResource("12_wun6p") +script = ExtResource("12_nrhap") + +[node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] +layout_mode = 0 +offset_left = -74.0 +offset_top = 36.0 +offset_right = 252.0 +offset_bottom = 341.0 +theme_type_variation = &"MM_PanelMenuSubPanel" +script = ExtResource("16_0fl4g") + +[node name="VBox" type="VBoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" index="0"] +layout_mode = 2 +theme_override_constants/separation = 2 + +[node name="ExportFolderLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="0"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Export Folder" + +[node name="ExportFolder" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="1"] +layout_mode = 2 +theme_override_constants/separation = 2 + +[node name="ExportFolder" type="LineEdit" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder" index="0"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 15 + +[node name="ExportFolderButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder" index="1"] +unique_name_in_owner = true +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +icon = ExtResource("15_ikyi1") +icon_alignment = 1 + +[node name="ExportFileLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="2"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "File Name" + +[node name="ExportFile" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="3"] +layout_mode = 2 +theme_override_constants/separation = 2 + +[node name="ExportFile" type="LineEdit" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFile" index="0"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 15 +text = "$project_$node" + +[node name="FileType" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFile" index="1" instance=ExtResource("12_4017l")] +unique_name_in_owner = true +layout_mode = 2 +selected = 0 +item_count = 2 +popup/item_0/text = ".png" +popup/item_1/text = ".exr" +popup/item_1/id = 1 + +[node name="ExportFileResultLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="4"] +unique_name_in_owner = true +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +theme_override_colors/font_color = Color(0.569503, 0.480253, 0.24056, 1) +theme_override_fonts/font = SubResource("FontVariation_wkuuo") + +[node name="ResolutionLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="5"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Resolution" + +[node name="Resolution" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="6" instance=ExtResource("12_4017l")] +unique_name_in_owner = true +layout_mode = 2 +selected = 4 +item_count = 8 +popup/item_0/text = "64x64" +popup/item_1/text = "128x128" +popup/item_1/id = 1 +popup/item_2/text = "256x256" +popup/item_2/id = 2 +popup/item_3/text = "512x512" +popup/item_3/id = 3 +popup/item_4/text = "1024x1024" +popup/item_4/id = 4 +popup/item_5/text = "2048x2048" +popup/item_5/id = 5 +popup/item_6/text = "4048x2048" +popup/item_6/id = 6 +popup/item_7/text = "8192x8192" +popup/item_7/id = 7 + +[node name="ExportLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="7"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Export" + +[node name="Image" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="8"] +unique_name_in_owner = true +layout_mode = 2 +text = "Export as Image" +alignment = 0 + +[node name="Animation" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="9"] +unique_name_in_owner = true +layout_mode = 2 +text = "Export as Animation" +alignment = 0 + +[node name="TAA_Render" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="10"] +unique_name_in_owner = true +layout_mode = 2 +text = "Export as TAA Render" +alignment = 0 + +[node name="Reference" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="11"] +unique_name_in_owner = true +layout_mode = 2 +text = "Export to Reference" +alignment = 0 + +[node name="ExportNotificationLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="12"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +theme_override_colors/font_color = Color(0.52, 0.52, 0.52, 1) +theme_override_fonts/font = SubResource("FontVariation_wkuuo") +autowrap_mode = 1 + [connection signal="gui_input" from="." to="." method="_on_gui_input"] [connection signal="mouse_entered" from="." to="." method="_on_Preview2D_mouse_entered"] [connection signal="unhandled_event" from="PolygonEditor" to="." method="_on_gui_input"] @@ -388,3 +693,17 @@ grow_horizontal = 0 [connection signal="id_pressed" from="ContextMenu/Reference" to="." method="_on_Reference_id_pressed"] [connection signal="id_pressed" from="ContextMenu/PostProcess" to="." method="_on_PostProcess_id_pressed"] [connection signal="item_selected" from="ComplexParameters" to="." method="_on_complex_parameters_item_selected"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ResetViewButton" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_reset_view_button_pressed"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ViewMode" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_view_mode_item_selected"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/PostProcessing" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_post_processing_item_selected"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer/Guides" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_guides_item_selected"] +[connection signal="color_changed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer/GuidesColor" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_guides_color_color_changed"] +[connection signal="text_changed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder/ExportFolder" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_folder_text_changed"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder/ExportFolderButton" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_folder_button_pressed"] +[connection signal="text_changed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFile/ExportFile" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_file_text_changed"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFile/FileType" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_file_type_item_selected"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Resolution" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_resolution_item_selected"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Image" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_image_pressed"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Animation" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_animation_pressed"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/TAA_Render" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_taa_render_pressed"] +[connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Reference" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_reference_pressed"] diff --git a/material_maker/panels/preview_2d/view_menu.gd b/material_maker/panels/preview_2d/view_menu.gd new file mode 100644 index 000000000..9c67a8d4d --- /dev/null +++ b/material_maker/panels/preview_2d/view_menu.gd @@ -0,0 +1,29 @@ +extends PanelContainer + + + +func _open() -> void: + %ViewMode.selected = owner.get_view_mode() + %PostProcessing.selected = owner.get_post_processing() + %Guides.selected = owner.get_node("Guides").style + %GuidesColor.color = owner.get_node("Guides").color + + +func _on_reset_view_button_pressed() -> void: + owner.reset_view() + + +func _on_view_mode_item_selected(index: int) -> void: + owner.set_view_mode(index) + + +func _on_post_processing_item_selected(index: int) -> void: + owner.set_post_processing(index) + + +func _on_guides_item_selected(index: int) -> void: + owner.get_node("Guides").style = index + + +func _on_guides_color_color_changed(color: Color) -> void: + owner.get_node("Guides").color = color diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index 29a69d0f7..02ea27ebf 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=58 format=3 uid="uid://b628lwfk6ig2c"] +[gd_resource type="Theme" load_steps=62 format=3 uid="uid://b628lwfk6ig2c"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="1_hqoqt"] [ext_resource type="FontFile" uid="uid://btybkvkb8rtol" path="res://material_maker/fonts/DroidSansFallback.ttf" id="2_1xp11"] @@ -350,6 +350,43 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_b7fkf"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pq4ta"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +bg_color = Color(0.123578, 0.129892, 0.142519, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qhlqs"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0725373, 0.0770753, 0.0861506, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.2484, 0.2484, 0.2484, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 4 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_82ewu"] +content_margin_top = 3.0 + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1k0sx"] bg_color = Color(0.0941176, 0.0980392, 0.101961, 1) corner_radius_top_right = 4 @@ -602,6 +639,16 @@ MM_NodePropertyLabel/base_type = &"Label" MM_NodePropertyLabel/font_sizes/font_size = 15 MM_PanelBackground/base_type = &"PanelContainer" MM_PanelBackground/styles/panel = SubResource("StyleBoxFlat_uujf1") +MM_PanelMenuBackground/base_type = &"ScrollContainer" +MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_b7fkf") +MM_PanelMenuBar/base_type = &"PanelContainer" +MM_PanelMenuBar/styles/panel = SubResource("StyleBoxFlat_pq4ta") +MM_PanelMenuSubPanel/base_type = &"PanelContainer" +MM_PanelMenuSubPanel/styles/panel = SubResource("StyleBoxFlat_qhlqs") +MM_PanelMenuSubPanelLabel/base_type = &"Label" +MM_PanelMenuSubPanelLabel/colors/font_color = Color(0.454524, 0.454524, 0.454524, 1) +MM_PanelMenuSubPanelLabel/font_sizes/font_size = 14 +MM_PanelMenuSubPanelLabel/styles/normal = SubResource("StyleBoxEmpty_82ewu") MM_ProjectsBackground/base_type = &"Panel" MM_ProjectsBackground/styles/panel = SubResource("StyleBoxFlat_1k0sx") MM_StatusBarBackground/base_type = &"PanelContainer" diff --git a/material_maker/windows/file_dialog/file_dialog.gd b/material_maker/windows/file_dialog/file_dialog.gd index f9adb95d3..462929f24 100644 --- a/material_maker/windows/file_dialog/file_dialog.gd +++ b/material_maker/windows/file_dialog/file_dialog.gd @@ -12,6 +12,7 @@ signal return_paths(path_list) func _ready() -> void: + min_size = Vector2(500, 500) if DIALOG_HACK: var vbox = get_vbox() var hbox = HSplitContainer.new() From 326cac4a3169141b0914c47ddb95db948804c157 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Tue, 20 Aug 2024 13:10:01 +0200 Subject: [PATCH 05/31] Implement new PixelMenuBar and remove old Context Menu --- .../common/menu_bar_button_with_panel.gd | 6 +- .../panels/preview_2d/preview_2d.gd | 23 ++--- .../panels/preview_2d/preview_2d_node.gd | 8 -- .../panels/preview_2d/preview_2d_node.tscn | 8 -- .../panels/preview_2d/preview_2d_panel.gd | 84 +++++-------------- .../panels/preview_2d/preview_2d_panel.tscn | 67 ++------------- material_maker/theme/modern.tres | 1 + .../widgets/pixels_edit/pixels_editor.gd | 45 +++++----- .../widgets/pixels_edit/pixels_editor.tscn | 71 +++++++++------- .../widgets/pixels_edit/settings_panel.gd | 28 +++++++ 10 files changed, 129 insertions(+), 212 deletions(-) create mode 100644 material_maker/widgets/pixels_edit/settings_panel.gd diff --git a/material_maker/panels/common/menu_bar_button_with_panel.gd b/material_maker/panels/common/menu_bar_button_with_panel.gd index 5688eadf8..707b47dae 100644 --- a/material_maker/panels/common/menu_bar_button_with_panel.gd +++ b/material_maker/panels/common/menu_bar_button_with_panel.gd @@ -6,6 +6,8 @@ var pinned := false func _ready() -> void: + toggle_mode = true + button_mask = MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT toggled.connect(_on_toggled) owner.resized.connect(position_panel) @@ -14,7 +16,7 @@ func _ready() -> void: func _draw() -> void: if pinned: - draw_circle(Vector2(size.x, 0), 4, get_theme_color("icon_pressed_color")) + draw_circle(Vector2(size.x-2, 2), 4, get_theme_color("icon_pressed_color")) func _on_toggled(pressed:bool) -> void: @@ -48,5 +50,7 @@ func _input(event:InputEvent) -> void: func _gui_input(event: InputEvent) -> void: if event is InputEventMouseButton and not event.pressed: if event.button_index == MOUSE_BUTTON_RIGHT: + if not pinned and button_pressed: + get_viewport().set_input_as_handled() pinned = true grab_focus() diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index 68af4cfb8..f1f0164ce 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -23,24 +23,11 @@ signal generator_changed func _enter_tree(): mm_deps.create_buffer("preview_"+str(get_instance_id()), self) -func update_export_menu() -> void: - $ContextMenu/Export.clear() - $ContextMenu/Reference.clear() - for i in range(8): - var s = 64 << i - $ContextMenu/Export.add_item(str(s)+"x"+str(s), i) - $ContextMenu/Reference.add_item(str(s)+"x"+str(s), i) - $ContextMenu.add_submenu_item("Export", "Export") - $ContextMenu.add_item("Export again", MENU_EXPORT_AGAIN) - $ContextMenu.set_item_disabled($ContextMenu.get_item_index(MENU_EXPORT_AGAIN), true) - $ContextMenu.add_item("Export animation", MENU_EXPORT_ANIMATION) - $ContextMenu.set_item_disabled($ContextMenu.get_item_index(MENU_EXPORT_ANIMATION), true) - $ContextMenu.add_item("Export TAA render", MENU_EXPORT_TAA_RENDER) - $ContextMenu.add_submenu_item("Reference", "Reference") func generate_preview_shader(source, template) -> String: return MMGenBase.generate_preview_shader(source, source.output_type, template) + func do_update_material(source, target_material : ShaderMaterial, template : String): if source.output_type == "": return @@ -89,10 +76,10 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: source = MMGenBase.get_default_generated_shader() else: generator = null - if get_node_or_null("ContextMenu") != null: - var item_index = $ContextMenu.get_item_index(MENU_EXPORT_ANIMATION) - if item_index != -1: - $ContextMenu.set_item_disabled(item_index, !is_instance_valid(g)) + #if get_node_or_null("ContextMenu") != null: + #var item_index = $ContextMenu.get_item_index(MENU_EXPORT_ANIMATION) + #if item_index != -1: + #$ContextMenu.set_item_disabled(item_index, !is_instance_valid(g)) generator_changed.emit() update_material(source) diff --git a/material_maker/panels/preview_2d/preview_2d_node.gd b/material_maker/panels/preview_2d/preview_2d_node.gd index 5c71cf116..c18aa2228 100644 --- a/material_maker/panels/preview_2d/preview_2d_node.gd +++ b/material_maker/panels/preview_2d/preview_2d_node.gd @@ -1,9 +1 @@ extends "res://material_maker/panels/preview_2d/preview_2d.gd" - -func _ready() -> void: - update_export_menu() - -func _on_gui_input(event) -> void: - if event is InputEventMouseButton: - if event.pressed and event.button_index == MOUSE_BUTTON_RIGHT: - $ContextMenu.popup(Rect2(get_global_mouse_position(), Vector2(0, 0))) diff --git a/material_maker/panels/preview_2d/preview_2d_node.tscn b/material_maker/panels/preview_2d/preview_2d_node.tscn index 0c1e8ab6d..ac9e3761d 100644 --- a/material_maker/panels/preview_2d/preview_2d_node.tscn +++ b/material_maker/panels/preview_2d/preview_2d_node.tscn @@ -16,12 +16,4 @@ material = SubResource("2") mouse_filter = 0 script = ExtResource("2") -[node name="ContextMenu" type="PopupMenu" parent="." index="0"] - -[node name="Export" type="PopupMenu" parent="ContextMenu" index="3"] - -[node name="Reference" type="PopupMenu" parent="ContextMenu" index="4"] - [connection signal="gui_input" from="." to="." method="_on_gui_input"] -[connection signal="id_pressed" from="ContextMenu/Export" to="." method="_on_Export_id_pressed"] -[connection signal="id_pressed" from="ContextMenu/Reference" to="." method="_on_Reference_id_pressed"] diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index ec96f3c21..bb50c1f49 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -23,7 +23,6 @@ const POSTPROCESS_OPTIONS : Array = [ { name="Lowres 512x512", function="preview_2d((floor(uv*512.0)+vec2(0.5))/512.0)" } ] - const VIEW_EXTEND : int = 0 const VIEW_REPEAT : int = 1 const VIEW_CLAMP : int = 2 @@ -31,38 +30,13 @@ const VIEW_CLAMP : int = 2 func _ready(): update_shader_options() - update_view_menu() - update_postprocess_menu() - update_Guides_menu() - update_export_menu() reset_view() - - -func update_view_menu() -> void: - $ContextMenu.add_submenu_item("View", "View") - -func update_Guides_menu() -> void: - $ContextMenu/Guides.clear() - for s in $Guides.STYLES: - $ContextMenu/Guides.add_item(s) - $ContextMenu/Guides.add_submenu_item("Grid", "Grid") - $ContextMenu/Guides.add_separator() - $ContextMenu/Guides.add_item("Change color", 1000) - $ContextMenu.add_submenu_item("Guides", "Guides") - if mm_globals.has_config("preview"+config_var_suffix+"_view_mode"): - set_view_mode(mm_globals.get_config("preview"+config_var_suffix+"_view_mode")) - if mm_globals.has_config("preview"+config_var_suffix+"_view_postprocess"): - set_post_processing(mm_globals.get_config("preview"+config_var_suffix+"_view_postprocess")) - -func update_postprocess_menu() -> void: - $ContextMenu/PostProcess.clear() - for o in POSTPROCESS_OPTIONS: - $ContextMenu/PostProcess.add_item(o.name) - $ContextMenu.add_submenu_item("Post Process", "PostProcess") + func get_shader_custom_functions(): return "vec4 preview_2d_postprocessed(vec2 uv) { return %s; }\n" % POSTPROCESS_OPTIONS[current_postprocess_option].function + func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: #center = Vector2(0.5, 0.5) #view_scale = 1.2 @@ -70,6 +44,7 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: setup_controls("previous") update_shader_options() + func update_material(source): super.update_material(source) material.set_shader_parameter("mode", view_mode) @@ -147,13 +122,16 @@ var center_transform : Transform2D = Transform2D(0, Vector2(0.0, 0.0)) var local_rotate : float = 0.0 var local_scale : float = 1.0 + func set_center_transform(t): center_transform = t + func set_local_transform(r : float, s : float): local_rotate = r local_scale = s + func value_to_pos(value : Vector2, apply_parent_transform : bool = false, apply_local_transform : bool = false) -> Vector2: if apply_parent_transform: value = center_transform * (value) @@ -162,6 +140,7 @@ func value_to_pos(value : Vector2, apply_parent_transform : bool = false, apply_ value *= local_scale return (value-center+Vector2(0.5, 0.5))*min(size.x, size.y)/view_scale+0.5*size + func pos_to_value(pos : Vector2, apply_parent_transform : bool = false, apply_local_transform : bool = false) -> Vector2: var value = (pos-0.5*size)*view_scale/min(size.x, size.y)+center-Vector2(0.5, 0.5) if apply_local_transform: @@ -174,6 +153,7 @@ func pos_to_value(pos : Vector2, apply_parent_transform : bool = false, apply_lo func update_shader_options() -> void: on_resized() + func on_resized() -> void: super.on_resized() material.set_shader_parameter("background_color", get_theme_stylebox("panel", "MM_PanelBackground").bg_color) @@ -183,6 +163,7 @@ func on_resized() -> void: setup_controls("previous") $Guides.queue_redraw() + var dragging : bool = false var zooming : bool = false @@ -208,8 +189,6 @@ func _on_gui_input(event): dragging = true elif event.is_command_or_control_pressed(): zooming = true - MOUSE_BUTTON_RIGHT: - $ContextMenu.popup(Rect2(get_local_mouse_position()+get_screen_position(), Vector2(0, 0))) else: dragging = false zooming = false @@ -233,19 +212,16 @@ func _on_gui_input(event): if need_update: on_resized() -func _on_ContextMenu_id_pressed(id) -> void: - match id: - 0: - reset_view() - MENU_EXPORT_AGAIN: - export_again() - MENU_EXPORT_ANIMATION: - export_animation() - MENU_EXPORT_TAA_RENDER: - export_taa() - _: - print("unsupported id "+str(id)) +#region MENUS + +func add_menu_bar(menu_bar:Control, editor:Control) -> void: + %MenuBar.get_child(0).add_child(menu_bar) + editor.visibility_changed.connect(func(): menu_bar.visible = editor.visible) + menu_bar.visible = editor.visible + + +#region VIEW MENU METHODS func reset_view() -> void: center = Vector2(0.5, 0.5) @@ -256,9 +232,7 @@ func reset_view() -> void: func set_view_mode(id:int) -> void: if id == view_mode: return - $ContextMenu/View.set_item_checked(view_mode, false) view_mode = id - $ContextMenu/View.set_item_checked(view_mode, true) material.set_shader_parameter("mode", view_mode) mm_globals.set_config("preview"+config_var_suffix+"_view_mode", view_mode) @@ -267,23 +241,6 @@ func get_view_mode() -> int: return view_mode -func _on_Guides_id_pressed(id): - if id == 1000: - var color_picker_popup = preload("res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn").instantiate() - add_child(color_picker_popup) - var color_picker = color_picker_popup.get_node("ColorPicker") - color_picker.color = $Guides.color - color_picker.connect("color_changed",Callable($Guides,"set_color")) - color_picker_popup.position = get_viewport().get_mouse_position() - color_picker_popup.connect("popup_hide",Callable(color_picker_popup,"queue_free")) - color_picker_popup.popup() - else: - $Guides.style = id - -func _on_GridSize_value_changed(value): - $Guides.show_grid(value) - - func set_post_processing(id:int) -> void: current_postprocess_option = id set_generator(generator, output, true) @@ -293,5 +250,8 @@ func set_post_processing(id:int) -> void: func get_post_processing() -> int: return current_postprocess_option +#endregion + + func _on_Preview2D_mouse_entered(): - mm_globals.set_tip_text("#MMB: Pan, Mouse wheel: Zoom, #RMB: Context menu", 3) + mm_globals.set_tip_text("#MMB: Pan, Mouse wheel: Zoom", 3) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 77cdaabe8..4af6ea688 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=26 format=3 uid="uid://b7x7yqgsurxhv"] +[gd_scene load_steps=25 format=3 uid="uid://b7x7yqgsurxhv"] [ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="1"] [ext_resource type="PackedScene" uid="uid://est6pi7xbptp" path="res://material_maker/panels/preview_2d/control_point.tscn" id="2"] @@ -7,7 +7,6 @@ [ext_resource type="PackedScene" uid="uid://djura7a50b2aq" path="res://material_maker/widgets/polygon_edit/polygon_editor.tscn" id="4_gd40d"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/lines.gd" id="5"] [ext_resource type="PackedScene" uid="uid://b08bcbwwosrrk" path="res://material_maker/widgets/splines_edit/splines_editor.tscn" id="5_5hlfo"] -[ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="6"] [ext_resource type="PackedScene" uid="uid://b51634rcdiyr" path="res://material_maker/widgets/pixels_edit/pixels_editor.tscn" id="6_m4663"] [ext_resource type="PackedScene" uid="uid://dicq2cut03ved" path="res://material_maker/widgets/lattice_edit/lattice_editor.tscn" id="7_u2w4r"] [ext_resource type="Texture2D" uid="uid://tfi3spyumjxt" path="res://material_maker/theme/dark/popupmenu_visibility_visible.png" id="11_l5q6b"] @@ -349,52 +348,7 @@ texture = SubResource("4") parent_control = "P1" control_type = 2 -[node name="ContextMenu" type="PopupMenu" parent="." index="19"] -item_count = 1 -item_0/text = "Reset view" - -[node name="View" type="PopupMenu" parent="ContextMenu" index="3"] -item_count = 5 -item_0/text = "Extend" -item_0/checkable = 2 -item_0/checked = true -item_1/text = "Repeat" -item_1/checkable = 2 -item_1/id = 1 -item_2/text = "Clamp" -item_2/checkable = 2 -item_2/id = 2 -item_3/text = "Temporal AA" -item_3/checkable = 2 -item_3/id = 3 -item_4/text = "Temporal AA 2.2" -item_4/checkable = 2 -item_4/id = 4 - -[node name="Guides" type="PopupMenu" parent="ContextMenu" index="4"] - -[node name="Grid" type="Popup" parent="ContextMenu/Guides" index="3"] - -[node name="Panel" type="PanelContainer" parent="ContextMenu/Guides/Grid" index="0"] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 - -[node name="GridSize" parent="ContextMenu/Guides/Grid/Panel" index="0" instance=ExtResource("6")] -layout_mode = 2 -value = 4.0 -min_value = 2.0 -max_value = 64.0 -step = 1.0 -float_only = true - -[node name="Export" type="PopupMenu" parent="ContextMenu" index="5"] - -[node name="Reference" type="PopupMenu" parent="ContextMenu" index="6"] - -[node name="PostProcess" type="PopupMenu" parent="ContextMenu" index="7"] - -[node name="Accumulate" type="SubViewport" parent="." index="20"] +[node name="Accumulate" type="SubViewport" parent="." index="19"] disable_3d = true handle_input_locally = false gui_snap_controls_to_pixels = false @@ -407,7 +361,7 @@ material = SubResource("6") offset_right = 40.0 offset_bottom = 40.0 -[node name="ComplexParameters" type="OptionButton" parent="." index="21"] +[node name="ComplexParameters" type="OptionButton" parent="." index="20"] visible = false layout_mode = 1 anchors_preset = 1 @@ -417,7 +371,7 @@ offset_left = -32.0 offset_bottom = 20.0 grow_horizontal = 0 -[node name="MenuBar" type="ScrollContainer" parent="." index="22"] +[node name="MenuBar" type="ScrollContainer" parent="." index="21"] unique_name_in_owner = true clip_contents = false layout_mode = 1 @@ -441,9 +395,10 @@ layout_mode = 2 [node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0"] layout_mode = 2 +tooltip_text = "View" +theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 -text = "View" icon = ExtResource("11_l5q6b") script = ExtResource("12_nrhap") @@ -542,9 +497,10 @@ layout_mode = 2 [node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] layout_mode = 2 +tooltip_text = "Export" +theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 -text = "Export" icon = ExtResource("12_wun6p") script = ExtResource("12_nrhap") @@ -685,13 +641,6 @@ autowrap_mode = 1 [connection signal="unhandled_event" from="SplinesEditor" to="." method="_on_gui_input"] [connection signal="unhandled_event" from="PixelsEditor" to="." method="_on_gui_input"] [connection signal="unhandled_event" from="LatticeEditor" to="." method="_on_gui_input"] -[connection signal="id_pressed" from="ContextMenu" to="." method="_on_ContextMenu_id_pressed"] -[connection signal="id_pressed" from="ContextMenu/View" to="." method="_on_View_id_pressed"] -[connection signal="id_pressed" from="ContextMenu/Guides" to="." method="_on_Guides_id_pressed"] -[connection signal="value_changed" from="ContextMenu/Guides/Grid/Panel/GridSize" to="." method="_on_GridSize_value_changed"] -[connection signal="id_pressed" from="ContextMenu/Export" to="." method="_on_Export_id_pressed"] -[connection signal="id_pressed" from="ContextMenu/Reference" to="." method="_on_Reference_id_pressed"] -[connection signal="id_pressed" from="ContextMenu/PostProcess" to="." method="_on_PostProcess_id_pressed"] [connection signal="item_selected" from="ComplexParameters" to="." method="_on_complex_parameters_item_selected"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ResetViewButton" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_reset_view_button_pressed"] [connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ViewMode" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_view_mode_item_selected"] diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index 02ea27ebf..065b8a76b 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -643,6 +643,7 @@ MM_PanelMenuBackground/base_type = &"ScrollContainer" MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_b7fkf") MM_PanelMenuBar/base_type = &"PanelContainer" MM_PanelMenuBar/styles/panel = SubResource("StyleBoxFlat_pq4ta") +MM_PanelMenuButton/base_type = &"Button" MM_PanelMenuSubPanel/base_type = &"PanelContainer" MM_PanelMenuSubPanel/styles/panel = SubResource("StyleBoxFlat_qhlqs") MM_PanelMenuSubPanelLabel/base_type = &"Label" diff --git a/material_maker/widgets/pixels_edit/pixels_editor.gd b/material_maker/widgets/pixels_edit/pixels_editor.gd index 6aa217812..8950a1364 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.gd +++ b/material_maker/widgets/pixels_edit/pixels_editor.gd @@ -1,43 +1,53 @@ extends "res://material_maker/widgets/pixels_edit/pixels_view.gd" -var current_color : int = -1 +var current_color: int = -1 +@onready var menu_bar: Control = $PixelMenu +@onready var colors: Control = %Colors signal value_changed(value : MMPixels) signal unhandled_event(event : InputEvent) +func _ready() -> void: + %SettingsPanel.pixel_editor = self + + if get_parent().has_method("add_menu_bar"): + menu_bar.get_parent().remove_child(menu_bar) + get_parent().add_menu_bar(menu_bar, self) + + func set_pixels(p : MMPixels) -> void: pixels = p queue_redraw() update_color_buttons() - %SettingsPanel.visible = false + func update_color_buttons() -> void: var palette_size : int = pixels.palette.size() - var button_count : int = %Colors.get_child_count() + var button_count : int = colors.get_child_count() if palette_size < button_count: while button_count > palette_size: button_count -= 1 - var color_button : Node = %Colors.get_child(button_count) - %Colors.remove_child(color_button) + var color_button : Node = colors.get_child(button_count) + colors.remove_child(color_button) color_button.free() - elif palette_size > %Colors.get_child_count(): - while %Colors.get_child_count() < palette_size: + elif palette_size > colors.get_child_count(): + while colors.get_child_count() < palette_size: var color_button : ColorPickerButton = ColorPickerButton.new() - color_button.custom_minimum_size = Vector2i(16, 16) + color_button.custom_minimum_size = Vector2i(25, 25) color_button.toggle_mode = true color_button.button_mask = MOUSE_BUTTON_MASK_RIGHT - %Colors.add_child(color_button) + colors.add_child(color_button) color_button.focus_entered.connect(self.set_current_color.bind(button_count)) color_button.color_changed.connect(self.set_palette_color.bind(button_count)) button_count += 1 for ci in palette_size: - %Colors.get_child(ci).color = pixels.palette[ci] + colors.get_child(ci).color = pixels.palette[ci] if current_color < 0 or current_color >= palette_size: current_color = 0 - #%Colors.get_child(current_color).set_focus() = + #colors.get_child(current_color).set_focus() = func set_current_color(c : int) -> void: current_color = c @@ -89,16 +99,3 @@ func setup_control(g : MMGenBase, param_defs : Array) -> void: func control_update_parameter(_value : MMPixels): generator.set_parameter(parameter_name, pixels.serialize()) - -func _on_settings_button_pressed(): - var settings_panel : Control = %SettingsPanel - settings_panel.visible = not settings_panel.visible - if settings_panel.visible: - %Width.value = float(pixels.size.x) - %Height.value = float(pixels.size.y) - %BPP.value = float(pixels.bpp) - else: - pixels.set_size(int(%Width.value), int(%Height.value), int(%BPP.value)) - queue_redraw() - update_color_buttons() - self.value_changed.emit(pixels) diff --git a/material_maker/widgets/pixels_edit/pixels_editor.tscn b/material_maker/widgets/pixels_edit/pixels_editor.tscn index 386794f7c..36c0e76c3 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.tscn +++ b/material_maker/widgets/pixels_edit/pixels_editor.tscn @@ -1,9 +1,11 @@ -[gd_scene load_steps=6 format=3 uid="uid://b51634rcdiyr"] +[gd_scene load_steps=8 format=3 uid="uid://b51634rcdiyr"] [ext_resource type="PackedScene" uid="uid://yeaj0tj7b08i" path="res://material_maker/widgets/curve_edit/curve_view.tscn" id="1_07x6a"] [ext_resource type="Script" path="res://material_maker/widgets/pixels_edit/pixels_editor.gd" id="2_bpua1"] [ext_resource type="Texture2D" uid="uid://cvorvnes6fiq7" path="res://material_maker/icons/icons.svg" id="3_hp3rp"] +[ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="4_xknkb"] [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="4_ymoey"] +[ext_resource type="Script" path="res://material_maker/widgets/pixels_edit/settings_panel.gd" id="5_t0t7h"] [sub_resource type="AtlasTexture" id="AtlasTexture_01pt6"] atlas = ExtResource("3_hp3rp") @@ -22,76 +24,81 @@ draw_area = true auto_rescale = true alpha = 1.0 -[node name="UI" type="HBoxContainer" parent="." index="0"] -layout_mode = 1 +[node name="PixelMenu" type="PanelContainer" parent="." index="0"] +layout_mode = 0 offset_right = 40.0 -offset_bottom = 40.0 +offset_bottom = 20.0 +theme_type_variation = &"MM_PanelMenuBar" -[node name="Colors" type="GridContainer" parent="UI" index="0"] -unique_name_in_owner = true -layout_mode = 2 -theme_override_constants/h_separation = 0 -theme_override_constants/v_separation = 0 -columns = 2 - -[node name="Settings" type="VBoxContainer" parent="UI" index="1"] +[node name="UI" type="HBoxContainer" parent="PixelMenu" index="0"] layout_mode = 2 -[node name="SettingsButton" type="TextureButton" parent="UI/Settings" index="0"] +[node name="PixelSettings" type="Button" parent="PixelMenu/UI" index="0"] layout_mode = 2 -size_flags_horizontal = 0 -texture_normal = SubResource("AtlasTexture_01pt6") +theme_type_variation = &"MM_PanelMenuButton" +toggle_mode = true +icon = SubResource("AtlasTexture_01pt6") +script = ExtResource("4_xknkb") -[node name="SettingsPanel" type="PanelContainer" parent="UI/Settings" index="1"] +[node name="SettingsPanel" type="PanelContainer" parent="PixelMenu/UI/PixelSettings" index="0"] unique_name_in_owner = true -visible = false layout_mode = 2 - -[node name="GridContainer" type="GridContainer" parent="UI/Settings/SettingsPanel" index="0"] +offset_left = 10.0 +offset_top = 39.0 +offset_right = 126.0 +offset_bottom = 124.0 +theme_type_variation = &"MM_PanelMenuSubPanel" +script = ExtResource("5_t0t7h") + +[node name="Grid" type="GridContainer" parent="PixelMenu/UI/PixelSettings/SettingsPanel" index="0"] layout_mode = 2 columns = 2 -[node name="WidthLabel" type="Label" parent="UI/Settings/SettingsPanel/GridContainer" index="0"] +[node name="WidthLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="0"] layout_mode = 2 text = "Width:" -[node name="Width" parent="UI/Settings/SettingsPanel/GridContainer" index="1" instance=ExtResource("4_ymoey")] -unique_name_in_owner = true +[node name="Width" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="1" instance=ExtResource("4_ymoey")] layout_mode = 2 -text = "8" value = 8.0 min_value = 2.0 max_value = 32.0 step = 1.0 float_only = true -[node name="HeightLabel" type="Label" parent="UI/Settings/SettingsPanel/GridContainer" index="2"] +[node name="HeightLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="2"] layout_mode = 2 text = "Height:" -[node name="Height" parent="UI/Settings/SettingsPanel/GridContainer" index="3" instance=ExtResource("4_ymoey")] -unique_name_in_owner = true +[node name="Height" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="3" instance=ExtResource("4_ymoey")] layout_mode = 2 -text = "8" value = 8.0 min_value = 2.0 max_value = 32.0 step = 1.0 float_only = true -[node name="BPPLabel" type="Label" parent="UI/Settings/SettingsPanel/GridContainer" index="4"] +[node name="BPPLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="4"] layout_mode = 2 text = "BPP:" -[node name="BPP" parent="UI/Settings/SettingsPanel/GridContainer" index="5" instance=ExtResource("4_ymoey")] -unique_name_in_owner = true +[node name="BPP" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="5" instance=ExtResource("4_ymoey")] layout_mode = 2 -text = "1" value = 1.0 min_value = 1.0 max_value = 4.0 step = 1.0 float_only = true +[node name="VSeparator" type="VSeparator" parent="PixelMenu/UI" index="1"] +layout_mode = 2 +theme_override_constants/separation = 0 + +[node name="Colors" type="BoxContainer" parent="PixelMenu/UI" index="2"] +unique_name_in_owner = true +layout_mode = 2 + [connection signal="gui_input" from="." to="." method="_on_PixelsEditor_gui_input"] -[connection signal="pressed" from="UI/Settings/SettingsButton" to="." method="_on_settings_button_pressed"] +[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Width" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_width_value_changed"] +[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Height" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_height_value_changed"] +[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/BPP" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_bpp_value_changed"] diff --git a/material_maker/widgets/pixels_edit/settings_panel.gd b/material_maker/widgets/pixels_edit/settings_panel.gd new file mode 100644 index 000000000..18626b47d --- /dev/null +++ b/material_maker/widgets/pixels_edit/settings_panel.gd @@ -0,0 +1,28 @@ +extends PanelContainer + +var pixel_editor: Control = null + + +func _open() -> void: + $Grid/Width.value = float(pixel_editor.pixels.size.x) + $Grid/Height.value = float(pixel_editor.pixels.size.y) + $Grid/BPP.value = float(pixel_editor.pixels.bpp) + + +func _on_width_value_changed(value: Variant) -> void: + update_from_values() + + +func _on_height_value_changed(value: Variant) -> void: + update_from_values() + + +func _on_bpp_value_changed(value: Variant) -> void: + update_from_values() + + +func update_from_values() -> void: + pixel_editor.pixels.set_size(int($Grid/Width.value), int($Grid/Height.value), int($Grid/BPP.value)) + pixel_editor.queue_redraw() + pixel_editor.update_color_buttons() + pixel_editor.value_changed.emit(pixel_editor.pixels) From 265af536f89a6202de71ab37ecd485965d69da83 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Tue, 20 Aug 2024 13:16:24 +0200 Subject: [PATCH 06/31] Improvements to Pixel Menu Bar --- .../widgets/pixels_edit/pixels_editor.tscn | 28 +++++++++---------- .../widgets/pixels_edit/settings_panel.gd | 11 +++++--- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/material_maker/widgets/pixels_edit/pixels_editor.tscn b/material_maker/widgets/pixels_edit/pixels_editor.tscn index 36c0e76c3..0c41bfbde 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.tscn +++ b/material_maker/widgets/pixels_edit/pixels_editor.tscn @@ -52,13 +52,16 @@ script = ExtResource("5_t0t7h") [node name="Grid" type="GridContainer" parent="PixelMenu/UI/PixelSettings/SettingsPanel" index="0"] layout_mode = 2 -columns = 2 -[node name="WidthLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="0"] +[node name="WidthHeightLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="0"] layout_mode = 2 -text = "Width:" +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Width and Height" -[node name="Width" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="1" instance=ExtResource("4_ymoey")] +[node name="Box" type="BoxContainer" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="1"] +layout_mode = 2 + +[node name="Width" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Box" index="0" instance=ExtResource("4_ymoey")] layout_mode = 2 value = 8.0 min_value = 2.0 @@ -66,11 +69,7 @@ max_value = 32.0 step = 1.0 float_only = true -[node name="HeightLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="2"] -layout_mode = 2 -text = "Height:" - -[node name="Height" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="3" instance=ExtResource("4_ymoey")] +[node name="Height" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Box" index="1" instance=ExtResource("4_ymoey")] layout_mode = 2 value = 8.0 min_value = 2.0 @@ -78,11 +77,12 @@ max_value = 32.0 step = 1.0 float_only = true -[node name="BPPLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="4"] +[node name="BPPLabel" type="Label" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="2"] layout_mode = 2 -text = "BPP:" +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Bits Per Pixel" -[node name="BPP" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="5" instance=ExtResource("4_ymoey")] +[node name="BPP" parent="PixelMenu/UI/PixelSettings/SettingsPanel/Grid" index="3" instance=ExtResource("4_ymoey")] layout_mode = 2 value = 1.0 min_value = 1.0 @@ -99,6 +99,6 @@ unique_name_in_owner = true layout_mode = 2 [connection signal="gui_input" from="." to="." method="_on_PixelsEditor_gui_input"] -[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Width" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_width_value_changed"] -[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Height" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_height_value_changed"] +[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Box/Width" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_width_value_changed"] +[connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Box/Height" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_height_value_changed"] [connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/BPP" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_bpp_value_changed"] diff --git a/material_maker/widgets/pixels_edit/settings_panel.gd b/material_maker/widgets/pixels_edit/settings_panel.gd index 18626b47d..0481ec10c 100644 --- a/material_maker/widgets/pixels_edit/settings_panel.gd +++ b/material_maker/widgets/pixels_edit/settings_panel.gd @@ -2,11 +2,14 @@ extends PanelContainer var pixel_editor: Control = null +@onready var width := $Grid/Box/Width +@onready var height := $Grid/Box/Height +@onready var bpp := $Grid/BPP func _open() -> void: - $Grid/Width.value = float(pixel_editor.pixels.size.x) - $Grid/Height.value = float(pixel_editor.pixels.size.y) - $Grid/BPP.value = float(pixel_editor.pixels.bpp) + width.value = float(pixel_editor.pixels.size.x) + height.value = float(pixel_editor.pixels.size.y) + bpp.value = float(pixel_editor.pixels.bpp) func _on_width_value_changed(value: Variant) -> void: @@ -22,7 +25,7 @@ func _on_bpp_value_changed(value: Variant) -> void: func update_from_values() -> void: - pixel_editor.pixels.set_size(int($Grid/Width.value), int($Grid/Height.value), int($Grid/BPP.value)) + pixel_editor.pixels.set_size(int(width.value), int(height.value), int(bpp.value)) pixel_editor.queue_redraw() pixel_editor.update_color_buttons() pixel_editor.value_changed.emit(pixel_editor.pixels) From 0c2954eb7a36978a41ab778aa1ed08942c7a6843 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Tue, 20 Aug 2024 13:48:13 +0200 Subject: [PATCH 07/31] Implement new splines menu --- .../widgets/splines_edit/splines_editor.gd | 32 ++++- .../widgets/splines_edit/splines_editor.tscn | 135 ++++++++++-------- 2 files changed, 103 insertions(+), 64 deletions(-) diff --git a/material_maker/widgets/splines_edit/splines_editor.gd b/material_maker/widgets/splines_edit/splines_editor.gd index b18c81401..558d2bf48 100644 --- a/material_maker/widgets/splines_edit/splines_editor.gd +++ b/material_maker/widgets/splines_edit/splines_editor.gd @@ -9,13 +9,25 @@ var selected_control_points : Array[int] = [] signal value_changed(value : MMSplines) signal unhandled_event(event : InputEvent) +@onready var menu_bar := $SplinesMenu + +enum Modes {DRAW, SELECT} +var mode := Modes.DRAW + +var progressive := false + func _ready(): + %DrawMode.button_group.pressed.connect(func(button):mode = Modes.DRAW if button.name == "DrawMode" else Modes.SELECT) + if get_parent().has_method("add_menu_bar"): + menu_bar.get_parent().remove_child(menu_bar) + get_parent().add_menu_bar(menu_bar, self) + super._ready() update_controls() func _draw(): - if %Progressive.button_pressed and selected_control_points.size() > 1: + if progressive and selected_control_points.size() > 1: for c in control_points.get_children(): if c.is_selected: var index = 1+selected_control_points.find(c.get_meta("point")) @@ -55,17 +67,20 @@ func update_controls() -> void: i += 1 emit_signal("value_changed", splines) + func update_control_positions() -> void: for control_point in control_points.get_children(): var pi : int = control_point.get_meta("point") control_point.setpos(transform_point(splines.get_point_by_index(pi).position)) + func is_editing() -> bool: for c in control_points.get_children(): if c.is_moving: return true return false + func _on_ControlPoint_moved(index): var control_point : Control = control_points.get_child(index) var spline_point_index = control_point.get_meta("point") @@ -81,6 +96,7 @@ func _on_ControlPoint_moved(index): queue_redraw() emit_signal("value_changed", splines) + func _on_ControlPoint_selected(index : int, is_control_pressed : bool, is_shift_pressed : bool): var cp = control_points.get_child(index) if is_control_pressed: @@ -127,7 +143,7 @@ func _on_reverse_selection_pressed(): queue_redraw() func _on_width_value_changed(value): - splines.set_points_width(get_selection(), value, %Progressive.button_pressed) + splines.set_points_width(get_selection(), value, progressive) emit_signal("value_changed", splines) func _on_offset_value_changed(value): @@ -207,15 +223,22 @@ func handle_draw_mode(event : InputEvent) -> bool: return true return false + +func _on_progressive_toggled(toggled_on: bool) -> void: + progressive = toggled_on + queue_redraw() + + func handle_select_mode(event : InputEvent) -> bool: return false + func _on_SplinesEditor_gui_input(event : InputEvent): - if %DrawMode.button_pressed: + if mode == Modes.DRAW: if handle_draw_mode(event): queue_redraw() return - elif %DrawMode.button_pressed: + elif mode == Modes.SELECT: if handle_select_mode(event): queue_redraw() return @@ -256,4 +279,3 @@ func setup_control(g : MMGenBase, param_defs : Array) -> void: func control_update_parameter(value : MMSplines): generator.set_parameter(parameter_name, splines.serialize()) - diff --git a/material_maker/widgets/splines_edit/splines_editor.tscn b/material_maker/widgets/splines_edit/splines_editor.tscn index 40a14941c..80fbf033e 100644 --- a/material_maker/widgets/splines_edit/splines_editor.tscn +++ b/material_maker/widgets/splines_edit/splines_editor.tscn @@ -1,18 +1,17 @@ -[gd_scene load_steps=10 format=3 uid="uid://b08bcbwwosrrk"] +[gd_scene load_steps=13 format=3 uid="uid://b08bcbwwosrrk"] [ext_resource type="PackedScene" uid="uid://yeaj0tj7b08i" path="res://material_maker/widgets/curve_edit/curve_view.tscn" id="1_a4o1g"] [ext_resource type="Script" path="res://material_maker/widgets/splines_edit/splines_editor.gd" id="2_tepru"] [ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="3_lfcdr"] [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="4_2po4g"] - -[sub_resource type="ButtonGroup" id="ButtonGroup_66qgq"] +[ext_resource type="Texture2D" uid="uid://d044i7mtagf51" path="res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png" id="5_o8gcm"] +[ext_resource type="Texture2D" uid="uid://r18qvh06tu10" path="res://material_maker/theme/dark/vslider_grabber.png" id="6_bja86"] +[ext_resource type="Texture2D" uid="uid://lgj5c6kuqwit" path="res://material_maker/theme/dark/windowdialog_close.png" id="6_vsfaf"] +[ext_resource type="Texture2D" uid="uid://2dheuv4p0d2d" path="res://material_maker/theme/dark/tabcontainer_increment_highlight.png" id="7_vr6t5"] +[ext_resource type="Texture2D" uid="uid://dysx1qjceb1od" path="res://material_maker/theme/dark/optionbutton_arrow.png" id="8_olqcj"] [sub_resource type="ButtonGroup" id="ButtonGroup_w4n15"] -[sub_resource type="AtlasTexture" id="AtlasTexture_t30sn"] -atlas = ExtResource("3_lfcdr") -region = Rect2(192, 128, 16, 16) - [sub_resource type="AtlasTexture" id="AtlasTexture_b45mn"] atlas = ExtResource("3_lfcdr") region = Rect2(192, 96, 16, 16) @@ -40,94 +39,112 @@ anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 -[node name="Buttons" type="PanelContainer" parent="." index="1"] -layout_mode = 1 -anchors_preset = -1 -offset_left = 2.0 -offset_top = 2.0 -offset_right = 86.0 -offset_bottom = 26.0 +[node name="SplinesMenu" type="PanelContainer" parent="." index="1"] +layout_mode = 0 +offset_right = 36.0 +offset_bottom = 28.0 +theme_type_variation = &"MM_PanelMenuBar" -[node name="HSizer" type="HBoxContainer" parent="Buttons" index="0"] +[node name="HBox" type="HBoxContainer" parent="SplinesMenu" index="0"] layout_mode = 2 -[node name="DrawMode" type="Button" parent="Buttons/HSizer" index="0"] +[node name="DrawMode" type="Button" parent="SplinesMenu/HBox" index="0"] unique_name_in_owner = true +custom_minimum_size = Vector2(25, 0) layout_mode = 2 +tooltip_text = "Draw" +theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true -button_group = SubResource("ButtonGroup_66qgq") -text = "D" +button_pressed = true +button_group = SubResource("ButtonGroup_w4n15") +icon = ExtResource("5_o8gcm") +icon_alignment = 1 -[node name="SelectMode" type="Button" parent="Buttons/HSizer" index="1"] +[node name="SelectMode" type="Button" parent="SplinesMenu/HBox" index="1"] unique_name_in_owner = true +custom_minimum_size = Vector2(25, 0) layout_mode = 2 +tooltip_text = "Select" +theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_group = SubResource("ButtonGroup_w4n15") -text = "S" +icon = ExtResource("6_bja86") +icon_alignment = 1 -[node name="Spacer1" type="Control" parent="Buttons/HSizer" index="2"] +[node name="VSeparator" type="VSeparator" parent="SplinesMenu/HBox" index="2"] +custom_minimum_size = Vector2(0, 15) layout_mode = 2 +size_flags_vertical = 4 +theme_override_constants/separation = 0 -[node name="DeleteControlPoints3" type="Button" parent="Buttons/HSizer" index="3"] +[node name="DeleteControlPoints" type="Button" parent="SplinesMenu/HBox" index="3"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 -icon = SubResource("AtlasTexture_t30sn") +tooltip_text = "Delete Point" +theme_type_variation = &"MM_PanelMenuButton" +icon = ExtResource("6_vsfaf") +icon_alignment = 1 -[node name="Spacer2" type="Control" parent="Buttons/HSizer" index="4"] -layout_mode = 2 - -[node name="UnlinkControlPoints" type="Button" parent="Buttons/HSizer" index="5"] +[node name="UnlinkControlPoints" type="Button" parent="SplinesMenu/HBox" index="4"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 +tooltip_text = "Unlink Points" +theme_type_variation = &"MM_PanelMenuButton" icon = SubResource("AtlasTexture_b45mn") +icon_alignment = 1 -[node name="LinkControlPoints" type="Button" parent="Buttons/HSizer" index="6"] +[node name="LinkControlPoints" type="Button" parent="SplinesMenu/HBox" index="5"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 +tooltip_text = "Link Points" +theme_type_variation = &"MM_PanelMenuButton" icon = SubResource("AtlasTexture_3lo2j") +icon_alignment = 1 -[node name="Editors" type="PanelContainer" parent="." index="2"] -layout_mode = 1 -anchors_preset = -1 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_left = 2.0 -offset_top = -31.0 -offset_right = 67.0 -offset_bottom = -2.0 -grow_vertical = 0 - -[node name="HSizer" type="HBoxContainer" parent="Editors" index="0"] +[node name="VSeparator2" type="VSeparator" parent="SplinesMenu/HBox" index="6"] +custom_minimum_size = Vector2(0, 15) layout_mode = 2 +size_flags_vertical = 4 +theme_override_constants/separation = 0 -[node name="Progressive" type="Button" parent="Editors/HSizer" index="0"] -unique_name_in_owner = true +[node name="Progressive" type="Button" parent="SplinesMenu/HBox" index="7"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 +tooltip_text = "Progressive" toggle_mode = true -text = ">" +icon = ExtResource("7_vr6t5") +icon_alignment = 1 -[node name="ReverseSelection" type="Button" parent="Editors/HSizer" index="1"] +[node name="ReverseSelection" type="Button" parent="SplinesMenu/HBox" index="8"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 -text = "!" +tooltip_text = "Reverse Order" +icon = ExtResource("8_olqcj") +icon_alignment = 1 -[node name="Spacer1" type="Control" parent="Editors/HSizer" index="2"] +[node name="Spacer1" type="Control" parent="SplinesMenu/HBox" index="9"] layout_mode = 2 -[node name="WidthLabel" type="Label" parent="Editors/HSizer" index="3"] +[node name="WidthLabel" type="Label" parent="SplinesMenu/HBox" index="10"] layout_mode = 2 +theme_type_variation = &"MM_NodePropertyLabel" text = "Width:" -[node name="Width" parent="Editors/HSizer" index="4" instance=ExtResource("4_2po4g")] +[node name="Width" parent="SplinesMenu/HBox" index="11" instance=ExtResource("4_2po4g")] layout_mode = 2 value = 0.05 max_value = 0.2 float_only = true -[node name="Spacer2" type="Control" parent="Editors/HSizer" index="5"] +[node name="Spacer2" type="Control" parent="SplinesMenu/HBox" index="12"] layout_mode = 2 -[node name="OffsetLabel" type="Label" parent="Editors/HSizer" index="6"] +[node name="OffsetLabel" type="Label" parent="SplinesMenu/HBox" index="13"] layout_mode = 2 -text = "U:" +theme_type_variation = &"MM_NodePropertyLabel" +text = "Offset:" -[node name="Offset" parent="Editors/HSizer" index="7" instance=ExtResource("4_2po4g")] +[node name="Offset" parent="SplinesMenu/HBox" index="14" instance=ExtResource("4_2po4g")] layout_mode = 2 value = 0.0 max_value = 10.0 @@ -135,10 +152,10 @@ step = 0.01 float_only = true [connection signal="gui_input" from="." to="." method="_on_SplinesEditor_gui_input"] -[connection signal="pressed" from="Buttons/HSizer/DeleteControlPoints3" to="." method="_on_delete_control_points_pressed"] -[connection signal="pressed" from="Buttons/HSizer/UnlinkControlPoints" to="." method="_on_unlink_control_points_pressed"] -[connection signal="pressed" from="Buttons/HSizer/LinkControlPoints" to="." method="_on_link_control_points_pressed"] -[connection signal="pressed" from="Editors/HSizer/Progressive" to="." method="queue_redraw"] -[connection signal="pressed" from="Editors/HSizer/ReverseSelection" to="." method="_on_reverse_selection_pressed"] -[connection signal="value_changed" from="Editors/HSizer/Width" to="." method="_on_width_value_changed"] -[connection signal="value_changed" from="Editors/HSizer/Offset" to="." method="_on_offset_value_changed"] +[connection signal="pressed" from="SplinesMenu/HBox/DeleteControlPoints" to="." method="_on_delete_control_points_pressed"] +[connection signal="pressed" from="SplinesMenu/HBox/UnlinkControlPoints" to="." method="_on_unlink_control_points_pressed"] +[connection signal="pressed" from="SplinesMenu/HBox/LinkControlPoints" to="." method="_on_link_control_points_pressed"] +[connection signal="toggled" from="SplinesMenu/HBox/Progressive" to="." method="_on_progressive_toggled"] +[connection signal="pressed" from="SplinesMenu/HBox/ReverseSelection" to="." method="_on_reverse_selection_pressed"] +[connection signal="value_changed" from="SplinesMenu/HBox/Width" to="." method="_on_width_value_changed"] +[connection signal="value_changed" from="SplinesMenu/HBox/Offset" to="." method="_on_offset_value_changed"] From 72be5d87fd45d0d8364eb396c4ce69c2d6c5b0fe Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Tue, 20 Aug 2024 14:04:17 +0200 Subject: [PATCH 08/31] Small fixes --- material_maker/panels/preview_2d/export_menu.gd | 3 ++- material_maker/panels/preview_2d/preview_2d.gd | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/material_maker/panels/preview_2d/export_menu.gd b/material_maker/panels/preview_2d/export_menu.gd index 9cf278bb3..314e17186 100644 --- a/material_maker/panels/preview_2d/export_menu.gd +++ b/material_maker/panels/preview_2d/export_menu.gd @@ -102,8 +102,9 @@ func _on_image_pressed() -> void: if path: owner.export_as_image_file(path, 64 << %Resolution.selected) - update() export_notification("Exported to " + path) + await get_tree().create_timer(0.5).timeout + update() func _on_animation_pressed() -> void: diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index f1f0164ce..7687517e1 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -195,7 +195,7 @@ func export_as_image_file(file_name : String, image_size : int) -> void: create_image("save_to_file", [ file_name, is_greyscale ], image_size) last_export_filename = file_name last_export_size = image_size - $ContextMenu.set_item_disabled($ContextMenu.get_item_index(MENU_EXPORT_AGAIN), false) + func export_to_reference(resolution_id : int): var texture : ImageTexture = ImageTexture.new() From 52c7419471b53930c6ab0281d0c5692ede2c2e69 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 11:47:46 +0200 Subject: [PATCH 09/31] Implement new Lattice Menu Bar --- .../widgets/lattice_edit/lattice_editor.gd | 14 +++++++-- .../widgets/lattice_edit/lattice_editor.tscn | 30 ++++++++++++++----- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/material_maker/widgets/lattice_edit/lattice_editor.gd b/material_maker/widgets/lattice_edit/lattice_editor.gd index 95bcd7efd..c786c7a4f 100644 --- a/material_maker/widgets/lattice_edit/lattice_editor.gd +++ b/material_maker/widgets/lattice_edit/lattice_editor.gd @@ -2,7 +2,8 @@ extends "res://material_maker/widgets/lattice_edit/lattice_view.gd" @onready var control_points : Control = $ControlPoints - +@onready var size_edit: Control = %Size +@onready var menu_bar: Control = $LatticeMenu signal value_changed(value : MMLattice) signal unhandled_event(event : InputEvent) @@ -10,14 +11,21 @@ signal unhandled_event(event : InputEvent) func _ready(): super._ready() + + if get_parent().has_method("add_menu_bar"): + menu_bar.get_parent().remove_child(menu_bar) + get_parent().add_menu_bar(menu_bar, self) + update_controls() + func set_lattice(p : MMLattice) -> void: lattice = p - $Size.value = lattice.size.x + size_edit.value = lattice.size.x queue_redraw() update_controls() + func update_controls() -> void: for c in control_points.get_children(): c.queue_free() @@ -30,12 +38,14 @@ func update_controls() -> void: control_point.connect("moved", Callable(self, "_on_ControlPoint_moved")) emit_signal("value_changed", lattice) + func is_editing() -> bool: for c in control_points.get_children(): if c.is_moving: return true return false + func _on_size_value_changed(value): if value != lattice.size.x: lattice.resize(value, value) diff --git a/material_maker/widgets/lattice_edit/lattice_editor.tscn b/material_maker/widgets/lattice_edit/lattice_editor.tscn index 7d8adbd39..bc3295d9c 100644 --- a/material_maker/widgets/lattice_edit/lattice_editor.tscn +++ b/material_maker/widgets/lattice_edit/lattice_editor.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://dicq2cut03ved"] +[gd_scene load_steps=4 format=3 uid="uid://dicq2cut03ved"] [ext_resource type="PackedScene" uid="uid://yeaj0tj7b08i" path="res://material_maker/widgets/curve_edit/curve_view.tscn" id="1_emrdx"] [ext_resource type="Script" path="res://material_maker/widgets/lattice_edit/lattice_editor.gd" id="2_aqo66"] +[ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="3_xfsm8"] [node name="LatticeEditor" instance=ExtResource("1_emrdx")] offset_left = 0.0 @@ -23,13 +24,28 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -[node name="Size" type="SpinBox" parent="." index="1"] -layout_mode = 1 -offset_right = 83.0625 -offset_bottom = 31.0 +[node name="LatticeMenu" type="PanelContainer" parent="." index="1"] +layout_mode = 0 +offset_right = 92.0 +offset_bottom = 27.0 +theme_type_variation = &"MM_PanelMenuBar" + +[node name="HBox" type="HBoxContainer" parent="LatticeMenu" index="0"] +layout_mode = 2 + +[node name="Label" type="Label" parent="LatticeMenu/HBox" index="0"] +layout_mode = 2 +theme_type_variation = &"MM_NodePropertyLabel" +text = "Slices:" + +[node name="Size" parent="LatticeMenu/HBox" index="1" instance=ExtResource("3_xfsm8")] +unique_name_in_owner = true +layout_mode = 2 +value = 1.0 min_value = 1.0 max_value = 8.0 -value = 1.0 +step = 1.0 +float_only = true [connection signal="gui_input" from="." to="." method="_on_LatticeEditor_gui_input"] -[connection signal="value_changed" from="Size" to="." method="_on_size_value_changed"] +[connection signal="value_changed" from="LatticeMenu/HBox/Size" to="." method="_on_size_value_changed"] From 0b6a619617d3cbcbb6efa3092ab8b28ce5e151a3 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 12:23:32 +0200 Subject: [PATCH 10/31] Improve Theming of MenuBar (and VSeparators) --- material_maker/theme/modern.tres | 32 +++++++++++++++---- .../widgets/pixels_edit/pixels_editor.tscn | 4 ++- .../widgets/splines_edit/splines_editor.tscn | 26 +++++---------- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index 065b8a76b..eb282110d 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=62 format=3 uid="uid://b628lwfk6ig2c"] +[gd_resource type="Theme" load_steps=63 format=3 uid="uid://b628lwfk6ig2c"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="1_hqoqt"] [ext_resource type="FontFile" uid="uid://btybkvkb8rtol" path="res://material_maker/fonts/DroidSansFallback.ttf" id="2_1xp11"] @@ -357,16 +357,33 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pq4ta"] -content_margin_left = 2.0 -content_margin_top = 2.0 -content_margin_right = 2.0 -content_margin_bottom = 2.0 -bg_color = Color(0.123578, 0.129892, 0.142519, 1) +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0666667, 0.0666667, 0.0784314, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.190762, 0.190762, 0.190762, 1) corner_radius_top_left = 3 corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_eij2n"] +bg_color = Color(0.187176, 0.187176, 0.187176, 1) +border_width_top = 3 +border_width_bottom = 3 +border_color = Color(0.19, 0.19, 0.19, 0) +corner_radius_top_left = 1 +corner_radius_top_right = 1 +corner_radius_bottom_right = 1 +corner_radius_bottom_left = 1 +expand_margin_left = 1.0 +expand_margin_right = 1.0 + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qhlqs"] content_margin_left = 4.0 content_margin_top = 4.0 @@ -644,6 +661,9 @@ MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_b7fkf") MM_PanelMenuBar/base_type = &"PanelContainer" MM_PanelMenuBar/styles/panel = SubResource("StyleBoxFlat_pq4ta") MM_PanelMenuButton/base_type = &"Button" +MM_PanelMenuSeparator/base_type = &"VSeparator" +MM_PanelMenuSeparator/constants/separation = 2 +MM_PanelMenuSeparator/styles/separator = SubResource("StyleBoxFlat_eij2n") MM_PanelMenuSubPanel/base_type = &"PanelContainer" MM_PanelMenuSubPanel/styles/panel = SubResource("StyleBoxFlat_qhlqs") MM_PanelMenuSubPanelLabel/base_type = &"Label" diff --git a/material_maker/widgets/pixels_edit/pixels_editor.tscn b/material_maker/widgets/pixels_edit/pixels_editor.tscn index 0c41bfbde..0eb472162 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.tscn +++ b/material_maker/widgets/pixels_edit/pixels_editor.tscn @@ -34,10 +34,12 @@ theme_type_variation = &"MM_PanelMenuBar" layout_mode = 2 [node name="PixelSettings" type="Button" parent="PixelMenu/UI" index="0"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true icon = SubResource("AtlasTexture_01pt6") +icon_alignment = 1 script = ExtResource("4_xknkb") [node name="SettingsPanel" type="PanelContainer" parent="PixelMenu/UI/PixelSettings" index="0"] @@ -92,7 +94,7 @@ float_only = true [node name="VSeparator" type="VSeparator" parent="PixelMenu/UI" index="1"] layout_mode = 2 -theme_override_constants/separation = 0 +theme_type_variation = &"MM_PanelMenuSeparator" [node name="Colors" type="BoxContainer" parent="PixelMenu/UI" index="2"] unique_name_in_owner = true diff --git a/material_maker/widgets/splines_edit/splines_editor.tscn b/material_maker/widgets/splines_edit/splines_editor.tscn index 80fbf033e..4636bd3ac 100644 --- a/material_maker/widgets/splines_edit/splines_editor.tscn +++ b/material_maker/widgets/splines_edit/splines_editor.tscn @@ -41,8 +41,8 @@ offset_bottom = 40.0 [node name="SplinesMenu" type="PanelContainer" parent="." index="1"] layout_mode = 0 -offset_right = 36.0 -offset_bottom = 28.0 +offset_right = 422.0 +offset_bottom = 33.0 theme_type_variation = &"MM_PanelMenuBar" [node name="HBox" type="HBoxContainer" parent="SplinesMenu" index="0"] @@ -72,10 +72,8 @@ icon = ExtResource("6_bja86") icon_alignment = 1 [node name="VSeparator" type="VSeparator" parent="SplinesMenu/HBox" index="2"] -custom_minimum_size = Vector2(0, 15) layout_mode = 2 -size_flags_vertical = 4 -theme_override_constants/separation = 0 +theme_type_variation = &"MM_PanelMenuSeparator" [node name="DeleteControlPoints" type="Button" parent="SplinesMenu/HBox" index="3"] custom_minimum_size = Vector2(25, 25) @@ -102,10 +100,8 @@ icon = SubResource("AtlasTexture_3lo2j") icon_alignment = 1 [node name="VSeparator2" type="VSeparator" parent="SplinesMenu/HBox" index="6"] -custom_minimum_size = Vector2(0, 15) layout_mode = 2 -size_flags_vertical = 4 -theme_override_constants/separation = 0 +theme_type_variation = &"MM_PanelMenuSeparator" [node name="Progressive" type="Button" parent="SplinesMenu/HBox" index="7"] custom_minimum_size = Vector2(25, 25) @@ -122,29 +118,23 @@ tooltip_text = "Reverse Order" icon = ExtResource("8_olqcj") icon_alignment = 1 -[node name="Spacer1" type="Control" parent="SplinesMenu/HBox" index="9"] -layout_mode = 2 - -[node name="WidthLabel" type="Label" parent="SplinesMenu/HBox" index="10"] +[node name="WidthLabel" type="Label" parent="SplinesMenu/HBox" index="9"] layout_mode = 2 theme_type_variation = &"MM_NodePropertyLabel" text = "Width:" -[node name="Width" parent="SplinesMenu/HBox" index="11" instance=ExtResource("4_2po4g")] +[node name="Width" parent="SplinesMenu/HBox" index="10" instance=ExtResource("4_2po4g")] layout_mode = 2 value = 0.05 max_value = 0.2 float_only = true -[node name="Spacer2" type="Control" parent="SplinesMenu/HBox" index="12"] -layout_mode = 2 - -[node name="OffsetLabel" type="Label" parent="SplinesMenu/HBox" index="13"] +[node name="OffsetLabel" type="Label" parent="SplinesMenu/HBox" index="11"] layout_mode = 2 theme_type_variation = &"MM_NodePropertyLabel" text = "Offset:" -[node name="Offset" parent="SplinesMenu/HBox" index="14" instance=ExtResource("4_2po4g")] +[node name="Offset" parent="SplinesMenu/HBox" index="12" instance=ExtResource("4_2po4g")] layout_mode = 2 value = 0.0 max_value = 10.0 From 1a634f78dcc66164fffb2c00de52dfe538b2d0fe Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 13:07:10 +0200 Subject: [PATCH 11/31] Try to improve theme once more... --- .../panels/preview_2d/preview_2d_panel.gd | 2 +- .../panels/preview_2d/preview_2d_panel.tscn | 8 +++- material_maker/theme/modern.tres | 38 +++++++++++-------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index bb50c1f49..5c190b104 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -11,7 +11,7 @@ extends "res://material_maker/panels/preview_2d/preview_2d.gd" var center : Vector2 = Vector2(0.5, 0.5) var view_scale : float = 1.2 -var view_mode : int = 0 +var view_mode : int = 2 var current_postprocess_option = 0 const POSTPROCESS_OPTIONS : Array = [ diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 4af6ea688..dbd19e021 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -377,7 +377,7 @@ clip_contents = false layout_mode = 1 anchors_preset = 10 anchor_right = 1.0 -offset_bottom = 30.0 +offset_bottom = 28.0 grow_horizontal = 2 theme_type_variation = &"MM_PanelMenuBackground" horizontal_scroll_mode = 3 @@ -394,15 +394,18 @@ theme_type_variation = &"MM_PanelMenuBar" layout_mode = 2 [node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "View" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 +text = "View" icon = ExtResource("11_l5q6b") script = ExtResource("12_nrhap") [node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] +visible = false layout_mode = 0 offset_left = -53.0 offset_top = 34.0 @@ -496,15 +499,18 @@ custom_minimum_size = Vector2(25, 0) layout_mode = 2 [node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] +custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Export" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 +text = "Export" icon = ExtResource("12_wun6p") script = ExtResource("12_nrhap") [node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] +visible = false layout_mode = 0 offset_left = -74.0 offset_top = 36.0 diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index eb282110d..bfa940986 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=63 format=3 uid="uid://b628lwfk6ig2c"] +[gd_resource type="Theme" load_steps=64 format=3 uid="uid://b628lwfk6ig2c"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="1_hqoqt"] [ext_resource type="FontFile" uid="uid://btybkvkb8rtol" path="res://material_maker/fonts/DroidSansFallback.ttf" id="2_1xp11"] @@ -351,26 +351,32 @@ corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_b7fkf"] -content_margin_left = 4.0 -content_margin_top = 4.0 -content_margin_right = 4.0 -content_margin_bottom = 4.0 +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pq4ta"] -content_margin_left = 4.0 -content_margin_top = 4.0 -content_margin_right = 4.0 -content_margin_bottom = 4.0 -bg_color = Color(0.0666667, 0.0666667, 0.0784314, 1) +content_margin_left = 6.0 +content_margin_top = 6.0 +content_margin_right = 6.0 +content_margin_bottom = 6.0 +bg_color = Color(0.081, 0.09145, 0.1, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color(0.190762, 0.190762, 0.190762, 1) -corner_radius_top_left = 3 -corner_radius_top_right = 3 -corner_radius_bottom_right = 3 -corner_radius_bottom_left = 3 +border_color = Color(0.442344, 0.440199, 0.421573, 1) +border_blend = true +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +anti_aliasing = false + +[sub_resource type="FontVariation" id="FontVariation_h5fjs"] +base_font = ExtResource("1_hqoqt") +variation_embolden = 0.37 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_eij2n"] bg_color = Color(0.187176, 0.187176, 0.187176, 1) @@ -661,6 +667,8 @@ MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_b7fkf") MM_PanelMenuBar/base_type = &"PanelContainer" MM_PanelMenuBar/styles/panel = SubResource("StyleBoxFlat_pq4ta") MM_PanelMenuButton/base_type = &"Button" +MM_PanelMenuButton/font_sizes/font_size = 14 +MM_PanelMenuButton/fonts/font = SubResource("FontVariation_h5fjs") MM_PanelMenuSeparator/base_type = &"VSeparator" MM_PanelMenuSeparator/constants/separation = 2 MM_PanelMenuSeparator/styles/separator = SubResource("StyleBoxFlat_eij2n") From 3ced8af6a149b7a2d3dfb547905750700b8ce93b Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 17:03:52 +0200 Subject: [PATCH 12/31] Improve Export menu --- .../panels/preview_2d/export_menu.gd | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/material_maker/panels/preview_2d/export_menu.gd b/material_maker/panels/preview_2d/export_menu.gd index 314e17186..ad876f045 100644 --- a/material_maker/panels/preview_2d/export_menu.gd +++ b/material_maker/panels/preview_2d/export_menu.gd @@ -33,11 +33,14 @@ func _open() -> void: export_notification("") + func update() -> void: if not is_visible_in_tree(): return - %ExportFileResultLabel.text = interpret_file_name(%ExportFile.text) + var file_result := interpret_file_name(%ExportFile.text) + %ExportFileResultLabel.text = file_result + %ExportFileResultLabel.visible = not %ExportFile.text.is_empty() and %ExportFile.text.count("$") != file_result.count("$") func _on_export_folder_text_changed(new_text: String) -> void: @@ -48,10 +51,12 @@ func _on_export_folder_button_pressed() -> void: var file_dialog := preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() file_dialog.access = FileDialog.ACCESS_FILESYSTEM file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR - file_dialog.add_filter("*.png; PNG image file") - file_dialog.add_filter("*.exr; EXR image file") - if mm_globals.config.has_section_key("path", "save_preview"): - file_dialog.current_dir = mm_globals.config.get_value("path", "save_preview") + #file_dialog.add_filter("*.png; PNG image file") + #file_dialog.add_filter("*.exr; EXR image file") + + if %ExportFolder.text: + file_dialog.current_dir = mm_globals.config.get_value("path", %ExportFolder.text) + var files = await file_dialog.select_files() if files.size() == 1: @@ -81,9 +86,14 @@ func _on_image_pressed() -> void: if path.is_empty(): var file_dialog := preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() file_dialog.access = FileDialog.ACCESS_FILESYSTEM - file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR - file_dialog.add_filter("*.png; PNG image file") - file_dialog.add_filter("*.exr; EXR image file") + + if not file_name.is_empty(): + file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR + else: + file_dialog.file_mode = FileDialog.FILE_MODE_SAVE_FILE + file_dialog.add_filter("*.png; PNG image file") + file_dialog.add_filter("*.exr; EXR image file") + if mm_globals.config.has_section_key("path", "save_preview"): file_dialog.current_dir = mm_globals.config.get_value("path", "save_preview") @@ -91,15 +101,14 @@ func _on_image_pressed() -> void: if files.size() > 0: path = files[0] - %ExportFolder.text = path.get_base_dir() - _on_export_folder_text_changed(path.get_base_dir()) - %ExportFolder.tooltip_text = path.get_base_dir() - else: - file_name = interpret_file_name(file_name) + + if file_name: + file_name = interpret_file_name(file_name, path) path = path.path_join(file_name) + if path: owner.export_as_image_file(path, 64 << %Resolution.selected) export_notification("Exported to " + path) @@ -125,8 +134,9 @@ func export_notification(text:String) -> void: %ExportNotificationLabel.visible = not text.is_empty() -func interpret_file_name(file_name: String) -> String: - var path: String = %ExportFolder.text +func interpret_file_name(file_name: String, path:="") -> String: + if path.is_empty(): + path = %ExportFolder.text if owner.generator: file_name = file_name.replace("$node", owner.generator.name) From 8b4212d58feeec293edbdccad12cd3bb6cca5b67 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 17:04:28 +0200 Subject: [PATCH 13/31] Small fixes to preview 2D panel scene Remove prints, add tooltip --- material_maker/panels/preview_2d/preview_2d_panel.gd | 2 -- material_maker/panels/preview_2d/preview_2d_panel.tscn | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index 5c190b104..a9f41ed93 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -157,7 +157,6 @@ func update_shader_options() -> void: func on_resized() -> void: super.on_resized() material.set_shader_parameter("background_color", get_theme_stylebox("panel", "MM_PanelBackground").bg_color) - printt(name, get_theme_stylebox("panel", "MM_PanelBackground").bg_color) material.set_shader_parameter("preview_2d_center", center) material.set_shader_parameter("preview_2d_scale", view_scale) setup_controls("previous") @@ -184,7 +183,6 @@ func _on_gui_input(event): MOUSE_BUTTON_MIDDLE: dragging = true MOUSE_BUTTON_LEFT: - print(material.shader.code) if event.shift_pressed: dragging = true elif event.is_command_or_control_pressed(): diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index dbd19e021..460e029a1 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -81,8 +81,8 @@ material = SubResource("2") custom_minimum_size = Vector2(100, 100) offset_left = 8.0 offset_top = -5.0 -offset_right = 508.0 -offset_bottom = 434.0 +offset_right = 129.0 +offset_bottom = 116.0 grow_horizontal = 2 grow_vertical = 2 color = Color(1, 1, 1, 0) @@ -558,6 +558,9 @@ theme_override_constants/separation = 2 unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 +tooltip_text = "The file-name to use. + +You can use $project, $node and $idx to make the file-name auto-adjust." theme_override_font_sizes/font_size = 15 text = "$project_$node" From debd7d0ddc797d55a65b243d6834ecd948247817 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Thu, 22 Aug 2024 17:43:07 +0200 Subject: [PATCH 14/31] Fix PixelEdit in popup view --- material_maker/widgets/pixels_edit/pixels_editor.gd | 1 + 1 file changed, 1 insertion(+) diff --git a/material_maker/widgets/pixels_edit/pixels_editor.gd b/material_maker/widgets/pixels_edit/pixels_editor.gd index 8950a1364..c397e863f 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.gd +++ b/material_maker/widgets/pixels_edit/pixels_editor.gd @@ -11,6 +11,7 @@ signal unhandled_event(event : InputEvent) func _ready() -> void: + super() %SettingsPanel.pixel_editor = self if get_parent().has_method("add_menu_bar"): From 433cff4f4937652c0cdfc45912b180f404393bb7 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Wed, 4 Sep 2024 11:00:23 +0200 Subject: [PATCH 15/31] Implement Preview Lock Button and new Icons Implements a "Lock" button in the preview menu. Adds new icons (added as png for now, svg should be used in the future, but there are some bugs in ThorVG). Also does a bunch of changes to make sure the preview is cleared when a node is deleted. --- material_maker/main_window.gd | 1 + material_maker/main_window_layout.gd | 8 +- .../common/menu_bar_button_with_panel.gd | 7 +- .../panels/graph_edit/graph_edit.gd | 15 +- .../panels/preview_2d/preview_2d_panel.gd | 52 +- .../panels/preview_2d/preview_2d_panel.tscn | 64 +- .../preview_2d/two_icon_toggle_button.gd | 16 + material_maker/theme/modern.tres | 51 +- material_maker/theme/new_theme_icons.png | Bin 0 -> 10580 bytes .../theme/new_theme_icons.png.import | 34 + material_maker/theme/new_theme_icons.svg | 2403 +++++++++++++++++ .../theme/new_theme_icons.svg.import | 37 + .../widgets/float_edit/float_edit.gd | 26 +- .../widgets/lattice_edit/lattice_editor.tscn | 2 + .../widgets/pixels_edit/pixels_editor.gd | 4 +- .../widgets/pixels_edit/pixels_editor.tscn | 15 +- .../widgets/splines_edit/splines_editor.tscn | 72 +- 17 files changed, 2706 insertions(+), 101 deletions(-) create mode 100644 material_maker/panels/preview_2d/two_icon_toggle_button.gd create mode 100644 material_maker/theme/new_theme_icons.png create mode 100644 material_maker/theme/new_theme_icons.png.import create mode 100644 material_maker/theme/new_theme_icons.svg create mode 100644 material_maker/theme/new_theme_icons.svg.import diff --git a/material_maker/main_window.gd b/material_maker/main_window.gd index f6b5c6030..b93e1b845 100644 --- a/material_maker/main_window.gd +++ b/material_maker/main_window.gd @@ -995,6 +995,7 @@ func update_preview_2d() -> void: var generator : MMGenBase = null var output_index : int = -1 if preview == null or not is_instance_valid(preview.generator): + previews[i].clear() continue generator = preview.generator output_index = preview.output_index diff --git a/material_maker/main_window_layout.gd b/material_maker/main_window_layout.gd index e0b35097a..08cab2746 100644 --- a/material_maker/main_window_layout.gd +++ b/material_maker/main_window_layout.gd @@ -3,12 +3,12 @@ extends HBoxContainer const PANELS = [ { name="Library", scene=preload("res://material_maker/panels/library/library.tscn"), position="TopLeft" }, - { name="Preview2D", scene=preload("res://material_maker/panels/preview_2d/preview_2d_panel.tscn"), position="TopRight" }, + { name="Preview2D", scene=preload("res://material_maker/panels/preview_2d/preview_2d_panel.tscn"), position="TopRight" , parameters={preview_mode=1} }, { name="Preview3D", scene=preload("res://material_maker/panels/preview_3d/preview_3d_panel.tscn"), position="BottomLeft" }, - { name="Preview2D (2)", scene=preload("res://material_maker/panels/preview_2d/preview_2d_panel.tscn"), position="BottomRight", parameters={ config_var_suffix="_2" } }, + { name="Preview2D (2)", scene=preload("res://material_maker/panels/preview_2d/preview_2d_panel.tscn"), position="BottomRight", parameters={preview_mode=2} }, { name="Histogram", scene=preload("res://material_maker/widgets/histogram/histogram.tscn"), position="BottomRight" }, - { name="Hierarchy", scene=preload("res://material_maker/panels/hierarchy/hierarchy_panel.tscn"), position="TopRight" }, - { name="Reference", scene=preload("res://material_maker/panels/reference/reference_panel.tscn"), position="BottomLeft" }, + { name="Hierarchy", scene=preload("res://material_maker/panels/hierarchy/hierarchy_panel.tscn"), position="TopRight"}, + { name="Reference", scene=preload("res://material_maker/panels/reference/reference_panel.tscn"), position="BottomLeft"}, { name="Brushes", scene=preload("res://material_maker/panels/brushes/brushes.tscn"), position="TopLeft" }, { name="Layers", scene=preload("res://material_maker/panels/layers/layers.tscn"), position="BottomRight" }, { name="Parameters", scene=preload("res://material_maker/panels/parameters/parameters.tscn"), position="TopRight" }, diff --git a/material_maker/panels/common/menu_bar_button_with_panel.gd b/material_maker/panels/common/menu_bar_button_with_panel.gd index 707b47dae..1d09af8ef 100644 --- a/material_maker/panels/common/menu_bar_button_with_panel.gd +++ b/material_maker/panels/common/menu_bar_button_with_panel.gd @@ -3,21 +3,24 @@ extends Button @onready var panel := get_child(0) var pinned := false - +var theme_arrow_icon: Texture2D func _ready() -> void: + custom_minimum_size = Vector2(35, 25) toggle_mode = true button_mask = MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT toggled.connect(_on_toggled) owner.resized.connect(position_panel) panel.hide() + + theme_arrow_icon = get_theme_icon("arrow", "OptionButton") func _draw() -> void: if pinned: draw_circle(Vector2(size.x-2, 2), 4, get_theme_color("icon_pressed_color")) - + draw_texture(theme_arrow_icon, Vector2(18, 5)) func _on_toggled(pressed:bool) -> void: panel.visible = pressed diff --git a/material_maker/panels/graph_edit/graph_edit.gd b/material_maker/panels/graph_edit/graph_edit.gd index cb817da3c..6af45b9d7 100644 --- a/material_maker/panels/graph_edit/graph_edit.gd +++ b/material_maker/panels/graph_edit/graph_edit.gd @@ -5,10 +5,12 @@ class_name MMGraphEdit class Preview: var generator var output_index : int + var node : Node - func _init(g, i : int = 0): + func _init(g, i : int = 0, n = null): generator = g output_index = i + node = n # warning-ignore:unused_class_variable @@ -872,17 +874,19 @@ func _on_GraphEdit_node_unselected(_node): undoredo_move_node_selection_changed = true mm_globals.main_window.update_menus() -func get_current_preview(slot : int = 0): + +func get_current_preview(slot : int = 0) -> Preview: if locked_preview[slot] != null: return locked_preview[slot] return current_preview[slot] + func set_current_preview(slot : int, node, output_index : int = 0, locked = false) -> void: var preview = null var old_preview = null var old_locked_preview = null if is_instance_valid(node): - preview = Preview.new(node.generator, output_index) + preview = Preview.new(node.generator, output_index, node) if locked: if is_instance_valid(node) and locked_preview[slot] != null and locked_preview[slot].generator != node.generator: old_locked_preview = locked_preview[slot].generator @@ -893,8 +897,11 @@ func set_current_preview(slot : int, node, output_index : int = 0, locked = fals else: if is_instance_valid(node) and current_preview[slot] != null and current_preview[slot].generator != node.generator: old_preview = current_preview[slot].generator + locked_preview[slot] = null current_preview[slot] = preview - emit_signal("preview_changed", self) + + preview_changed.emit(self) + if is_instance_valid(node): node.queue_redraw() if old_preview != null or old_locked_preview != null: diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index a9f41ed93..22ecd7a2a 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -1,6 +1,16 @@ extends "res://material_maker/panels/preview_2d/preview_2d.gd" +enum Modes {CUSTOM_PREVIEW=0, PREVIEW_1=1, PREVIEW_2=2} +var preview_mode := Modes.CUSTOM_PREVIEW: + set(preview): + preview_mode = preview + if preview_mode == Modes.PREVIEW_2: + config_var_suffix = "_2" + else: + config_var_suffix = "" + + @export var config_var_suffix : String = "" @export_multiline var shader_accumulate : String = "" # (String, MULTILINE) @@ -13,7 +23,7 @@ var view_scale : float = 1.2 var view_mode : int = 2 -var current_postprocess_option = 0 +var current_postprocess_option := 0 const POSTPROCESS_OPTIONS : Array = [ { name="None", function="preview_2d(uv)" }, { name="Lowres 32x32", function="preview_2d((floor(uv*32.0)+vec2(0.5))/32.0)" }, @@ -23,26 +33,29 @@ const POSTPROCESS_OPTIONS : Array = [ { name="Lowres 512x512", function="preview_2d((floor(uv*512.0)+vec2(0.5))/512.0)" } ] -const VIEW_EXTEND : int = 0 -const VIEW_REPEAT : int = 1 -const VIEW_CLAMP : int = 2 - func _ready(): - update_shader_options() + clear() reset_view() +func clear() -> void: + set_generator(null) + %PreviewLocked.button_pressed = false + + func get_shader_custom_functions(): return "vec4 preview_2d_postprocessed(vec2 uv) { return %s; }\n" % POSTPROCESS_OPTIONS[current_postprocess_option].function func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: - #center = Vector2(0.5, 0.5) - #view_scale = 1.2 super.set_generator(g, o, force) - setup_controls("previous") update_shader_options() + + if preview_mode != Modes.CUSTOM_PREVIEW: + var current_graph: MMGraphEdit = find_parent("MainWindow").get_current_graph_edit() + if current_graph: + %PreviewLocked.button_pressed = current_graph.locked_preview[preview_mode-1] != null func update_material(source): @@ -52,6 +65,7 @@ func update_material(source): material.set_shader_parameter("background_color_1", Color(0.4, 0.4, 0.4)) material.set_shader_parameter("background_color_2", Color(0.6, 0.6, 0.6)) + func set_preview_shader_parameter(parameter_name, value): material.set_shader_parameter(parameter_name, value) @@ -59,6 +73,7 @@ func on_dep_update_value(buffer_name, parameter_name, value) -> bool: super.on_dep_update_value(buffer_name, parameter_name, value) return false + var setup_controls_filter : String = "" func setup_controls(filter : String = "") -> void: if filter == "previous": @@ -110,8 +125,12 @@ func setup_controls(filter : String = "") -> void: $ComplexParameters.set_item_metadata(i, complex_param_defs[i]) $ComplexParameters.selected = 0 $ComplexParameters.visible = true + for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(generator, edited_parameter) + else: + for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: + e.setup_control(null, []) func _on_complex_parameters_item_selected(index): var parameter = $ComplexParameters.get_item_metadata(index) @@ -253,3 +272,18 @@ func get_post_processing() -> int: func _on_Preview2D_mouse_entered(): mm_globals.set_tip_text("#MMB: Pan, Mouse wheel: Zoom", 3) + + +func _on_preview_locked_toggled(toggled_on: bool) -> void: + if preview_mode == Modes.CUSTOM_PREVIEW: + return + + var current_graph: MMGraphEdit = find_parent("MainWindow").get_current_graph_edit() + if current_graph.locked_preview[preview_mode-1] != null and toggled_on: + return + if current_graph.locked_preview[preview_mode-1] == null and not toggled_on: + return + var prev = current_graph.get_current_preview(preview_mode-1) + if not prev: + return + current_graph.set_current_preview(preview_mode-1, prev.node, prev.output_index, toggled_on) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 460e029a1..135727f5e 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=25 format=3 uid="uid://b7x7yqgsurxhv"] +[gd_scene load_steps=33 format=3 uid="uid://b7x7yqgsurxhv"] [ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="1"] [ext_resource type="PackedScene" uid="uid://est6pi7xbptp" path="res://material_maker/panels/preview_2d/control_point.tscn" id="2"] @@ -9,16 +9,18 @@ [ext_resource type="PackedScene" uid="uid://b08bcbwwosrrk" path="res://material_maker/widgets/splines_edit/splines_editor.tscn" id="5_5hlfo"] [ext_resource type="PackedScene" uid="uid://b51634rcdiyr" path="res://material_maker/widgets/pixels_edit/pixels_editor.tscn" id="6_m4663"] [ext_resource type="PackedScene" uid="uid://dicq2cut03ved" path="res://material_maker/widgets/lattice_edit/lattice_editor.tscn" id="7_u2w4r"] -[ext_resource type="Texture2D" uid="uid://tfi3spyumjxt" path="res://material_maker/theme/dark/popupmenu_visibility_visible.png" id="11_l5q6b"] +[ext_resource type="Texture2D" uid="uid://dnyj2y655qc1o" path="res://material_maker/theme/new_theme_icons.png" id="10_l6r53"] [ext_resource type="PackedScene" uid="uid://dj5q8sxvd3gci" path="res://material_maker/widgets/option_edit/option_edit.tscn" id="12_4017l"] [ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="12_nrhap"] -[ext_resource type="Texture2D" uid="uid://dw0lvt1ip8ifp" path="res://material_maker/theme/dark/popupmenu_submenu.png" id="12_wun6p"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/view_menu.gd" id="13_5w2hy"] [ext_resource type="Texture2D" uid="uid://tetgna5qjvkf" path="res://material_maker/theme/dark/tabs_increment.png" id="15_ikyi1"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/export_menu.gd" id="16_0fl4g"] +[ext_resource type="Script" path="res://material_maker/panels/preview_2d/two_icon_toggle_button.gd" id="17_07kc5"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="18_kn37y"] +[ext_resource type="Texture2D" uid="uid://chdyfit4rv7ss" path="res://material_maker/theme/dark/curve_preset_bounce.tres" id="20_t88qf"] +[ext_resource type="Texture2D" uid="uid://cwoby8q4quah3" path="res://material_maker/theme/dark/curve_preset_bevel.tres" id="21_eie3q"] -[sub_resource type="Shader" id="1"] +[sub_resource type="Shader" id="Shader_0mwcg"] resource_local_to_scene = true code = "shader_type canvas_item; @@ -47,7 +49,7 @@ void fragment() { [sub_resource type="ShaderMaterial" id="2"] resource_local_to_scene = true -shader = SubResource("1") +shader = SubResource("Shader_0mwcg") shader_parameter/preview_2d_size = Vector2(100, 100) shader_parameter/preview_2d_scale = 1.655 shader_parameter/preview_2d_center = Vector2(0.46, 0.56) @@ -72,10 +74,34 @@ resource_local_to_scene = true render_priority = 0 shader = SubResource("5") +[sub_resource type="AtlasTexture" id="AtlasTexture_p8pw4"] +atlas = ExtResource("10_l6r53") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="InputEventKey" id="InputEventKey_qowqu"] +device = -1 +command_or_control_autoremap = true +keycode = 82 + +[sub_resource type="Shortcut" id="Shortcut_fwcfb"] +events = [SubResource("InputEventKey_qowqu")] + +[sub_resource type="AtlasTexture" id="AtlasTexture_72vod"] +atlas = ExtResource("10_l6r53") +region = Rect2(16, 0, 16, 16) + [sub_resource type="FontVariation" id="FontVariation_wkuuo"] base_font = ExtResource("18_kn37y") variation_transform = Transform2D(1, 0.22, 0, 1, 0, 0) +[sub_resource type="InputEventKey" id="InputEventKey_rhw4u"] +device = -1 +command_or_control_autoremap = true +keycode = 69 + +[sub_resource type="Shortcut" id="Shortcut_llf02"] +events = [SubResource("InputEventKey_rhw4u")] + [node name="Preview2D" instance=ExtResource("3")] material = SubResource("2") custom_minimum_size = Vector2(100, 100) @@ -392,16 +418,16 @@ theme_type_variation = &"MM_PanelMenuBar" [node name="HBox" type="HBoxContainer" parent="MenuBar/HBox/MainMenu" index="0"] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" [node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0"] -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 25) layout_mode = 2 tooltip_text = "View" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 -text = "View" -icon = ExtResource("11_l5q6b") +icon = SubResource("AtlasTexture_p8pw4") script = ExtResource("12_nrhap") [node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] @@ -418,9 +444,11 @@ script = ExtResource("13_5w2hy") layout_mode = 2 theme_override_constants/separation = 2 -[node name="ResetViewButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="0"] +[node name="ResetViewButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="0" node_paths=PackedStringArray("shortcut_context")] unique_name_in_owner = true layout_mode = 2 +shortcut_context = NodePath("../../../../../../../..") +shortcut = SubResource("Shortcut_fwcfb") text = "Reset View" [node name="ViewModeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="1"] @@ -499,14 +527,13 @@ custom_minimum_size = Vector2(25, 0) layout_mode = 2 [node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 25) layout_mode = 2 tooltip_text = "Export" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 -text = "Export" -icon = ExtResource("12_wun6p") +icon = SubResource("AtlasTexture_72vod") script = ExtResource("12_nrhap") [node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] @@ -614,6 +641,7 @@ text = "Export" [node name="Image" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="8"] unique_name_in_owner = true layout_mode = 2 +shortcut = SubResource("Shortcut_llf02") text = "Export as Image" alignment = 0 @@ -644,6 +672,17 @@ theme_override_colors/font_color = Color(0.52, 0.52, 0.52, 1) theme_override_fonts/font = SubResource("FontVariation_wkuuo") autowrap_mode = 1 +[node name="PreviewLocked" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +tooltip_text = "Lock this preview" +toggle_mode = true +icon_alignment = 1 +script = ExtResource("17_07kc5") +icon_normal = ExtResource("20_t88qf") +icon_pressed = ExtResource("21_eie3q") + [connection signal="gui_input" from="." to="." method="_on_gui_input"] [connection signal="mouse_entered" from="." to="." method="_on_Preview2D_mouse_entered"] [connection signal="unhandled_event" from="PolygonEditor" to="." method="_on_gui_input"] @@ -665,3 +704,4 @@ autowrap_mode = 1 [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Animation" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_animation_pressed"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/TAA_Render" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_taa_render_pressed"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Reference" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_reference_pressed"] +[connection signal="toggled" from="MenuBar/HBox/MainMenu/HBox/PreviewLocked" to="." method="_on_preview_locked_toggled"] diff --git a/material_maker/panels/preview_2d/two_icon_toggle_button.gd b/material_maker/panels/preview_2d/two_icon_toggle_button.gd new file mode 100644 index 000000000..a6ee43e54 --- /dev/null +++ b/material_maker/panels/preview_2d/two_icon_toggle_button.gd @@ -0,0 +1,16 @@ +extends Button + +@export var icon_normal : Texture2D +@export var icon_pressed : Texture2D + +func _ready() -> void: + toggled.connect(_on_toggled) + _on_toggled(button_pressed) + + +func _on_toggled(toggled:= false): + if button_pressed: + icon = icon_pressed + else: + icon = icon_normal + diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index bfa940986..9084f7428 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -1,7 +1,8 @@ -[gd_resource type="Theme" load_steps=64 format=3 uid="uid://b628lwfk6ig2c"] +[gd_resource type="Theme" load_steps=66 format=3 uid="uid://b628lwfk6ig2c"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="1_hqoqt"] [ext_resource type="FontFile" uid="uid://btybkvkb8rtol" path="res://material_maker/fonts/DroidSansFallback.ttf" id="2_1xp11"] +[ext_resource type="Texture2D" uid="uid://dnyj2y655qc1o" path="res://material_maker/theme/new_theme_icons.png" id="2_b1usk"] [ext_resource type="Texture2D" uid="uid://c74jqqhkapvx0" path="res://material_maker/theme/dark/graphnode_close.png" id="3_6fij0"] [ext_resource type="Texture2D" uid="uid://cgxvaurldh6mq" path="res://material_maker/theme/dark/graphnode_port.png" id="4_kelfg"] [ext_resource type="Texture2D" uid="uid://c4k81poqyod3g" path="res://material_maker/theme/dark/graphnode_resizer.png" id="5_3hfqd"] @@ -17,7 +18,7 @@ corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kvrsn"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ebjbq"] content_margin_left = 3.0 content_margin_top = 3.0 content_margin_right = 3.0 @@ -27,11 +28,12 @@ border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color(0.490196, 0.505882, 0.545098, 1) +border_color = Color(0.485703, 0.485704, 0.485703, 1) corner_radius_top_left = 3 corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 +corner_detail = 4 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2qiie"] content_margin_left = 3.0 @@ -350,28 +352,28 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_b7fkf"] -content_margin_left = 6.0 -content_margin_top = 6.0 -content_margin_right = 6.0 -content_margin_bottom = 6.0 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_w0mkx"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pq4ta"] -content_margin_left = 6.0 -content_margin_top = 6.0 -content_margin_right = 6.0 -content_margin_bottom = 6.0 -bg_color = Color(0.081, 0.09145, 0.1, 1) +content_margin_left = 4.0 +content_margin_top = 3.0 +content_margin_right = 4.0 +content_margin_bottom = 3.0 +bg_color = Color(0.0666667, 0.0705882, 0.0784314, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color(0.442344, 0.440199, 0.421573, 1) +border_color = Color(0.262933, 0.262932, 0.262932, 1) border_blend = true -corner_radius_top_left = 4 -corner_radius_top_right = 4 -corner_radius_bottom_right = 4 -corner_radius_bottom_left = 4 +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 anti_aliasing = false [sub_resource type="FontVariation" id="FontVariation_h5fjs"] @@ -379,7 +381,7 @@ base_font = ExtResource("1_hqoqt") variation_embolden = 0.37 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_eij2n"] -bg_color = Color(0.187176, 0.187176, 0.187176, 1) +bg_color = Color(0.165656, 0.165656, 0.165656, 1) border_width_top = 3 border_width_bottom = 3 border_color = Color(0.19, 0.19, 0.19, 0) @@ -428,6 +430,10 @@ corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 corner_detail = 4 +[sub_resource type="AtlasTexture" id="AtlasTexture_qrndi"] +atlas = ExtResource("2_b1usk") +region = Rect2(112, 16, 16, 16) + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dscxc"] content_margin_left = 6.0 content_margin_top = 6.0 @@ -596,7 +602,7 @@ default_font_size = 16 Button/colors/icon_hover_pressed_color = Color(0.874128, 0.694643, 0.972002, 1) Button/colors/icon_pressed_color = Color(0.792157, 0.478431, 0.94902, 1) Button/styles/disabled = SubResource("StyleBoxFlat_inl5r") -Button/styles/focus = SubResource("StyleBoxFlat_kvrsn") +Button/styles/focus = SubResource("StyleBoxFlat_ebjbq") Button/styles/hover = SubResource("StyleBoxFlat_2qiie") Button/styles/hover_pressed = SubResource("StyleBoxFlat_2qiie") Button/styles/normal = SubResource("StyleBoxFlat_rxikb") @@ -663,12 +669,14 @@ MM_NodePropertyLabel/font_sizes/font_size = 15 MM_PanelBackground/base_type = &"PanelContainer" MM_PanelBackground/styles/panel = SubResource("StyleBoxFlat_uujf1") MM_PanelMenuBackground/base_type = &"ScrollContainer" -MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_b7fkf") +MM_PanelMenuBackground/styles/panel = SubResource("StyleBoxEmpty_w0mkx") MM_PanelMenuBar/base_type = &"PanelContainer" +MM_PanelMenuBar/constants/separation = 3 MM_PanelMenuBar/styles/panel = SubResource("StyleBoxFlat_pq4ta") MM_PanelMenuButton/base_type = &"Button" MM_PanelMenuButton/font_sizes/font_size = 14 MM_PanelMenuButton/fonts/font = SubResource("FontVariation_h5fjs") +MM_PanelMenuFloatEdit/base_type = &"MM_NodeFloatEdit" MM_PanelMenuSeparator/base_type = &"VSeparator" MM_PanelMenuSeparator/constants/separation = 2 MM_PanelMenuSeparator/styles/separator = SubResource("StyleBoxFlat_eij2n") @@ -682,6 +690,7 @@ MM_ProjectsBackground/base_type = &"Panel" MM_ProjectsBackground/styles/panel = SubResource("StyleBoxFlat_1k0sx") MM_StatusBarBackground/base_type = &"PanelContainer" MM_StatusBarBackground/styles/panel = SubResource("StyleBoxFlat_7hrav") +OptionButton/icons/arrow = SubResource("AtlasTexture_qrndi") Panel/styles/panel = SubResource("StyleBoxFlat_dscxc") PopupMenu/styles/hover = SubResource("StyleBoxFlat_fq0uc") PopupMenu/styles/panel = SubResource("StyleBoxFlat_8p2hu") diff --git a/material_maker/theme/new_theme_icons.png b/material_maker/theme/new_theme_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..0b36af3133a32597d71b662fe444b241a4e1eee7 GIT binary patch literal 10580 zcma)C^;Z;J6JEMQxho$?3XjI9j=Z&0H)2U@(}=#^IZ*g_)Bjm!pey#)$+406+%-eUR4l%skHW zN+TZlI~d?+9i|nBu$1p?$@>=bL@8fyjxnFtc8-xtnzv-+wxs|u0uqmK%SmA_;2cGv zCXEu~9Py37S-OYwByxXWe}k>XlQR4Q(p>zApmf+eCB)nUD``#&7&Jv7o{D;7hl5xZ-e%| zp7Kk4_bucXlN9te@b}9(OZTeW=qU;|szYD)5(=IO!kzG06+sS~DgTCbw`6zFpZhF` zS+{I`wi@0*Cz#*`cbrYVi1g-I2#o|O7BOcqC51>OT02zRO61U#UzO>Xm^NA~by-lhg<@SkToO1S?no2bBn0h-! zsN%=iaWWh5_OL9ko$%@M8`DIJ0N=o4*et!&vpT5Z<=h3{JP%AMBu?necFLM%s<;{x zy6?hCC{kp1oeqJ!CAk?K6jUV(tgGVWU4j*li1OPOfn6FqTaIJwyu&%~Z0bV719T40 zr9(WvFak%BH%IZ#>O!m|iq;bLkTs(5}fO0pbc=SUqs5PnIfd~(#33O-@` ztv4UHmA2sq@0?{irekBUF#s)qMjuXT#{lG@+c26J_FY#eRnS7%h4q5~2>UFl&=%CC zQ>k$8*Q+36aOi9tGN0(?UN|lQZ!fzDZWl=IN-tb^dsS5ymu}4>;mB*1#%iN?09OPJ zjj}r#fPnGW`jU(j@w`38c^4hNKM#3NdE^G)Pm9@_LEspY|NiD7W<3)4vVXnVm3qjF3h0^2vY_KL)x4q@ zvkavrM2Xr>CnVb@S(PveILTcnJMQBaf6Y!<;PvsSbfq~l*_kk5a7?60Z3g9~rPH4r zRC;N%O-7gL{b1=3FF>c>m>Lc3v+&oRQOn~Sl9w9f&?`G2Z;35qK`%&3S(lyP4LdL0 zYI9xS!5(AYicv7x|_iZDt4-u3kz+4aJt z&->md7HTkQ_5W!hqhpgJH%$u2u{R&p`KZr%nE%ySR7eMJV?c%Edyf9V=GP7Jc-I~{ zg(<3&dBlQpRP*h}V3nHRvnP43RfuTjv!#s6Xt*Ak+Lm z0rEKeaJ>7rk{|9U`@(<`9qfgYG3I>gTEhWdw{(ZzwA5~NPq8P?HMzWjnjzx|Wtcr6 z6Z=*@;VRb-{rjf|Lznkt1KxouT8kGZ+MAyVQ`wV&*aB>{U?q0&pHLqNZf%OUDx*=M zAs)doLeObeGKQ~F(zko-VSTtF6MEo&7|liN=fKI)oC_7KWbq+jsug-koExN&J|Rp= zpOMg(FOSdQH-6P{MI!oCPa=DlCjA-v(6i4#k_ta|=G(&`!-BptjBniBSVM$Zh8K4Iv)__JAM1|in8@JDR zgq-~Hht3WmLN=xQ2^juWGR%vHqLvAo`eS&-@lwwUweyBWTgv!Wkciqf9`DugE$ zQIn5!>4!$i{>@W5n&^-gij`qwZeJiLoZlZi_w2FQf_ULbtg6) zU@7@lW+hJ{BN3TF=$=0mJx6T`5>J{0ho@p{^=u0Ca`SU;B7~3D2kt8_tKakWAk{hq zL`Rkd6(paU2bHil#}+arIKal;3n@5Y=@YQNaMK6j}5pP=+tl}KuQWSsv$if zNbI7>C`~dCghiwW=dDt;uT@u)naX}3KO=wt~g3qlj}sPiHZXJQrvMr@?MV@ue*BNO}~T|0U;4Cps{j*c_hi)y=m- zndiC>=->@oB0ty$qAl`xT9o`V30#Qmip;AleLy|?gmiRXyIw^Fh3hfL|K_Y(!s7P% z!IE7}&WmOH+PBE=a`v2=WI_cNIbCfd1vRe$?KHbHhc zH3mVK32l+E%$G-R$NVCTJ{z!xh6`XOYPo4*Sip7SKNE8DKQR0SH^9a2C*$pI+{x4g zkf)!U)DMzTs7yeE4XW6IU4a?*_dMvLJ4&?(B`hT%}& z1&+Sfox}HF;3}4(>^VJ4+7ZfbkPmXNiD^qY6UIWvLOg5@cF?2!9@uT69ysK}L1NTc zvR?Z;M>A-FaN6?xS5zCysuxv?a>bh8;ZA5V8eF&|7d|H70|Yb@J-sot+#h@%<4dm+ z6tsG{qFUImd3yJ?yto{rban(%6vP$!?}|^=6`^)_B6jSuh~ZSZsz!EhhGK)>Wghy~ zn@(Tk?vJX4;`c`$GaD`;V$8kcwmUBa3z{N@t(#BBC@UCL$mJ-X(B=WNPup367T>M2 zAqcJaUGLs@tupMckm^kz+imc8&G`himWJYe?tvv=QKx<&%`LCFpDP!8iHqj@XsoAk znRyX8j??X4dC{OH7%;jKlQcxIp$};-{Wi}RhNGqV z0|o|-p~U95B>V}Wm7Ib;X(&6X^s3gNfru$A^yW=9@GK#KmNY1ZdI+%kb~p3uL3hK3mgg39(azj7 zw74wcYwy95u0f~*r#Y+VI$-U1dhr(QyesJ?yzQ*>qL&45JKMk`r|4UK7On|%$7U`- zUZhA2Y*c*A?5f#Nt`vQ88QWW@z#7t)lGwBz+`4`JOB9sPc z#Jbn-(y3O2i&vw}Z~F$zAaja;J#@y7TSU5gWxsy>>9P>j?#FSB8=s8m<5c4bakKC+ zm#Rb7o;FVjt@W03veaCXTo>Qd{m(C3spX@wBVXE&`N$pHIEcf|*IhA%{EjiAnTywG z!u-1MKo^^;v8c+seyH=8G@;l1p&xmusMszQOt@~nAx;nRK zbcsV8a0$;jfa7t1UnhKbeam8S1N)ltz>b`3kkG&qj35rm}ZY>p}^yLDtvsQaT8YA@4e(2h*pzLhiN7jfz1O2 zO2u3q9eb85Iq0MPR^ID+34_Diq;6?<-~oM8su%vx>4i;Sq723E4n5#27)%mlowdm- zj>8h^Gc)#VholMFI1OvojK|s`C(58}DL=d=v4~4*wlf3I&-ZKk6^igfOzC+q1cf~~f1%5nB-2_E3o${M5_M7iMsPwwzr zQ8-w%MXqQf&8;1^iTBXd^fjQ+KA@Q`ea2jD84BYT4MjPH8+!eI4YG1z51teV0iiIF9dGmv}ucjW>p z-_G0ymtNkNa&A;IWM9&|g_%;h7}hqEy4u+52Q7G0s!kfmd!E}>XuC7tZ^Gk+uT7P0y7n&Q8#96FZ_4| z!g_cGII*3`2J;xIwO#3ouG@$S#f*{U%_m7gRKD^Do?JX-<;AxmC327piPQ1LaJ3sM z-@P~OFs~;Z4G>yN7q*be4_Pe9Gp;1%E-4-|S0*1~Ld9Z)?T-ujQ~e>!(`lc*0Yx$% zn_SAoaFXhR00*u?CpcrV!H8@wI%e}x)lL=h(>p7q9MmT^w-?2K778`42X{0ZTPMX= zYvr#FsKWTuTUwG!MD!|4$!xSH?H@2#5+Us8NmYDD1<2F2Z_~W?-^|@S<5z!2QgF+Y zcnwf6Cc8D2wB+?%9M7lu7IU5EY){XunSHblGeWZmkAJkN*#58|mhsj&1z0yH>uM=q(+xc@ocSx2)geYCJcIGNBbSi#KT0)oB>CC)Q(L}7TCR_d~t zPbR3L-buA^-68#B5V(@)gqmd3rdO*PqYj0i)a#_udS>e&Kt_R>9dmZ$k=oe6?r1L4 z`JoP#Xja88N+Ed`y)9Hzjq2j+*!xe)EhD;M$&^f!4?K1!u@!S2BpE{T&eTPHp7^jA z?r!bJwVnOdXm^;JMA%=nZsl@ez-7-J!#sp`D2;wSesBT(d3k{gCyw0Emg;8}9SRms zj`n8n$U|Jw5pTM_tI}?GPW(k`O6cs?=XAYVVsSslXHgm2;-%37lk=xYsdpzP@nJ8h zOEdM+%Jz>53@UNtc~U8yYi<>E%L+w#ZN`m1f6J3hTGfmnTz1+`7r~xm&vK5#6G(5kBdlOk&N~TZE?C6%Ot^WFmtp%r8SniDuHE7j8Rccu*(Gg%*s%<2 z7uqm8DHa_Y^-d~~)kSIriIH9fFD^tt@;%#?G~Q<}{+Ip%!L+yhyNWa5w+qdRMP2Lb za3H9$GN57ndt!2WuhEpG%6u8}Ij;QOLaWS;O0i=8P5x0{1F05XOv~Up;TpK1(4ir* zEP&!y)D0lt^SwMzRgPd9giPKQQ~$fLMNytA`>gf@^LTK{Tjnkr7=6Ja6(PQ3x4;k6 z*($7&i8Pwtq%T}lVGUbi%5fbOly&RfZZG@@?R=--IrQ+-PMZf&(xRPdwYi^p?d`zI zxrPzf_~5XJeC#vq`!_t>XGU;29fipNMF(jcDk&CY>lboSGiKZz#+`=bPAWo=Z7YhV z4G)}ka*Ln92l%7;Y*)a;?&(nBqezDj&Y&mMA}o6?&2bO$mCb~T2g!SSJ_e=!E-RIy z<%@mgFoYxr#&k^^*A&W$k7T+3g%5fEyf(aE$?kr^cKJgZVr(AgO!mkU>26eh};@h9etGz7pKs8P#(~~h|twtHWwlFx#{EW z>abw_`aNAS{&;6IS-Plp1M_~^l{I;8ghAu5%j%beUkK!{CE*~? zH^Y+%>x;VI3fY>`j5x*>?K{ygO5YBV7V5+Xru>75%BN%HvCA-5ty>EF2(o9By+;g( z^65AA)s3{St5OUNpEC%mpb54tI@ZJyS@>4~e%_JmA4DsdMQ?oioc-D6-B;xtaA`N> z#^0+YI<4+5Qay5E+F!Z)J}|)oUr3Z~*Ft3!mRPmTJ3eZn@!`Twx{lV%=Ct~is_7X> zmY64o-G=M^MRP<_hIxpD(7-HN{@%o&$IB^8WWbm3u4t9endNLryR6=mmvbc(zGwMh zoN4+(YLmA@g@1b}-+t=xj-iYqHViN6w<82axx;vW8M%>Y^Cghw@>}5$6>W3xT4k8F zo|uX?AZDb_H*Jx_H5N(gf`TSSw#^wUzC{mRp}up1DT$f#NAuaWE-?4=Lc;G$(LTjD znQJ80Z_8O^L*N600jY18Fm`!|V3en3wwoqfFKfhUfB7Vc zSFkNI>wkz}r%l^}R-$5t1U@7D=*^Uw@vf~WRxnq-<+Hbj(3&YNE5v`AI?s8}BouW( zBPPtLZiTa#bmCyMNQ@+YE^PSI}|t5Sh442Ui-tio?|hZi{~s}=^!&%0mD}Cw=UN@jku={^9c$t zrI_JKxfeh&f;!m=R(<38XBIRhp0t)#B+a6nOyOZg6)ny)hk0RuDgy45eF*H@NK3 z(YH~@?KxIL9c3$bY2SD9f33#?PqXw0h7^YC^!i1b8>u?(nPf=O~iWwp3{degsV_GlMyKaRra1F3O_h&}|o8j1H9ca!EJ>B?o zIBh$=-49SXCl9F(WpXr|?WUM%3$4g^vVy2~5mVj>R1-a6UD}{K0vV$3r@-n&`30(V zYeZCuy!&DAQ+cRM*aKgr$_I|?aI-DN_RQL(thitVfnigBYsW?=yemC+fIse^RNQx3 zs)>MZ4pd0x%mKl1{c7Cf37o%5OGiWQ zavoQl*#4P0k}K`R6u|u09*bcMa+$;DNC5E~4JvY6faU~!(TkMWw2N~rG(d^p%&E|Y zlaKig-a)G>6-UnD^MaDKe#okqv)UC-L3UWrYY8uJTrPa|W}4Lhc-0;lyR(0&;9yPu zCR=u#4Bh6&nP**R1AmOTYC^4d=5{F#{_3l|bS>SLV@KHlc=si~ZeIA=6vQvLITzTPmIVL!)%_jJ0Qxov1HkQ^hsE+aQ=eNq~YO_AK!(X8p;U+%E4HQClXGZ?MP`@XCc>`A65skv8J_vXSE*7qb#u9{<4`c@^GswnPd3+^{$|-Z zp&shcX0y>9xa>Scojeg%u)2E@hD}beqk=uHnp7AThMMIz1ELUd%EbjfIjQ^<02Sx> zw}#=-R#Jmk)TSgZmG2Tzu>WW^%5&NHtrowGg*W+fCco(LUJZMkN~oOJFD^WInMCBp z%v2@2Z*z~#?^YxqZ%`}HYWi!38a3>j2$v*>q1%({HLcUZ=zm;};ofR!H}0AH?A{>% zqspgc+10=jj23-Jmxzk7nwzTKT|>en)E zY|EfFkDO0$WJTQ%(MkXGBQ+@tL=YKjW$uN6B!NH=qDQRndxN03SiJqgNE?F5& zaK2LacN!%9GS+b$f2BI)8e)TYJ+*oQ?=rrZT=NBWUB?FhI%0TDZt~PFm0L|_{wC+Q zDrs3F=jV$>m@n5WFzX9DjOL&G%2sXrmz_G`>3rG$@z{Ma{d}ISnYdJ@iB~n3|NS1gPx9FJL#CB{qT{RmdQ};I992@MpKt0!=|1{fCc2xX z;dwql+VXTUMlNVeWMEf=a=E{+N`r`sA3B?P=&oVAx1gfuNgCQ|HBH>8_7Iz*V&H=H zt#(1suleTTL2rzk4!BYOE%fBa4_DQBV|CZQnbJ@OSSiU(FCt^GPpHFWprzL~bR$$7 z)e8+!McSeR(bN49Q^!N-$zb*6o}$r34CLw|RP-B4>zdgzt@?PkfAqvB7eBJ2DUiJ% znVue-8_lR)Wjt{(U0}c-(Et4nr`Pm16!3_7rKuT*0##)DGix-7ztT z&}?X$DA>5~TN(FA=h;#Zzi7~sVc33szQY{7 z#4_joREpIpMQ3BMRJ8o~LG7YyY62C8Bs%FOA_>JF@pz0KDbVjPP&j49iZUWf9#87d zw6gQTwzB;~5m%hUhF`Ex2x=$0P-*0~6~RI#=`FzBaiwm&+jTi9?t8OjjZG~k5X)7L zK^0uV{*1ppS3P4M8gRln&NfXM@%RQoyIol}##zS$;b>mCA)&5XgKZ7;-F2bxL_;q@ej&I81+CrcVhWZCwj zL8JBM38!*F&)#p?G4eehm_&p9$wL~V22;gKJ+N|j-o0HgbX8H>4S3a;Xmb9rlhroY zIkkH;imXORtJ0CsuRJrQ(RL-s!Y*&YK19k@gxwv0-Zr^&q(H}C<>H%D?{SpPVGM0M z8Eob67AN)`y%hMZP~{Id6^PLdsr2gS#y<|V=`$`X(-+Aw{oUl*?BctwR5R*>+_Zm8 zWyfholISxS554}vJ)ZfjQO>t-O4DqX8F)=`YChH;OcqMB2fH&Gr*?pt+$`fCi$?aU}+*6;K)hM80rpL6j!RNNC zqSl7Ed)^uN9N2+s+QP1@_<0m9Y9_f}%oF3xn)zJFtjc%_ihGIuz<+)o)D_`{UD3M* zc&0RPs!0#<&CCJQ4}MoOjKT>e77FPI(t4>N(kInH%6tXktA9(0Y6bGd z(SHl%V0oHJ!F&g!!DeK8%izzM43y>;B|!Hxk}XAQ}z2j(=3JO}SvTgW`41 zun(XF&9UpFK%{0#hM{YD>WKgH>lqI|Q4DNMlPHY6rhRpr%oCkH%p||Y_Do*SVKwA? z9al;&onXCaugM|mHBLx)!wJ@iNej}TXJYkeY$udXnF|CRo;R(Pt5)S#U1)TA8Q{00QA5A)dF~RJo-Hx5FG+B@MgbE_H?kg@FGKdUI~Xz{x<@ngJ4dQ z^jHjQ4UHL;JItbYURYR;{GnG$>%C+$HPwE&!5<+l?9s^j9CC+U25%fcwp<8uy_; z2=D$Xwzv>)2Jee=R7Mhh4aaXpBxN10kXN3Lzp<8dB|gkycq&#|qq%42T#|5$9j#>c zX!~2aI{eiHl~~~nUCN8gq#=1w;J~x|qh%j12TSt%*m2pfdIw%QBjvv;%mE`Jd=#YI zoJfUv>&El8k((Bv@IucYbjeB&9ou4;NmPzbK6(SO>M!Bg3=aGw?<|?ms;6Xi(tmr| zMOwd9l)nj?vR6m+1H#4SHlv-g8xeu(E|4L2Ik=!6H@-(-X>!90Qc@+>ii);#pC$c% z-|)lKTRkP$hD?EI)}_h(%10pUA@R_?D${D_*8RJkwKoDde%391q=@Yt7K0=|1rm;B z7j5+yDmQK7!a7MC<>4%8n}^^u7JF0;JE|Bx{L`V3G7+Wab0U4gJ`q|h7iS^|V7Suo z`VDhrF|YfT?bhuvEYj!t!gfp87n6ZUI#rPt`RpUX2DqnlN)37M5gje`Jj`xf1-jZ8 z>d&99x@Lf}@)%n9jp#HfqI_3^LN-7vaz8EJ2|lISPWl*CC=ZmA9Tyr|nK@C+?Se{^ z{_5fnyAj5iq8S)K$SOmu<1;HDil`%d_DEn>qF}Vi4Upj3qiFlsYRD|ik<^k(%S!m- zk%U7y(Ar~~aSx~?J`E@P1XPz8{FQ4$u9VdmdHn$hj9?8~KoVQPr*q*wH9#VL=1m)^ z!?;AH2(LH?+cVxr<`_cTsAF16TVl4ttjf#ESx8IrgWRyhPx`{jWvRVD(7z7oWcuwN z={q^Js`o{>|pzZT>+aox~xArolmQ^uqT=&!=}Yaj>k zC{DWIbRBWClt#ssDSxrO>}!qjrw7?`t@RyNSnsB;Y1C@X*DS2+?CqvBc?Vf}Hk{I5 zc5djpDi8K1hTjWx4s_yOZFp#*1eW=#`;ivS!X!gyn}1pab#sU7(?AX-%`>W#oG0dI z5{+4(2n?Zr(C*MkqRSQ~4evb0?>~GX-#}M1Kqi-?dN$G>>p&{&#vJd-*IZGODDF~$ zE=;y%cO;!oYs>2L?&7hrDGx(HE0_fsLtpLz^EXUzz(Riw(;{0+z_q z4|fC;`szAaJsy5(vv_8$j}NKJ!bWO^|0Zj%kKZM=n`v~|b(qZ{s;SPX@$nzA@KHak zGsb9&DVetvCNfDf{a#iLNL?aLFsF(>JJrI*Vx(@TIWR~@B;TN1%nmebhYZa7B+h#s zykxE*#!WB2AUTu4Qfc3xbAJ2wT+2mYD^3!1=EHjh?=1>*u0eY=ofh7@I)wMjY;w8m zaCTFPo-lTXFH>dYqk2cWgVx3FGS6_(iv1X&PoCL@RVl-I#I+4)bxe{R{Hh)wS%GRZ z-!Se;S(_*tKUvX&8=jWf^#5SF+;Ix@g%BVN@&N|{UDrr?BwH=Ujx7A-E`vYVF ztG-SDTf5kVG4GHnb2?ICymLuYHvV=qst2;=CoWcMkXfze6^vxxgq7>g;n+HAH%W?`qf6h zQ>LAP>DZpeRp>8tzY$g;tYLHiqjyTpRwzaF=`rcr;c*7ssr7FN(g2=s<|p7dQ9_tE z(_l6k1I$F4QxPyn_ffHSzF;Ur_Wbw1u}!{V>XaW0@aGxsb-Xu}Jw1!k_+B6|{PO*Xwl+r2~D4{z`|7Z8yjGp6V2abPD-J(|99Z|2M1pCkpsIr(OF`N1ewBYqP?MD7lg4AzPt%zHI z$Uis!w#jGD)=u%B#|ot#rODEs5)M}7XqF+KPc)3NS^UK4Wn{|cbnW{Ky%nb6)A(*) zH@jb(=s47G);z<#5fcGv&Wut}j+d5ytkq-IBTJlok%Au@gc5_>Zot)#&Ca6UOiz&Z zrIWj*0X!k~OqllN$^1CS_V!e)WP6(W_V@_%_k)mJzC*~y^34rSZoohz^;b`*{e8t^ zqeb(-hu$&WRQNmPE;!=JcUBnkz!!+i46Ik&H1mOOu*VeIiQNK7Q4s^>l>N~fGKuEa2h+UMYyU(p7Em0zKYLQMLV?cjO&!9? zO*`U!@PI^Q0cqnoQDQL4i5|f=vyMTku94{eU>D=BiRswCJ}?^kv-BsfyOtol|MKSg zPxb3J=xVB}(QBpAKjVMF#C;MgF2l#&K)%(n1AiA)c2sabY-7{?tb}YX-T_#~INO1} zp|_Q8-$ryBD+Q){PF&=>YEsJOCLf5FCRYYXWcRK%TO);syaYfncs4)t^vJ83u?*Fa zr8-iIHK8$E_)2e{(3SfYz0_+>{SAQDeWjNSx&0zPaqA$~889cmj-|2lAxE&=H=3Tb zf9G~kx!3uTNFtUk!4S6+i$`uEizv()ruOslRt1R_Ko3en?SUhGWIvu-|LnRP0!cxp+PK?t2sf{<3VbAJO zDNMo+RLaAfWA0AwOv|mEL*p + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/material_maker/theme/new_theme_icons.svg.import b/material_maker/theme/new_theme_icons.svg.import new file mode 100644 index 000000000..15ca4e2d2 --- /dev/null +++ b/material_maker/theme/new_theme_icons.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://71dq6l67irh5" +path="res://.godot/imported/new_theme_icons.svg-311b4b29e327a617fca12fcb13bb842e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://material_maker/theme/new_theme_icons.svg" +dest_files=["res://.godot/imported/new_theme_icons.svg-311b4b29e327a617fca12fcb13bb842e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/material_maker/widgets/float_edit/float_edit.gd b/material_maker/widgets/float_edit/float_edit.gd index d218f2278..525e21af0 100644 --- a/material_maker/widgets/float_edit/float_edit.gd +++ b/material_maker/widgets/float_edit/float_edit.gd @@ -2,6 +2,8 @@ extends Container var float_value: float = 0.5 @export var value: float = 0.5 : + get: + return float_value set(new_value): set_value(new_value) @@ -29,7 +31,6 @@ var _step_decimals := 2 var start_position: float var last_position: float var start_value: float -var modifiers: int var from_lower_bound: bool = false var from_upper_bound: bool = false var actually_dragging: bool = false @@ -37,7 +38,7 @@ var actually_dragging: bool = false signal value_changed(value) signal value_changed_undo(value, merge_undo) -enum Modes {IDLE, SLIDING, EDITING} +enum Modes {IDLE, SLIDING, EDITING, UNEDITABLE} var mode := Modes.IDLE: set(m): mode = m @@ -55,6 +56,15 @@ var mode := Modes.IDLE: $Edit.mouse_filter = MOUSE_FILTER_IGNORE update() +var editable := true: + set(val): + if val: + mode = Modes.UNEDITABLE + else: + mode = Modes.IDLE + get: + return mode != Modes.UNEDITABLE + func get_value() -> Variant: if $Edit.text.is_valid_float(): @@ -101,17 +111,6 @@ func set_value_from_expression_editor(v: String) -> void: set_value(v, true) -func get_modifiers(event:InputEvent) -> int: - var new_modifiers = 0 - if event.shift_pressed: - new_modifiers |= 1 - if event.is_command_or_control_pressed(): - new_modifiers |= 2 - if event.alt_pressed: - new_modifiers |= 4 - return new_modifiers - - func _input(event:InputEvent) -> void: if not Rect2(Vector2(), size).has_point(get_local_mouse_position()): return @@ -137,7 +136,6 @@ func _gui_input(event: InputEvent) -> void: from_lower_bound = float_value <= min_value from_upper_bound = float_value >= max_value actually_dragging = false - modifiers = get_modifiers(event) $Edit.grab_focus() if event.is_action("ui_accept") and event.pressed: diff --git a/material_maker/widgets/lattice_edit/lattice_editor.tscn b/material_maker/widgets/lattice_edit/lattice_editor.tscn index bc3295d9c..0287086d6 100644 --- a/material_maker/widgets/lattice_edit/lattice_editor.tscn +++ b/material_maker/widgets/lattice_edit/lattice_editor.tscn @@ -23,6 +23,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 2 [node name="LatticeMenu" type="PanelContainer" parent="." index="1"] layout_mode = 0 @@ -32,6 +33,7 @@ theme_type_variation = &"MM_PanelMenuBar" [node name="HBox" type="HBoxContainer" parent="LatticeMenu" index="0"] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" [node name="Label" type="Label" parent="LatticeMenu/HBox" index="0"] layout_mode = 2 diff --git a/material_maker/widgets/pixels_edit/pixels_editor.gd b/material_maker/widgets/pixels_edit/pixels_editor.gd index c397e863f..5048eb42b 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.gd +++ b/material_maker/widgets/pixels_edit/pixels_editor.gd @@ -38,6 +38,8 @@ func update_color_buttons() -> void: while colors.get_child_count() < palette_size: var color_button : ColorPickerButton = ColorPickerButton.new() color_button.custom_minimum_size = Vector2i(25, 25) + color_button.theme_type_variation = "MM_PanelMenuButton" + color_button.tooltip_text = "Click to select; Right click to change color" color_button.toggle_mode = true color_button.button_mask = MOUSE_BUTTON_MASK_RIGHT colors.add_child(color_button) @@ -48,7 +50,7 @@ func update_color_buttons() -> void: colors.get_child(ci).color = pixels.palette[ci] if current_color < 0 or current_color >= palette_size: current_color = 0 - #colors.get_child(current_color).set_focus() = + func set_current_color(c : int) -> void: current_color = c diff --git a/material_maker/widgets/pixels_edit/pixels_editor.tscn b/material_maker/widgets/pixels_edit/pixels_editor.tscn index 0eb472162..f86445dba 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.tscn +++ b/material_maker/widgets/pixels_edit/pixels_editor.tscn @@ -2,14 +2,14 @@ [ext_resource type="PackedScene" uid="uid://yeaj0tj7b08i" path="res://material_maker/widgets/curve_edit/curve_view.tscn" id="1_07x6a"] [ext_resource type="Script" path="res://material_maker/widgets/pixels_edit/pixels_editor.gd" id="2_bpua1"] -[ext_resource type="Texture2D" uid="uid://cvorvnes6fiq7" path="res://material_maker/icons/icons.svg" id="3_hp3rp"] +[ext_resource type="Texture2D" uid="uid://dnyj2y655qc1o" path="res://material_maker/theme/new_theme_icons.png" id="3_pl73b"] [ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="4_xknkb"] [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="4_ymoey"] [ext_resource type="Script" path="res://material_maker/widgets/pixels_edit/settings_panel.gd" id="5_t0t7h"] -[sub_resource type="AtlasTexture" id="AtlasTexture_01pt6"] -atlas = ExtResource("3_hp3rp") -region = Rect2(0, 0, 16, 16) +[sub_resource type="AtlasTexture" id="AtlasTexture_4fnpr"] +atlas = ExtResource("3_pl73b") +region = Rect2(32, 0, 16, 16) [node name="PixelsEditor" instance=ExtResource("1_07x6a")] offset_left = 0.0 @@ -32,14 +32,15 @@ theme_type_variation = &"MM_PanelMenuBar" [node name="UI" type="HBoxContainer" parent="PixelMenu" index="0"] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" [node name="PixelSettings" type="Button" parent="PixelMenu/UI" index="0"] -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 25) layout_mode = 2 +tooltip_text = "Pixel Settings" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true -icon = SubResource("AtlasTexture_01pt6") -icon_alignment = 1 +icon = SubResource("AtlasTexture_4fnpr") script = ExtResource("4_xknkb") [node name="SettingsPanel" type="PanelContainer" parent="PixelMenu/UI/PixelSettings" index="0"] diff --git a/material_maker/widgets/splines_edit/splines_editor.tscn b/material_maker/widgets/splines_edit/splines_editor.tscn index 4636bd3ac..2481f263d 100644 --- a/material_maker/widgets/splines_edit/splines_editor.tscn +++ b/material_maker/widgets/splines_edit/splines_editor.tscn @@ -1,24 +1,41 @@ -[gd_scene load_steps=13 format=3 uid="uid://b08bcbwwosrrk"] +[gd_scene load_steps=14 format=3 uid="uid://b08bcbwwosrrk"] [ext_resource type="PackedScene" uid="uid://yeaj0tj7b08i" path="res://material_maker/widgets/curve_edit/curve_view.tscn" id="1_a4o1g"] [ext_resource type="Script" path="res://material_maker/widgets/splines_edit/splines_editor.gd" id="2_tepru"] -[ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="3_lfcdr"] +[ext_resource type="Texture2D" uid="uid://dnyj2y655qc1o" path="res://material_maker/theme/new_theme_icons.png" id="3_nl1x0"] [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="4_2po4g"] -[ext_resource type="Texture2D" uid="uid://d044i7mtagf51" path="res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png" id="5_o8gcm"] -[ext_resource type="Texture2D" uid="uid://r18qvh06tu10" path="res://material_maker/theme/dark/vslider_grabber.png" id="6_bja86"] -[ext_resource type="Texture2D" uid="uid://lgj5c6kuqwit" path="res://material_maker/theme/dark/windowdialog_close.png" id="6_vsfaf"] -[ext_resource type="Texture2D" uid="uid://2dheuv4p0d2d" path="res://material_maker/theme/dark/tabcontainer_increment_highlight.png" id="7_vr6t5"] -[ext_resource type="Texture2D" uid="uid://dysx1qjceb1od" path="res://material_maker/theme/dark/optionbutton_arrow.png" id="8_olqcj"] [sub_resource type="ButtonGroup" id="ButtonGroup_w4n15"] -[sub_resource type="AtlasTexture" id="AtlasTexture_b45mn"] -atlas = ExtResource("3_lfcdr") -region = Rect2(192, 96, 16, 16) +[sub_resource type="AtlasTexture" id="AtlasTexture_km108"] +atlas = ExtResource("3_nl1x0") +region = Rect2(64, 0, 16, 16) -[sub_resource type="AtlasTexture" id="AtlasTexture_3lo2j"] -atlas = ExtResource("3_lfcdr") -region = Rect2(176, 96, 16, 16) +[sub_resource type="AtlasTexture" id="AtlasTexture_v6wki"] +atlas = ExtResource("3_nl1x0") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ofrl2"] +atlas = ExtResource("3_nl1x0") +region = Rect2(32, 16, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6siad"] +atlas = ExtResource("3_nl1x0") +region = Rect2(48, 16, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8xl33"] +atlas = ExtResource("3_nl1x0") +region = Rect2(64, 16, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l8ytc"] +atlas = ExtResource("3_nl1x0") +region = Rect2(80, 16, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_koac8"] +atlas = ExtResource("3_nl1x0") +region = Rect2(96, 16, 16, 16) + +[sub_resource type="Curve2D" id="Curve2D_koywa"] [node name="SplinesEditor" instance=ExtResource("1_a4o1g")] offset_left = 0.0 @@ -47,6 +64,7 @@ theme_type_variation = &"MM_PanelMenuBar" [node name="HBox" type="HBoxContainer" parent="SplinesMenu" index="0"] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" [node name="DrawMode" type="Button" parent="SplinesMenu/HBox" index="0"] unique_name_in_owner = true @@ -57,8 +75,7 @@ theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_pressed = true button_group = SubResource("ButtonGroup_w4n15") -icon = ExtResource("5_o8gcm") -icon_alignment = 1 +icon = SubResource("AtlasTexture_km108") [node name="SelectMode" type="Button" parent="SplinesMenu/HBox" index="1"] unique_name_in_owner = true @@ -68,8 +85,7 @@ tooltip_text = "Select" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_group = SubResource("ButtonGroup_w4n15") -icon = ExtResource("6_bja86") -icon_alignment = 1 +icon = SubResource("AtlasTexture_v6wki") [node name="VSeparator" type="VSeparator" parent="SplinesMenu/HBox" index="2"] layout_mode = 2 @@ -80,24 +96,21 @@ custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Delete Point" theme_type_variation = &"MM_PanelMenuButton" -icon = ExtResource("6_vsfaf") -icon_alignment = 1 +icon = SubResource("AtlasTexture_ofrl2") [node name="UnlinkControlPoints" type="Button" parent="SplinesMenu/HBox" index="4"] custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Unlink Points" theme_type_variation = &"MM_PanelMenuButton" -icon = SubResource("AtlasTexture_b45mn") -icon_alignment = 1 +icon = SubResource("AtlasTexture_6siad") [node name="LinkControlPoints" type="Button" parent="SplinesMenu/HBox" index="5"] custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Link Points" theme_type_variation = &"MM_PanelMenuButton" -icon = SubResource("AtlasTexture_3lo2j") -icon_alignment = 1 +icon = SubResource("AtlasTexture_8xl33") [node name="VSeparator2" type="VSeparator" parent="SplinesMenu/HBox" index="6"] layout_mode = 2 @@ -107,16 +120,16 @@ theme_type_variation = &"MM_PanelMenuSeparator" custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Progressive" +theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true -icon = ExtResource("7_vr6t5") -icon_alignment = 1 +icon = SubResource("AtlasTexture_l8ytc") [node name="ReverseSelection" type="Button" parent="SplinesMenu/HBox" index="8"] custom_minimum_size = Vector2(25, 25) layout_mode = 2 tooltip_text = "Reverse Order" -icon = ExtResource("8_olqcj") -icon_alignment = 1 +theme_type_variation = &"MM_PanelMenuButton" +icon = SubResource("AtlasTexture_koac8") [node name="WidthLabel" type="Label" parent="SplinesMenu/HBox" index="9"] layout_mode = 2 @@ -125,10 +138,14 @@ text = "Width:" [node name="Width" parent="SplinesMenu/HBox" index="10" instance=ExtResource("4_2po4g")] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuFloatEdit" value = 0.05 max_value = 0.2 float_only = true +[node name="Path2D" type="Path2D" parent="SplinesMenu/HBox/Width" index="2"] +curve = SubResource("Curve2D_koywa") + [node name="OffsetLabel" type="Label" parent="SplinesMenu/HBox" index="11"] layout_mode = 2 theme_type_variation = &"MM_NodePropertyLabel" @@ -136,6 +153,7 @@ text = "Offset:" [node name="Offset" parent="SplinesMenu/HBox" index="12" instance=ExtResource("4_2po4g")] layout_mode = 2 +theme_type_variation = &"MM_PanelMenuFloatEdit" value = 0.0 max_value = 10.0 step = 0.01 From c205b706d1e033faf8d5ecf451dd91aacd88b50a Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Wed, 4 Sep 2024 11:01:03 +0200 Subject: [PATCH 16/31] Small cleanup/fixes --- material_maker/nodes/generic/generic.gd | 2 +- .../panels/preview_2d/preview_2d.gd | 39 +++++++++---------- .../windows/sdf_builder/preview_3d.gd | 2 +- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/material_maker/nodes/generic/generic.gd b/material_maker/nodes/generic/generic.gd index 40a20d428..ceb78eb74 100644 --- a/material_maker/nodes/generic/generic.gd +++ b/material_maker/nodes/generic/generic.gd @@ -584,7 +584,7 @@ func update_node() -> void: func load_generator() -> void: var dialog = preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() - dialog.custom_minimum_size = Vector2(500, 500) + dialog.min_size = Vector2(500, 500) dialog.access = FileDialog.ACCESS_FILESYSTEM dialog.file_mode = FileDialog.FILE_MODE_OPEN_FILE dialog.add_filter("*.mmg;Material Maker Generator") diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index 7687517e1..50415938b 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -76,10 +76,7 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: source = MMGenBase.get_default_generated_shader() else: generator = null - #if get_node_or_null("ContextMenu") != null: - #var item_index = $ContextMenu.get_item_index(MENU_EXPORT_ANIMATION) - #if item_index != -1: - #$ContextMenu.set_item_disabled(item_index, !is_instance_valid(g)) + generator_changed.emit() update_material(source) @@ -112,23 +109,23 @@ func on_dep_update_value(_buffer_name, parameter_name, value) -> bool: func on_resized() -> void: material.set_shader_parameter("preview_2d_size", size) -func export_again() -> void: - if last_export_filename == "": - return - var filename = last_export_filename - var extension = filename.get_extension() - var regex : RegEx = RegEx.new() - regex.compile("(.*)_(\\d+)$") - var re_match : RegExMatch = regex.search(filename.get_basename()) - if re_match != null: - var value = re_match.strings[2].to_int() - var value_length = re_match.strings[2].length() - while true: - value += 1 - filename = "%s_%0*d.%s" % [ re_match.strings[1], value_length, value, extension ] - if ! FileAccess.file_exists(filename): - break - export_as_image_file(filename, last_export_size) +#func export_again() -> void: + #if last_export_filename == "": + #return + #var filename = last_export_filename + #var extension = filename.get_extension() + #var regex : RegEx = RegEx.new() + #regex.compile("(.*)_(\\d+)$") + #var re_match : RegExMatch = regex.search(filename.get_basename()) + #if re_match != null: + #var value = re_match.strings[2].to_int() + #var value_length = re_match.strings[2].length() + #while true: + #value += 1 + #filename = "%s_%0*d.%s" % [ re_match.strings[1], value_length, value, extension ] + #if ! FileAccess.file_exists(filename): + #break + #export_as_image_file(filename, last_export_size) func export_animation() -> void: if generator == null: diff --git a/material_maker/windows/sdf_builder/preview_3d.gd b/material_maker/windows/sdf_builder/preview_3d.gd index db46d0065..2801a2818 100644 --- a/material_maker/windows/sdf_builder/preview_3d.gd +++ b/material_maker/windows/sdf_builder/preview_3d.gd @@ -52,7 +52,7 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: variables.COLOR_FCT = node_prefix+"_c" variables.INDEX_UNIFORM = "p_"+node_prefix+"_index" var shader_code : String = mm_preprocessor.preprocess_file("res://material_maker/windows/sdf_builder/preview_3d.gdshader", variables) - material = mm_deps.buffer_create_shader_material("preview_"+str(get_instance_id()), MMShaderMaterial.new(material), shader_code) + material = await mm_deps.buffer_create_shader_material("preview_"+str(get_instance_id()), MMShaderMaterial.new(material), shader_code) for u in source.uniforms: if u.value: material.set_shader_parameter(u.name, u.value) From 0d515352d9f42b879d9c26a1e0e070456d5cbf49 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Wed, 4 Sep 2024 11:39:12 +0200 Subject: [PATCH 17/31] Cleanup + Small fixes Makes sure Preview-Controls get cleared when node get's deleted. Removes old export code. Makes default fallback shader transparent instead of black. --- .../material_maker/engine/nodes/gen_base.gd | 4 +- .../panels/preview_2d/preview_2d.gd | 47 +------------------ .../panels/preview_2d/preview_2d_panel.gd | 5 ++ 3 files changed, 8 insertions(+), 48 deletions(-) diff --git a/addons/material_maker/engine/nodes/gen_base.gd b/addons/material_maker/engine/nodes/gen_base.gd index 9e2b6ae5e..3aada88e7 100644 --- a/addons/material_maker/engine/nodes/gen_base.gd +++ b/addons/material_maker/engine/nodes/gen_base.gd @@ -201,10 +201,10 @@ func _ready() -> void: static func get_default_generated_shader() -> ShaderCode: var rv : ShaderCode = ShaderCode.new() - rv.output_type = "f" + rv.output_type = "rgba" rv.output_values.f = "0.0" rv.output_values.rgb = "vec3(0.0)" - rv.output_values.rgba = "vec4(0.0, 0.0, 0.0, 1.0)" + rv.output_values.rgba = "vec4(0.0, 0.0, 0.0, 0.0)" return rv func _post_load() -> void: diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index 50415938b..af864ca0b 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -13,11 +13,6 @@ var last_export_filename : String = "" var last_export_size = 4 -const MENU_EXPORT_AGAIN : int = 1000 -const MENU_EXPORT_ANIMATION : int = 1001 -const MENU_EXPORT_TAA_RENDER : int = 1002 -const MENU_EXPORT_CUSTOM_SIZE : int = 1003 - signal generator_changed func _enter_tree(): @@ -109,24 +104,6 @@ func on_dep_update_value(_buffer_name, parameter_name, value) -> bool: func on_resized() -> void: material.set_shader_parameter("preview_2d_size", size) -#func export_again() -> void: - #if last_export_filename == "": - #return - #var filename = last_export_filename - #var extension = filename.get_extension() - #var regex : RegEx = RegEx.new() - #regex.compile("(.*)_(\\d+)$") - #var re_match : RegExMatch = regex.search(filename.get_basename()) - #if re_match != null: - #var value = re_match.strings[2].to_int() - #var value_length = re_match.strings[2].length() - #while true: - #value += 1 - #filename = "%s_%0*d.%s" % [ re_match.strings[1], value_length, value, extension ] - #if ! FileAccess.file_exists(filename): - #break - #export_as_image_file(filename, last_export_size) - func export_animation() -> void: if generator == null: return @@ -144,29 +121,6 @@ func export_taa() -> void: window.set_source(generator, output) window.popup_centered() -func _on_Export_id_pressed(id : int) -> void: - var export_size - if id == MENU_EXPORT_CUSTOM_SIZE: - var custom_size_dialog = load("res://material_maker/panels/preview_2d/custom_size_dialog.tscn").instantiate() - mm_globals.main_window.add_dialog(custom_size_dialog) - export_size = await custom_size_dialog.ask() - if ! export_size.has("size"): - return - export_size = export_size.size - else: - export_size = 64 << id - var file_dialog = preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() - file_dialog.min_size = Vector2(500, 500) - file_dialog.access = FileDialog.ACCESS_FILESYSTEM - file_dialog.file_mode = FileDialog.FILE_MODE_SAVE_FILE - file_dialog.add_filter("*.png;PNG image file") - file_dialog.add_filter("*.exr;EXR image file") - if mm_globals.config.has_section_key("path", "save_preview"): - file_dialog.current_dir = mm_globals.config.get_value("path", "save_preview") - var files = await file_dialog.select_files() - if files.size() == 1: - # TODO: fix custom export size here - export_as_image_file(files[0], 64 << id) func create_image(renderer_function : String, params : Array, image_size : int) -> void: var source = MMGenBase.get_default_generated_shader() @@ -199,6 +153,7 @@ func export_to_reference(resolution_id : int): await create_image("copy_to_texture", [ texture ], 64 << resolution_id) mm_globals.main_window.get_panel("Reference").add_reference(texture) + func _on_Preview2D_visibility_changed(): if need_generate and is_visible_in_tree(): set_generator(generator, output, true) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index 22ecd7a2a..3340b6374 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -129,14 +129,19 @@ func setup_controls(filter : String = "") -> void: for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(generator, edited_parameter) else: + for c in get_children(): + if c.has_method("setup_control"): + c.setup_control(null, []) for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(null, []) + func _on_complex_parameters_item_selected(index): var parameter = $ComplexParameters.get_item_metadata(index) for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(generator, [ parameter ]) + var center_transform : Transform2D = Transform2D(0, Vector2(0.0, 0.0)) var local_rotate : float = 0.0 var local_scale : float = 1.0 From 05f50e1d38a604579a10a0a9fbb44370cb8dd87d Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Wed, 4 Sep 2024 11:44:17 +0200 Subject: [PATCH 18/31] Fix Lock Icon --- .../panels/preview_2d/preview_2d_panel.tscn | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 135727f5e..be0d7d85e 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -17,8 +17,6 @@ [ext_resource type="Script" path="res://material_maker/panels/preview_2d/export_menu.gd" id="16_0fl4g"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/two_icon_toggle_button.gd" id="17_07kc5"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="18_kn37y"] -[ext_resource type="Texture2D" uid="uid://chdyfit4rv7ss" path="res://material_maker/theme/dark/curve_preset_bounce.tres" id="20_t88qf"] -[ext_resource type="Texture2D" uid="uid://cwoby8q4quah3" path="res://material_maker/theme/dark/curve_preset_bevel.tres" id="21_eie3q"] [sub_resource type="Shader" id="Shader_0mwcg"] resource_local_to_scene = true @@ -102,6 +100,14 @@ keycode = 69 [sub_resource type="Shortcut" id="Shortcut_llf02"] events = [SubResource("InputEventKey_rhw4u")] +[sub_resource type="AtlasTexture" id="AtlasTexture_khhtg"] +atlas = ExtResource("10_l6r53") +region = Rect2(96, 80, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nstr1"] +atlas = ExtResource("10_l6r53") +region = Rect2(80, 80, 16, 16) + [node name="Preview2D" instance=ExtResource("3")] material = SubResource("2") custom_minimum_size = Vector2(100, 100) @@ -680,8 +686,8 @@ tooltip_text = "Lock this preview" toggle_mode = true icon_alignment = 1 script = ExtResource("17_07kc5") -icon_normal = ExtResource("20_t88qf") -icon_pressed = ExtResource("21_eie3q") +icon_normal = SubResource("AtlasTexture_khhtg") +icon_pressed = SubResource("AtlasTexture_nstr1") [connection signal="gui_input" from="." to="." method="_on_gui_input"] [connection signal="mouse_entered" from="." to="." method="_on_Preview2D_mouse_entered"] From b1f50bed3ce3e79d632013d63e24292feb72fbea Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sat, 7 Sep 2024 16:37:10 +0200 Subject: [PATCH 19/31] Fix Easy SDF 2D preview UI --- export_presets.cfg | 8 +++---- .../panels/preview_2d/preview_2d_panel.gd | 3 +++ .../panels/preview_2d/preview_2d_panel.tscn | 1 + .../windows/sdf_builder/preview_2d.tscn | 21 ++++++++++--------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/export_presets.cfg b/export_presets.cfg index 2f0ed0eb5..fe0f895af 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -7,10 +7,10 @@ advanced_options=false dedicated_server=false custom_features="" export_filter="resources" -export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_editor.gd", "res://material_maker/widgets/gradient_editor/gradient_editor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn") +export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn") include_filter="*.tmpl" exclude_filter="*.ptex,*.mmn,*.mmg" -export_path="C:/Users/rodzi/Downloads/material_maker_1_4a1_windows/material_maker.exe" +export_path="../../../rodzi/Downloads/material_maker_1_4a1_windows/material_maker.exe" encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false @@ -77,7 +77,7 @@ advanced_options=false dedicated_server=false custom_features="" export_filter="resources" -export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_editor.gd", "res://material_maker/widgets/gradient_editor/gradient_editor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn") +export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn", "res://material_maker/panels/common/menu_bar_button_with_panel.gd", "res://material_maker/panels/preview_2d/export_menu.gd", "res://material_maker/panels/preview_2d/two_icon_toggle_button.gd", "res://material_maker/panels/preview_2d/view_menu.gd", "res://material_maker/theme/new_theme_icons.png", "res://material_maker/theme/new_theme_icons.svg") include_filter="*.tmpl" exclude_filter="*.ptex,*.mmn,*.mmg" export_path="../material_maker.x86_64" @@ -122,7 +122,7 @@ advanced_options=false dedicated_server=false custom_features="" export_filter="resources" -export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_editor.gd", "res://material_maker/widgets/gradient_editor/gradient_editor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn") +export_files=PackedStringArray("res://addons/flexible_layout/arrow.svg", "res://addons/flexible_layout/flexible_dragger.gd", "res://addons/flexible_layout/flexible_dragger.tscn", "res://addons/flexible_layout/flexible_layout.gd", "res://addons/flexible_layout/flexible_layout.tscn", "res://addons/flexible_layout/flexible_overlay.gd", "res://addons/flexible_layout/flexible_overlay.tscn", "res://addons/flexible_layout/flexible_tab.gd", "res://addons/flexible_layout/flexible_tab.tscn", "res://addons/flexible_layout/flexible_tabs.gd", "res://addons/flexible_layout/flexible_tabs.tscn", "res://addons/flexible_layout/tab.svg", "res://addons/flexible_layout/undock.png", "res://addons/material_maker/engine/dependencies.gd", "res://addons/material_maker/engine/io_types.gd", "res://addons/material_maker/engine/loader.gd", "res://addons/material_maker/engine/logger.gd", "res://addons/material_maker/engine/multi_renderer.gd", "res://addons/material_maker/engine/nodes/buffer_compute.tres", "res://addons/material_maker/engine/nodes/gen_base.gd", "res://addons/material_maker/engine/nodes/gen_brush.gd", "res://addons/material_maker/engine/nodes/gen_buffer.gd", "res://addons/material_maker/engine/nodes/gen_comment.gd", "res://addons/material_maker/engine/nodes/gen_context.gd", "res://addons/material_maker/engine/nodes/gen_debug.gd", "res://addons/material_maker/engine/nodes/gen_export.gd", "res://addons/material_maker/engine/nodes/gen_graph.gd", "res://addons/material_maker/engine/nodes/gen_image.gd", "res://addons/material_maker/engine/nodes/gen_ios.gd", "res://addons/material_maker/engine/nodes/gen_iterate_buffer.gd", "res://addons/material_maker/engine/nodes/gen_material.gd", "res://addons/material_maker/engine/nodes/gen_meshmap.gd", "res://addons/material_maker/engine/nodes/gen_remote.gd", "res://addons/material_maker/engine/nodes/gen_reroute.gd", "res://addons/material_maker/engine/nodes/gen_sdf.gd", "res://addons/material_maker/engine/nodes/gen_shader.gd", "res://addons/material_maker/engine/nodes/gen_switch.gd", "res://addons/material_maker/engine/nodes/gen_text.gd", "res://addons/material_maker/engine/nodes/gen_texture.gd", "res://addons/material_maker/engine/nodes/gen_webcam.gd", "res://addons/material_maker/engine/nodes/iterate_buffer_compute.tres", "res://addons/material_maker/engine/paths.gd", "res://addons/material_maker/engine/pipeline/compute_shader.gd", "res://addons/material_maker/engine/pipeline/pipeline.gd", "res://addons/material_maker/engine/pipeline/rendering_pipeline.gd", "res://addons/material_maker/engine/pipeline/texture.gd", "res://addons/material_maker/engine/preprocessor.gd", "res://addons/material_maker/engine/renderer.gd", "res://addons/material_maker/engine/renderer.tscn", "res://addons/material_maker/engine/shader_base.gd", "res://addons/material_maker/engine/shader_compute.gd", "res://addons/material_maker/engine/shader_error_handler.gd", "res://addons/material_maker/engine/shader_material.gd", "res://addons/material_maker/engine/text_resource.gd", "res://addons/material_maker/loaders/mesh_loader.gd", "res://addons/material_maker/loaders/obj_loader.gd", "res://addons/material_maker/map_generator/ao_fragment.tres", "res://addons/material_maker/map_generator/ao_vertex.tres", "res://addons/material_maker/map_generator/bvh_generator.gd", "res://addons/material_maker/map_generator/common_fragment.tres", "res://addons/material_maker/map_generator/curvature_generator.gd", "res://addons/material_maker/map_generator/curvature_vertex.tres", "res://addons/material_maker/map_generator/denoise_compute.tres", "res://addons/material_maker/map_generator/dilate_1_compute.tres", "res://addons/material_maker/map_generator/dilate_2_compute.tres", "res://addons/material_maker/map_generator/map_generator.gd", "res://addons/material_maker/map_generator/mesh_rendering_pipeline.gd", "res://addons/material_maker/map_generator/normal_fragment.tres", "res://addons/material_maker/map_generator/normal_vertex.tres", "res://addons/material_maker/map_generator/normalize_compute.tres", "res://addons/material_maker/map_generator/position_vertex.tres", "res://addons/material_maker/map_generator/seams_1_compute.tres", "res://addons/material_maker/map_generator/seams_2_compute.tres", "res://addons/material_maker/map_generator/tangent_vertex.tres", "res://addons/material_maker/parser/glsl_parser.gd", "res://addons/material_maker/parser/glsl_parser_base.gd", "res://addons/material_maker/parser/parser_base.gd", "res://addons/material_maker/sdf_builder/base.gd", "res://addons/material_maker/sdf_builder/icons/icons.svg", "res://addons/material_maker/sdf_builder/sdf2d/annular.gd", "res://addons/material_maker/sdf_builder/sdf2d/bend.gd", "res://addons/material_maker/sdf_builder/sdf2d/box.gd", "res://addons/material_maker/sdf_builder/sdf2d/circle.gd", "res://addons/material_maker/sdf_builder/sdf2d/color.gd", "res://addons/material_maker/sdf_builder/sdf2d/difference.gd", "res://addons/material_maker/sdf_builder/sdf2d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf2d/flip.gd", "res://addons/material_maker/sdf_builder/sdf2d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf2d/line.gd", "res://addons/material_maker/sdf_builder/sdf2d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf2d/morph.gd", "res://addons/material_maker/sdf_builder/sdf2d/ngon.gd", "res://addons/material_maker/sdf_builder/sdf2d/polygon.gd", "res://addons/material_maker/sdf_builder/sdf2d/round.gd", "res://addons/material_maker/sdf_builder/sdf2d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf2d/stairs.gd", "res://addons/material_maker/sdf_builder/sdf2d/star.gd", "res://addons/material_maker/sdf_builder/sdf2d/union.gd", "res://addons/material_maker/sdf_builder/sdf3d/annular.gd", "res://addons/material_maker/sdf_builder/sdf3d/bend.gd", "res://addons/material_maker/sdf_builder/sdf3d/box.gd", "res://addons/material_maker/sdf_builder/sdf3d/color.gd", "res://addons/material_maker/sdf_builder/sdf3d/cylinder.gd", "res://addons/material_maker/sdf_builder/sdf3d/difference.gd", "res://addons/material_maker/sdf_builder/sdf3d/distort.gd", "res://addons/material_maker/sdf_builder/sdf3d/elongate.gd", "res://addons/material_maker/sdf_builder/sdf3d/extrusion.gd", "res://addons/material_maker/sdf_builder/sdf3d/flip.gd", "res://addons/material_maker/sdf_builder/sdf3d/intersection.gd", "res://addons/material_maker/sdf_builder/sdf3d/mirror.gd", "res://addons/material_maker/sdf_builder/sdf3d/morph.gd", "res://addons/material_maker/sdf_builder/sdf3d/revolution.gd", "res://addons/material_maker/sdf_builder/sdf3d/round.gd", "res://addons/material_maker/sdf_builder/sdf3d/smooth_union.gd", "res://addons/material_maker/sdf_builder/sdf3d/sphere.gd", "res://addons/material_maker/sdf_builder/sdf3d/torus.gd", "res://addons/material_maker/sdf_builder/sdf3d/twist.gd", "res://addons/material_maker/sdf_builder/sdf3d/union.gd", "res://addons/material_maker/sdf_builder/sdf_builder.gd", "res://addons/material_maker/sdf_builder/sdf_builder.tscn", "res://addons/material_maker/sdf_builder/tex/blend.gd", "res://addons/material_maker/sdf_builder/tex/brightness_contrast.gd", "res://addons/material_maker/sdf_builder/tex/deform.gd", "res://addons/material_maker/sdf_builder/tex/fbm.gd", "res://addons/material_maker/sdf_builder/tex/pattern.gd", "res://addons/material_maker/sdf_builder/tex/simple_gradient.gd", "res://addons/material_maker/sdf_builder/tex/step.gd", "res://addons/material_maker/sdf_builder/tex/uniform.gd", "res://addons/material_maker/sdf_builder/tex/uniform_gs.gd", "res://addons/material_maker/shader_functions.tres", "res://addons/material_maker/types/curve.gd", "res://addons/material_maker/types/gradient.gd", "res://addons/material_maker/types/lattice.gd", "res://addons/material_maker/types/pixels.gd", "res://addons/material_maker/types/polygon.gd", "res://addons/material_maker/types/splines.gd", "res://addons/material_maker/types/types.gd", "res://default_env.tres", "res://icon.png", "res://material_maker/console.gd", "res://material_maker/darken.gd", "res://material_maker/darken.tscn", "res://material_maker/fonts/DroidSansFallback.ttf", "res://material_maker/fonts/DroidSansJapanese.ttf", "res://material_maker/fonts/hack.ttf", "res://material_maker/fonts/vegur_regular.otf", "res://material_maker/globals.gd", "res://material_maker/globals.tscn", "res://material_maker/globals_menu_manager.gd", "res://material_maker/icons/add.tres", "res://material_maker/icons/add_generic.tres", "res://material_maker/icons/buffer.tres", "res://material_maker/icons/buffer_paused.tres", "res://material_maker/icons/close.tres", "res://material_maker/icons/color_palette.png", "res://material_maker/icons/color_picker.png", "res://material_maker/icons/custom.png", "res://material_maker/icons/down.tres", "res://material_maker/icons/edit.tres", "res://material_maker/icons/eye_closed.tres", "res://material_maker/icons/eye_open.tres", "res://material_maker/icons/godot_logo.svg", "res://material_maker/icons/icons.gd", "res://material_maker/icons/icons.svg", "res://material_maker/icons/icons.tres", "res://material_maker/icons/link.tres", "res://material_maker/icons/lmb.tres", "res://material_maker/icons/minimize.tres", "res://material_maker/icons/mmb.tres", "res://material_maker/icons/ok.tres", "res://material_maker/icons/output_preview.tres", "res://material_maker/icons/paste_graph.tres", "res://material_maker/icons/paste_newgraph.tres", "res://material_maker/icons/paste_none.tres", "res://material_maker/icons/paste_palette.tres", "res://material_maker/icons/port_group_0.tres", "res://material_maker/icons/port_group_1.tres", "res://material_maker/icons/port_group_2.tres", "res://material_maker/icons/port_group_3.tres", "res://material_maker/icons/preview.png", "res://material_maker/icons/preview_locked.png", "res://material_maker/icons/randomness_locked.tres", "res://material_maker/icons/randomness_unlocked.tres", "res://material_maker/icons/remove.tres", "res://material_maker/icons/rmb.tres", "res://material_maker/icons/up.tres", "res://material_maker/locale/locale.gd", "res://material_maker/main_window.gd", "res://material_maker/main_window.tscn", "res://material_maker/main_window_layout.gd", "res://material_maker/main_window_projects_panel.gd", "res://material_maker/meshes/suzanne.obj", "res://material_maker/node_factory.gd", "res://material_maker/nodes/base.gd", "res://material_maker/nodes/comment/comment.gd", "res://material_maker/nodes/comment/comment.tscn", "res://material_maker/nodes/comment/palette_button.gd", "res://material_maker/nodes/debug/debug.gd", "res://material_maker/nodes/debug/debug.tscn", "res://material_maker/nodes/debug/debug_popup.gd", "res://material_maker/nodes/debug/debug_popup.tscn", "res://material_maker/nodes/edit_buttons.gd", "res://material_maker/nodes/edit_buttons.tscn", "res://material_maker/nodes/generic/generic.gd", "res://material_maker/nodes/generic/generic.tscn", "res://material_maker/nodes/ios/add.tscn", "res://material_maker/nodes/ios/ios.gd", "res://material_maker/nodes/ios/ios.tscn", "res://material_maker/nodes/ios/port.gd", "res://material_maker/nodes/ios/port.tscn", "res://material_maker/nodes/material_export/material_export.gd", "res://material_maker/nodes/material_export/material_export.tscn", "res://material_maker/nodes/minimal.gd", "res://material_maker/nodes/node_button.gd", "res://material_maker/nodes/node_button.tscn", "res://material_maker/nodes/remote/named_parameter_dialog.gd", "res://material_maker/nodes/remote/named_parameter_dialog.tscn", "res://material_maker/nodes/remote/remote.gd", "res://material_maker/nodes/remote/remote.tscn", "res://material_maker/nodes/reroute/reroute.gd", "res://material_maker/nodes/reroute/reroute.tscn", "res://material_maker/nodes/switch/switch.gd", "res://material_maker/nodes/switch/switch.tscn", "res://material_maker/nodes/tones/tones.gd", "res://material_maker/nodes/tones/tones.tscn", "res://material_maker/panel_container.gd", "res://material_maker/panels/brushes/brushes.gd", "res://material_maker/panels/brushes/brushes.tscn", "res://material_maker/panels/graph_edit/graph_edit.gd", "res://material_maker/panels/graph_edit/graph_edit.tscn", "res://material_maker/panels/hierarchy/hierarchy_panel.gd", "res://material_maker/panels/hierarchy/hierarchy_panel.tscn", "res://material_maker/panels/layers/add_layer_menu.tscn", "res://material_maker/panels/layers/icons/layer_mask.tres", "res://material_maker/panels/layers/icons/layer_paint.tres", "res://material_maker/panels/layers/icons/layer_proc.tres", "res://material_maker/panels/layers/icons/not_visible.tres", "res://material_maker/panels/layers/icons/visible.tres", "res://material_maker/panels/layers/layer_config_popup.gd", "res://material_maker/panels/layers/layer_config_popup.tscn", "res://material_maker/panels/layers/layer_tooltip.gd", "res://material_maker/panels/layers/layer_tooltip.tscn", "res://material_maker/panels/layers/layer_tooltip_thumbnail.gd", "res://material_maker/panels/layers/layer_tooltip_thumbnail.tscn", "res://material_maker/panels/layers/layers.gd", "res://material_maker/panels/layers/layers.tscn", "res://material_maker/panels/layers/layers_tree.gd", "res://material_maker/panels/library/button_greyed.tres", "res://material_maker/panels/library/create_lib_dialog.gd", "res://material_maker/panels/library/create_lib_dialog.tscn", "res://material_maker/panels/library/library.gd", "res://material_maker/panels/library/library.tscn", "res://material_maker/panels/library/library_tree.gd", "res://material_maker/panels/paint/collapse_button.gd", "res://material_maker/panels/paint/collapse_button.tscn", "res://material_maker/panels/paint/export.gd", "res://material_maker/panels/paint/export.tscn", "res://material_maker/panels/paint/layer_types/layer.gd", "res://material_maker/panels/paint/layer_types/layer_mask.gd", "res://material_maker/panels/paint/layer_types/layer_paint.gd", "res://material_maker/panels/paint/layer_types/layer_procedural.gd", "res://material_maker/panels/paint/paint.gd", "res://material_maker/panels/paint/paint.tscn", "res://material_maker/panels/paint/paint_layers.gd", "res://material_maker/panels/paint/paint_layers.tscn", "res://material_maker/panels/paint/paint_project_settings.gd", "res://material_maker/panels/paint/paint_project_settings.tscn", "res://material_maker/panels/parameters/parameters.gd", "res://material_maker/panels/parameters/parameters.tscn", "res://material_maker/panels/preview_2d/control_point.gd", "res://material_maker/panels/preview_2d/control_point.tscn", "res://material_maker/panels/preview_2d/custom_size_dialog.gd", "res://material_maker/panels/preview_2d/custom_size_dialog.tscn", "res://material_maker/panels/preview_2d/lines.gd", "res://material_maker/panels/preview_2d/preview_2d.gd", "res://material_maker/panels/preview_2d/preview_2d.tscn", "res://material_maker/panels/preview_2d/preview_2d_node.gd", "res://material_maker/panels/preview_2d/preview_2d_node.tscn", "res://material_maker/panels/preview_2d/preview_2d_panel.gd", "res://material_maker/panels/preview_2d/preview_2d_panel.tscn", "res://material_maker/panels/preview_3d/materials/shader_material_tesselated.tres", "res://material_maker/panels/preview_3d/materials/spatial_material.tres", "res://material_maker/panels/preview_3d/mesh_config_popup.gd", "res://material_maker/panels/preview_3d/mesh_config_popup.tscn", "res://material_maker/panels/preview_3d/preview_3d.gd", "res://material_maker/panels/preview_3d/preview_3d.tscn", "res://material_maker/panels/preview_3d/preview_3d_panel.gd", "res://material_maker/panels/preview_3d/preview_3d_panel.tscn", "res://material_maker/panels/preview_3d/preview_3d_scene.tscn", "res://material_maker/panels/preview_3d/preview_3d_ui.gd", "res://material_maker/panels/preview_3d/preview_3d_ui.tscn", "res://material_maker/panels/preview_3d/preview_light.gd", "res://material_maker/panels/preview_3d/preview_light.tscn", "res://material_maker/panels/preview_3d/preview_mesh.gd", "res://material_maker/panels/preview_3d/preview_objects.tscn", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cube.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Custom.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Cylinder.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Plane.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Prism.png", "res://material_maker/panels/preview_3d/thumbnails/meshes/Sphere.png", "res://material_maker/panels/reference/color_slot.gd", "res://material_maker/panels/reference/color_slot.tscn", "res://material_maker/panels/reference/gradient_slot.gd", "res://material_maker/panels/reference/gradient_slot.tscn", "res://material_maker/panels/reference/reference_panel.gd", "res://material_maker/panels/reference/reference_panel.tscn", "res://material_maker/projects_panel.tscn", "res://material_maker/theme/birch.tres", "res://material_maker/theme/dark.tres", "res://material_maker/theme/dark/checkbox_checked.png", "res://material_maker/theme/dark/checkbox_radio_checked.png", "res://material_maker/theme/dark/checkbox_radio_unchecked.png", "res://material_maker/theme/dark/checkbox_unchecked.png", "res://material_maker/theme/dark/checkbutton_off.png", "res://material_maker/theme/dark/checkbutton_off_disabled.png", "res://material_maker/theme/dark/checkbutton_on.png", "res://material_maker/theme/dark/checkbutton_on_disabled.png", "res://material_maker/theme/dark/colorpickerbutton_bg.png", "res://material_maker/theme/dark/curve_preset_bevel.tres", "res://material_maker/theme/dark/curve_preset_bounce.tres", "res://material_maker/theme/dark/curve_preset_easein.tres", "res://material_maker/theme/dark/curve_preset_easeinout.tres", "res://material_maker/theme/dark/curve_preset_easeout.tres", "res://material_maker/theme/dark/curve_preset_linear.tres", "res://material_maker/theme/dark/curve_preset_sawtooth.tres", "res://material_maker/theme/dark/curve_presets.svg", "res://material_maker/theme/dark/graphedit_minus.png", "res://material_maker/theme/dark/graphedit_more.png", "res://material_maker/theme/dark/graphedit_reset.png", "res://material_maker/theme/dark/graphedit_snap.png", "res://material_maker/theme/dark/graphnode_close.png", "res://material_maker/theme/dark/graphnode_port.png", "res://material_maker/theme/dark/graphnode_resizer.png", "res://material_maker/theme/dark/hslider_grabber.png", "res://material_maker/theme/dark/hslider_grabber_disabled.png", "res://material_maker/theme/dark/hslider_grabber_highlight.png", "res://material_maker/theme/dark/hslider_tick.png", "res://material_maker/theme/dark/hsplitcontainer_grabber.png", "res://material_maker/theme/dark/lineedit_clear.png", "res://material_maker/theme/dark/optionbutton_arrow.png", "res://material_maker/theme/dark/popupmenu_checked.png", "res://material_maker/theme/dark/popupmenu_radio_checked.png", "res://material_maker/theme/dark/popupmenu_radio_unchecked.png", "res://material_maker/theme/dark/popupmenu_submenu.png", "res://material_maker/theme/dark/popupmenu_unchecked.png", "res://material_maker/theme/dark/popupmenu_visibility_hidden.png", "res://material_maker/theme/dark/popupmenu_visibility_visible.png", "res://material_maker/theme/dark/popupmenu_visibility_xray.png", "res://material_maker/theme/dark/sb_checkbox_focus_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/dark/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_hslider_focus_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/dark/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/sb_panel_panelf_texture.png", "res://material_maker/theme/dark/sb_panel_panelnc_texture.png", "res://material_maker/theme/dark/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/dark/sb_progressbar_bg_texture.png", "res://material_maker/theme/dark/sb_progressbar_fg_texture.png", "res://material_maker/theme/dark/sb_textedit_completion_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/dark/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/dark/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/dark/tabcontainer_decrement.png", "res://material_maker/theme/dark/tabcontainer_decrement_highlight.png", "res://material_maker/theme/dark/tabcontainer_increment.png", "res://material_maker/theme/dark/tabcontainer_increment_highlight.png", "res://material_maker/theme/dark/tabcontainer_menu.png", "res://material_maker/theme/dark/tabcontainer_menu_highlight.png", "res://material_maker/theme/dark/tabs_close.png", "res://material_maker/theme/dark/tabs_decrement.png", "res://material_maker/theme/dark/tabs_decrement_highlight.png", "res://material_maker/theme/dark/tabs_increment.png", "res://material_maker/theme/dark/tabs_increment_highlight.png", "res://material_maker/theme/dark/textedit_fold.png", "res://material_maker/theme/dark/textedit_folded.png", "res://material_maker/theme/dark/textedit_space.png", "res://material_maker/theme/dark/textedit_tab.png", "res://material_maker/theme/dark/tree_arrow.png", "res://material_maker/theme/dark/tree_arrow_collapsed.png", "res://material_maker/theme/dark/tree_checked.png", "res://material_maker/theme/dark/tree_select_arrow.png", "res://material_maker/theme/dark/tree_unchecked.png", "res://material_maker/theme/dark/tree_updown.png", "res://material_maker/theme/dark/vslider_grabber.png", "res://material_maker/theme/dark/vslider_grabber_highlight.png", "res://material_maker/theme/dark/vsplitcontainer_grabber.png", "res://material_maker/theme/dark/windowdialog_close.png", "res://material_maker/theme/dark/windowdialog_close_highlight.png", "res://material_maker/theme/default.tres", "res://material_maker/theme/font.tres", "res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf", "res://material_maker/theme/green.tres", "res://material_maker/theme/light.tres", "res://material_maker/theme/light/checkbox_checked.png", "res://material_maker/theme/light/checkbox_radio_checked.png", "res://material_maker/theme/light/checkbox_radio_unchecked.png", "res://material_maker/theme/light/checkbox_unchecked.png", "res://material_maker/theme/light/checkbutton_off.png", "res://material_maker/theme/light/checkbutton_off_disabled.png", "res://material_maker/theme/light/checkbutton_on.png", "res://material_maker/theme/light/checkbutton_on_disabled.png", "res://material_maker/theme/light/colorpickerbutton_bg.png", "res://material_maker/theme/light/curve_preset_bevel.tres", "res://material_maker/theme/light/curve_preset_bounce.tres", "res://material_maker/theme/light/curve_preset_easein.tres", "res://material_maker/theme/light/curve_preset_easeinout.tres", "res://material_maker/theme/light/curve_preset_easeout.tres", "res://material_maker/theme/light/curve_preset_linear.tres", "res://material_maker/theme/light/curve_preset_sawtooth.tres", "res://material_maker/theme/light/curve_presets.svg", "res://material_maker/theme/light/graphedit_minus.png", "res://material_maker/theme/light/graphedit_more.png", "res://material_maker/theme/light/graphedit_reset.png", "res://material_maker/theme/light/graphedit_snap.png", "res://material_maker/theme/light/graphnode_close.png", "res://material_maker/theme/light/graphnode_port.png", "res://material_maker/theme/light/graphnode_resizer.png", "res://material_maker/theme/light/hslider_grabber.png", "res://material_maker/theme/light/hslider_grabber_disabled.png", "res://material_maker/theme/light/hslider_grabber_highlight.png", "res://material_maker/theme/light/hslider_tick.png", "res://material_maker/theme/light/hsplitcontainer_grabber.png", "res://material_maker/theme/light/lineedit_clear.png", "res://material_maker/theme/light/optionbutton_arrow.png", "res://material_maker/theme/light/popupmenu_checked.png", "res://material_maker/theme/light/popupmenu_radio_checked.png", "res://material_maker/theme/light/popupmenu_radio_unchecked.png", "res://material_maker/theme/light/popupmenu_submenu.png", "res://material_maker/theme/light/popupmenu_unchecked.png", "res://material_maker/theme/light/popupmenu_visibility_hidden.png", "res://material_maker/theme/light/popupmenu_visibility_visible.png", "res://material_maker/theme/light/popupmenu_visibility_xray.png", "res://material_maker/theme/light/sb_checkbox_focus_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_disabled_texture.png", "res://material_maker/theme/light/sb_colorpickerbutton_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_hscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_hscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_hslider_focus_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_disabled_texture.png", "res://material_maker/theme/light/sb_hslider_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_hsplitcontainer_bg_texture.png", "res://material_maker/theme/light/sb_panel_panelf_texture.png", "res://material_maker/theme/light/sb_panel_panelnc_texture.png", "res://material_maker/theme/light/sb_popupmenu_panel_disabled_texture.png", "res://material_maker/theme/light/sb_progressbar_bg_texture.png", "res://material_maker/theme/light/sb_progressbar_fg_texture.png", "res://material_maker/theme/light/sb_textedit_completion_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_highlight_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_pressed_texture.png", "res://material_maker/theme/light/sb_vscrollbar_grabber_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_focus_texture.png", "res://material_maker/theme/light/sb_vscrollbar_scroll_texture.png", "res://material_maker/theme/light/sb_vsplitcontainer_bg_texture.png", "res://material_maker/theme/light/tabcontainer_decrement.png", "res://material_maker/theme/light/tabcontainer_decrement_highlight.png", "res://material_maker/theme/light/tabcontainer_increment.png", "res://material_maker/theme/light/tabcontainer_increment_highlight.png", "res://material_maker/theme/light/tabcontainer_menu.png", "res://material_maker/theme/light/tabcontainer_menu_highlight.png", "res://material_maker/theme/light/tabs_close.png", "res://material_maker/theme/light/tabs_decrement.png", "res://material_maker/theme/light/tabs_decrement_highlight.png", "res://material_maker/theme/light/tabs_increment.png", "res://material_maker/theme/light/tabs_increment_highlight.png", "res://material_maker/theme/light/textedit_fold.png", "res://material_maker/theme/light/textedit_folded.png", "res://material_maker/theme/light/textedit_space.png", "res://material_maker/theme/light/textedit_tab.png", "res://material_maker/theme/light/tree_arrow.png", "res://material_maker/theme/light/tree_arrow_collapsed.png", "res://material_maker/theme/light/tree_checked.png", "res://material_maker/theme/light/tree_select_arrow.png", "res://material_maker/theme/light/tree_unchecked.png", "res://material_maker/theme/light/tree_updown.png", "res://material_maker/theme/light/vslider_grabber.png", "res://material_maker/theme/light/vslider_grabber_highlight.png", "res://material_maker/theme/light/vsplitcontainer_grabber.png", "res://material_maker/theme/light/windowdialog_close.png", "res://material_maker/theme/light/windowdialog_close_highlight.png", "res://material_maker/theme/mangosteen.tres", "res://material_maker/theme/modern.tres", "res://material_maker/tools/environment_manager/environment_manager.gd", "res://material_maker/tools/environment_manager/environment_manager.tscn", "res://material_maker/tools/library_manager/library.gd", "res://material_maker/tools/library_manager/library_manager.gd", "res://material_maker/tools/map_renderer/map_renderer.gd", "res://material_maker/tools/map_renderer/map_renderer.tscn", "res://material_maker/tools/painter/brush_preview.gd", "res://material_maker/tools/painter/brush_preview.tscn", "res://material_maker/tools/painter/painter.gd", "res://material_maker/tools/painter/painter.tscn", "res://material_maker/tools/painter/painter_viewport.gd", "res://material_maker/tools/painter/painter_viewport.tscn", "res://material_maker/tools/painter/shaders/brush.gdshader", "res://material_maker/tools/painter/shaders/brush_common_decl.gdshader", "res://material_maker/tools/painter/shaders/brush_pattern.gdshader", "res://material_maker/tools/painter/shaders/brush_stamp.gdshader", "res://material_maker/tools/painter/shaders/brush_uv_pattern.gdshader", "res://material_maker/tools/painter/shaders/init.tres", "res://material_maker/tools/painter/shaders/init_channels.tres", "res://material_maker/tools/painter/shaders/init_copy_shader.tres", "res://material_maker/tools/painter/shaders/paint_shader_template.tres", "res://material_maker/tools/painter/shaders/t2v_fragment.tres", "res://material_maker/tools/painter/shaders/t2v_vertex.tres", "res://material_maker/tools/painter/shaders/v2t_fragment.tres", "res://material_maker/tools/painter/shaders/v2t_vertex.tres", "res://material_maker/tools/share/broken_link.tres", "res://material_maker/tools/share/golden_link.tres", "res://material_maker/tools/share/hdri/kloofendal_48d_partly_cloudy_1k.exr", "res://material_maker/tools/share/link.tres", "res://material_maker/tools/share/login_dialog.gd", "res://material_maker/tools/share/login_dialog.tscn", "res://material_maker/tools/share/preview_scene.tscn", "res://material_maker/tools/share/preview_scene_viewer.tscn", "res://material_maker/tools/share/preview_viewport.gd", "res://material_maker/tools/share/preview_viewport.tscn", "res://material_maker/tools/share/share_button.gd", "res://material_maker/tools/share/share_button.tscn", "res://material_maker/tools/share/share_http_request.gd", "res://material_maker/tools/share/share_node_dialog.gd", "res://material_maker/tools/share/share_node_dialog.tscn", "res://material_maker/tools/share/upload_dialog.gd", "res://material_maker/tools/share/upload_dialog.tscn", "res://material_maker/tools/undo_redo/undo_redo.gd", "res://material_maker/widgets/code_editor/code_editor.gd", "res://material_maker/widgets/code_editor/code_editor.tscn", "res://material_maker/widgets/color_picker_button/color_picker_button.gd", "res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn", "res://material_maker/widgets/curve_edit/control_point.gd", "res://material_maker/widgets/curve_edit/control_point.tscn", "res://material_maker/widgets/curve_edit/curve_dialog.gd", "res://material_maker/widgets/curve_edit/curve_dialog.tscn", "res://material_maker/widgets/curve_edit/curve_edit.gd", "res://material_maker/widgets/curve_edit/curve_edit.tscn", "res://material_maker/widgets/curve_edit/curve_editor.gd", "res://material_maker/widgets/curve_edit/curve_editor.tscn", "res://material_maker/widgets/curve_edit/curve_view.gd", "res://material_maker/widgets/curve_edit/curve_view.tscn", "res://material_maker/widgets/curve_edit/presets_selector.gd", "res://material_maker/widgets/curve_edit/slope_point.gd", "res://material_maker/widgets/desc_button/desc_button.gd", "res://material_maker/widgets/desc_button/desc_button.tscn", "res://material_maker/widgets/file_picker_button/file_picker_button.gd", "res://material_maker/widgets/file_picker_button/file_picker_button.tscn", "res://material_maker/widgets/float_edit/expression_editor.gd", "res://material_maker/widgets/float_edit/expression_editor.tscn", "res://material_maker/widgets/float_edit/float_edit.gd", "res://material_maker/widgets/float_edit/float_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit.gd", "res://material_maker/widgets/gradient_editor/gradient_edit.tscn", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.gd", "res://material_maker/widgets/gradient_editor/gradient_edit_cursor.tscn", "res://material_maker/widgets/gradient_editor/gradient_popup.gd", "res://material_maker/widgets/gradient_editor/gradient_popup.tscn", "res://material_maker/widgets/graph_tree/graph_tree.gd", "res://material_maker/widgets/graph_tree/graph_tree.tscn", "res://material_maker/widgets/histogram/histogram.gd", "res://material_maker/widgets/histogram/histogram.tscn", "res://material_maker/widgets/image_picker_button/image_picker_button.gd", "res://material_maker/widgets/image_picker_button/image_picker_button.tscn", "res://material_maker/widgets/lattice_edit/lattice_dialog.gd", "res://material_maker/widgets/lattice_edit/lattice_dialog.tscn", "res://material_maker/widgets/lattice_edit/lattice_edit.gd", "res://material_maker/widgets/lattice_edit/lattice_edit.tscn", "res://material_maker/widgets/lattice_edit/lattice_editor.gd", "res://material_maker/widgets/lattice_edit/lattice_editor.tscn", "res://material_maker/widgets/lattice_edit/lattice_view.gd", "res://material_maker/widgets/lattice_edit/lattice_view.tscn", "res://material_maker/widgets/linked_widgets/editable_label.gd", "res://material_maker/widgets/linked_widgets/editable_label.tscn", "res://material_maker/widgets/linked_widgets/link.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.gd", "res://material_maker/widgets/pixels_edit/pixels_dialog.tscn", "res://material_maker/widgets/pixels_edit/pixels_edit.gd", "res://material_maker/widgets/pixels_edit/pixels_edit.tscn", "res://material_maker/widgets/pixels_edit/pixels_editor.gd", "res://material_maker/widgets/pixels_edit/pixels_editor.tscn", "res://material_maker/widgets/pixels_edit/pixels_view.gd", "res://material_maker/widgets/pixels_edit/pixels_view.tscn", "res://material_maker/widgets/polygon_edit/control_point.gd", "res://material_maker/widgets/polygon_edit/control_point.tscn", "res://material_maker/widgets/polygon_edit/polygon_dialog.gd", "res://material_maker/widgets/polygon_edit/polygon_dialog.tscn", "res://material_maker/widgets/polygon_edit/polygon_edit.gd", "res://material_maker/widgets/polygon_edit/polygon_edit.tscn", "res://material_maker/widgets/polygon_edit/polygon_editor.gd", "res://material_maker/widgets/polygon_edit/polygon_editor.tscn", "res://material_maker/widgets/polygon_edit/polygon_view.gd", "res://material_maker/widgets/polygon_edit/polygon_view.tscn", "res://material_maker/widgets/port_group_button/port_group_button.gd", "res://material_maker/widgets/port_group_button/port_group_button.tscn", "res://material_maker/widgets/render_counter/render_counter.gd", "res://material_maker/widgets/render_counter/render_counter.tscn", "res://material_maker/widgets/size_option_button/size_option_button.gd", "res://material_maker/widgets/splines_edit/splines_dialog.gd", "res://material_maker/widgets/splines_edit/splines_dialog.tscn", "res://material_maker/widgets/splines_edit/splines_edit.gd", "res://material_maker/widgets/splines_edit/splines_edit.tscn", "res://material_maker/widgets/splines_edit/splines_editor.gd", "res://material_maker/widgets/splines_edit/splines_editor.tscn", "res://material_maker/widgets/splines_edit/splines_view.gd", "res://material_maker/widgets/splines_edit/splines_view.tscn", "res://material_maker/widgets/tabs/tabs.gd", "res://material_maker/windows/about/about.gd", "res://material_maker/windows/about/about.tscn", "res://material_maker/windows/about/discord.png", "res://material_maker/windows/about/epic_megagrant.svg", "res://material_maker/windows/about/facebook.png", "res://material_maker/windows/about/github.png", "res://material_maker/windows/about/icon.png", "res://material_maker/windows/about/itchio.png", "res://material_maker/windows/about/patreon.png", "res://material_maker/windows/about/twitter.png", "res://material_maker/windows/about/youtube.png", "res://material_maker/windows/accept_dialog/accept_dialog.gd", "res://material_maker/windows/accept_dialog/accept_dialog.tscn", "res://material_maker/windows/add_node_popup/add_node_popup.gd", "res://material_maker/windows/add_node_popup/add_node_popup.tscn", "res://material_maker/windows/add_node_popup/quick_button.gd", "res://material_maker/windows/add_node_popup/quick_button.tscn", "res://material_maker/windows/desc_dialog/desc_dialog.gd", "res://material_maker/windows/desc_dialog/desc_dialog.tscn", "res://material_maker/windows/environment_editor/environment_editor.gd", "res://material_maker/windows/environment_editor/environment_editor.tscn", "res://material_maker/windows/environment_editor/environment_editor_scene.tscn", "res://material_maker/windows/environment_editor/environment_editor_viewport.tscn", "res://material_maker/windows/environment_editor/new_environment.png", "res://material_maker/windows/export_animation/export_animation.gd", "res://material_maker/windows/export_animation/export_animation.tscn", "res://material_maker/windows/export_taa/accumulate_compute.tres", "res://material_maker/windows/export_taa/divide_compute.tres", "res://material_maker/windows/export_taa/export_taa.gd", "res://material_maker/windows/export_taa/export_taa.tscn", "res://material_maker/windows/file_dialog/fav_button.tscn", "res://material_maker/windows/file_dialog/file_dialog.gd", "res://material_maker/windows/file_dialog/file_dialog.tscn", "res://material_maker/windows/file_dialog/left_panel.gd", "res://material_maker/windows/file_dialog/left_panel.tscn", "res://material_maker/windows/line_dialog/line_dialog.gd", "res://material_maker/windows/line_dialog/line_dialog.tscn", "res://material_maker/windows/load_from_website/load_from_website.gd", "res://material_maker/windows/load_from_website/load_from_website.tscn", "res://material_maker/windows/material_editor/export_editor.gd", "res://material_maker/windows/material_editor/export_editor.tscn", "res://material_maker/windows/material_editor/expression_line_edit.gd", "res://material_maker/windows/material_editor/expression_line_edit.tscn", "res://material_maker/windows/material_editor/material_editor.gd", "res://material_maker/windows/material_editor/material_editor.tscn", "res://material_maker/windows/new_painter/new_painter.gd", "res://material_maker/windows/new_painter/new_painter.tscn", "res://material_maker/windows/node_editor/enum_editor.gd", "res://material_maker/windows/node_editor/enum_editor.tscn", "res://material_maker/windows/node_editor/input.gd", "res://material_maker/windows/node_editor/input.tscn", "res://material_maker/windows/node_editor/node_editor.gd", "res://material_maker/windows/node_editor/node_editor.tscn", "res://material_maker/windows/node_editor/node_editor_item_list.gd", "res://material_maker/windows/node_editor/output.gd", "res://material_maker/windows/node_editor/output.tscn", "res://material_maker/windows/node_editor/parameter.gd", "res://material_maker/windows/node_editor/parameter.tscn", "res://material_maker/windows/node_editor/parameter_boolean.gd", "res://material_maker/windows/node_editor/parameter_boolean.tscn", "res://material_maker/windows/node_editor/parameter_color.gd", "res://material_maker/windows/node_editor/parameter_color.tscn", "res://material_maker/windows/node_editor/parameter_curve.gd", "res://material_maker/windows/node_editor/parameter_curve.tscn", "res://material_maker/windows/node_editor/parameter_enum.gd", "res://material_maker/windows/node_editor/parameter_enum.tscn", "res://material_maker/windows/node_editor/parameter_float.gd", "res://material_maker/windows/node_editor/parameter_float.tscn", "res://material_maker/windows/node_editor/parameter_gradient.gd", "res://material_maker/windows/node_editor/parameter_gradient.tscn", "res://material_maker/windows/node_editor/parameter_lattice.gd", "res://material_maker/windows/node_editor/parameter_lattice.tscn", "res://material_maker/windows/node_editor/parameter_pixels.gd", "res://material_maker/windows/node_editor/parameter_pixels.tscn", "res://material_maker/windows/node_editor/parameter_polygon.gd", "res://material_maker/windows/node_editor/parameter_polygon.tscn", "res://material_maker/windows/node_editor/parameter_polyline.tscn", "res://material_maker/windows/node_editor/parameter_size.gd", "res://material_maker/windows/node_editor/parameter_size.tscn", "res://material_maker/windows/node_editor/parameter_splines.gd", "res://material_maker/windows/node_editor/parameter_splines.tscn", "res://material_maker/windows/preferences/bool_option.gd", "res://material_maker/windows/preferences/bool_option.tscn", "res://material_maker/windows/preferences/float_option.gd", "res://material_maker/windows/preferences/float_option.tscn", "res://material_maker/windows/preferences/lang_option.gd", "res://material_maker/windows/preferences/language_download.gd", "res://material_maker/windows/preferences/language_download.tscn", "res://material_maker/windows/preferences/preferences.gd", "res://material_maker/windows/preferences/preferences.tscn", "res://material_maker/windows/progress_window/progress_window.gd", "res://material_maker/windows/progress_window/progress_window.tscn", "res://material_maker/windows/sdf_builder/gizmo.gd", "res://material_maker/windows/sdf_builder/gizmo.gdshader", "res://material_maker/windows/sdf_builder/gizmo.tscn", "res://material_maker/windows/sdf_builder/gizmo_arrow.gd", "res://material_maker/windows/sdf_builder/gizmo_arrow.tscn", "res://material_maker/windows/sdf_builder/preview_2d.gd", "res://material_maker/windows/sdf_builder/preview_2d.gdshader", "res://material_maker/windows/sdf_builder/preview_2d.tscn", "res://material_maker/windows/sdf_builder/preview_3d.gd", "res://material_maker/windows/sdf_builder/preview_3d.gdshader", "res://material_maker/windows/sdf_builder/preview_3d.tscn", "res://material_maker/windows/sdf_builder/sdf_builder.gd", "res://material_maker/windows/sdf_builder/sdf_builder.tscn", "res://material_maker/windows/sdf_builder/sdf_builder_tree.gd", "res://parse_args.gd", "res://parse_args.tscn", "res://splash_screen/arrow.png", "res://splash_screen/backgrounds/angel_beanbag_chair.png", "res://splash_screen/backgrounds/angel_soft_nurball.png", "res://splash_screen/backgrounds/cgmytro_old_doors.png", "res://splash_screen/backgrounds/cybereality_brutalism.png", "res://splash_screen/backgrounds/cybereality_dirty_tiles.png", "res://splash_screen/backgrounds/cybereality_future_visions.png", "res://splash_screen/backgrounds/droppedbeat_matrix_rain.tres", "res://splash_screen/backgrounds/droppedbeat_procedural_material.png", "res://splash_screen/backgrounds/droppedbeat_spiral_trails.tres", "res://splash_screen/backgrounds/droppedbeat_vending_machines.png", "res://splash_screen/backgrounds/oneiric_worlds_zefyr.png", "res://splash_screen/backgrounds/paulo_falcao_fractal_octahedron.tres", "res://splash_screen/backgrounds/paulo_falcao_green_thing.png", "res://splash_screen/backgrounds/paulo_falcao_terminator_ball.tres", "res://splash_screen/backgrounds/pavel_oliva_carved_wood.png", "res://splash_screen/backgrounds/pavel_oliva_celestial_floor.png", "res://splash_screen/backgrounds/pavel_oliva_cursed_planks.png", "res://splash_screen/backgrounds/pavel_oliva_flowing_lava.png", "res://splash_screen/backgrounds/pavel_oliva_lace.png", "res://splash_screen/backgrounds/pavel_oliva_pavement_generator.png", "res://splash_screen/backgrounds/pavel_oliva_stylized_pavement.png", "res://splash_screen/backgrounds/pavel_oliva_treasures.png", "res://splash_screen/backgrounds/pavel_oliva_vintage_luggage.png", "res://splash_screen/backgrounds/pixelmuncher_golden_tiles.png", "res://splash_screen/rodz_labs_logo.png", "res://splash_screen/splash_screen.gd", "res://splash_screen/splash_screen.gdshader", "res://splash_screen/splash_screen.tscn", "res://splash_screen/splash_screen_bottom.gdshader", "res://splash_screen/splash_title.png", "res://start.gd", "res://start.tscn") include_filter="*.tmpl" exclude_filter="*.ptex,*.mmn,*.mmg" export_path="./material_maker_macosx.dmg.zip" diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index 3340b6374..b0a823590 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -42,6 +42,9 @@ func _ready(): func clear() -> void: set_generator(null) %PreviewLocked.button_pressed = false + + %PreviewLocked.visible = preview_mode != Modes.CUSTOM_PREVIEW + %ExportMenu.visible = preview_mode != Modes.CUSTOM_PREVIEW func get_shader_custom_functions(): diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index be0d7d85e..2cdf734f2 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -533,6 +533,7 @@ custom_minimum_size = Vector2(25, 0) layout_mode = 2 [node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] +unique_name_in_owner = true custom_minimum_size = Vector2(40, 25) layout_mode = 2 tooltip_text = "Export" diff --git a/material_maker/windows/sdf_builder/preview_2d.tscn b/material_maker/windows/sdf_builder/preview_2d.tscn index 33cc2723a..fe14683c3 100644 --- a/material_maker/windows/sdf_builder/preview_2d.tscn +++ b/material_maker/windows/sdf_builder/preview_2d.tscn @@ -26,26 +26,27 @@ shader = SubResource("4") [node name="Preview2D" instance=ExtResource("1")] material = SubResource("3") +offset_right = 428.0 +offset_bottom = 210.0 script = ExtResource("2") shader_accumulate = "" shader_divide = "" -[node name="View" parent="ContextMenu" index="3"] -item_count = 4 - [node name="Iteration" parent="Accumulate" index="0"] material = SubResource("5") -[node name="UI" type="HBoxContainer" parent="." index="17"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 +[node name="PanelContainer" type="PanelContainer" parent="MenuBar/HBox" index="1"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuBar" + +[node name="UI" type="HBoxContainer" parent="MenuBar/HBox/PanelContainer" index="0"] +unique_name_in_owner = true +layout_mode = 2 -[node name="View" type="OptionButton" parent="UI" index="0"] +[node name="View" type="OptionButton" parent="MenuBar/HBox/PanelContainer/UI" index="0"] layout_mode = 2 item_count = 6 popup/item_0/text = "SDF+Albedo" -popup/item_0/id = 0 popup/item_1/text = "SDF" popup/item_1/id = 1 popup/item_2/text = "Albedo" @@ -57,4 +58,4 @@ popup/item_4/id = 4 popup/item_5/text = "Emission" popup/item_5/id = 5 -[connection signal="item_selected" from="UI/View" to="." method="_on_View_item_selected"] +[connection signal="item_selected" from="MenuBar/HBox/PanelContainer/UI/View" to="." method="_on_View_item_selected"] From 3579926b7d7454a970287323110509790b7cbf80 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 11:23:53 +0200 Subject: [PATCH 20/31] Fix preview locking --- material_maker/panels/graph_edit/graph_edit.gd | 6 ++++-- material_maker/panels/preview_2d/preview_2d_panel.gd | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/material_maker/panels/graph_edit/graph_edit.gd b/material_maker/panels/graph_edit/graph_edit.gd index 6af45b9d7..922da1b43 100644 --- a/material_maker/panels/graph_edit/graph_edit.gd +++ b/material_maker/panels/graph_edit/graph_edit.gd @@ -881,7 +881,7 @@ func get_current_preview(slot : int = 0) -> Preview: return current_preview[slot] -func set_current_preview(slot : int, node, output_index : int = 0, locked = false) -> void: +func set_current_preview(slot: int, node: GraphNode, output_index: int = 0, locked := false, force_unlock := false) -> void: var preview = null var old_preview = null var old_locked_preview = null @@ -897,7 +897,8 @@ func set_current_preview(slot : int, node, output_index : int = 0, locked = fals else: if is_instance_valid(node) and current_preview[slot] != null and current_preview[slot].generator != node.generator: old_preview = current_preview[slot].generator - locked_preview[slot] = null + if force_unlock: + locked_preview[slot] = null current_preview[slot] = preview preview_changed.emit(self) @@ -909,6 +910,7 @@ func set_current_preview(slot : int, node, output_index : int = 0, locked = fals if c is GraphNode and (c.generator == old_preview or c.generator == old_locked_preview): c.queue_redraw() + func request_popup(node_name : String , slot_index : int, _release_position : Vector2, connect_output : bool) -> void: # Check if the connector was actually dragged var node : GraphNode = get_node(node_name) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index b0a823590..33ad337ae 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -43,7 +43,7 @@ func clear() -> void: set_generator(null) %PreviewLocked.button_pressed = false - %PreviewLocked.visible = preview_mode != Modes.CUSTOM_PREVIEW + %PreviewLocked.visible = false %ExportMenu.visible = preview_mode != Modes.CUSTOM_PREVIEW @@ -55,6 +55,8 @@ func set_generator(g : MMGenBase, o : int = 0, force : bool = false) -> void: super.set_generator(g, o, force) update_shader_options() + %PreviewLocked.visible = g != null and preview_mode != Modes.CUSTOM_PREVIEW + if preview_mode != Modes.CUSTOM_PREVIEW: var current_graph: MMGraphEdit = find_parent("MainWindow").get_current_graph_edit() if current_graph: @@ -294,4 +296,4 @@ func _on_preview_locked_toggled(toggled_on: bool) -> void: var prev = current_graph.get_current_preview(preview_mode-1) if not prev: return - current_graph.set_current_preview(preview_mode-1, prev.node, prev.output_index, toggled_on) + current_graph.set_current_preview(preview_mode-1, prev.node, prev.output_index, toggled_on, not toggled_on) From 4f1e115043d18e9cf6882348f7c65815c179399d Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 11:25:52 +0200 Subject: [PATCH 21/31] Only change preview if node has output port --- material_maker/panels/graph_edit/graph_edit.gd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/material_maker/panels/graph_edit/graph_edit.gd b/material_maker/panels/graph_edit/graph_edit.gd index 922da1b43..46c53bdc1 100644 --- a/material_maker/panels/graph_edit/graph_edit.gd +++ b/material_maker/panels/graph_edit/graph_edit.gd @@ -865,7 +865,8 @@ func _on_GraphEdit_node_selected(node : GraphNode) -> void: for n in get_selected_nodes(): if n.generator == current_preview[0].generator: return - set_current_preview(0, node) + if node.get_output_port_count(): + set_current_preview(0, node) undoredo_move_node_selection_changed = true mm_globals.main_window.update_menus() From ac112776f897665bc7c578ff1ab11fee2d54e14f Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 20:01:07 +0200 Subject: [PATCH 22/31] Multiple fixes - Wrap Pixel Colors Buttons at 8 - make panels toplevel (to not make them cutof when panel is to small) - move ComplexParamter to menu bar --- .../panels/preview_2d/preview_2d_panel.gd | 27 ++++++++++--------- .../panels/preview_2d/preview_2d_panel.tscn | 26 +++++++++--------- .../widgets/pixels_edit/pixels_editor.tscn | 9 ++++--- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.gd b/material_maker/panels/preview_2d/preview_2d_panel.gd index 33ad337ae..c34d51d93 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.gd +++ b/material_maker/panels/preview_2d/preview_2d_panel.gd @@ -109,31 +109,32 @@ func setup_controls(filter : String = "") -> void: var edited_parameter : Array = [] match complex_param_defs.size(): 0: - $ComplexParameters.clear() - $ComplexParameters.visible = false + %ComplexParameters.clear() + %ComplexParameters.visible = false 1: edited_parameter = [complex_param_defs[0]] - $ComplexParameters.clear() - $ComplexParameters.visible = false + %ComplexParameters.clear() + %ComplexParameters.visible = false _: - if $ComplexParameters.item_count == complex_param_defs.size(): + if %ComplexParameters.item_count == complex_param_defs.size(): var changed : bool = false - for i in $ComplexParameters.item_count: - if $ComplexParameters.get_item_text(i) != complex_param_defs[i].name: + for i in %ComplexParameters.item_count: + if %ComplexParameters.get_item_text(i) != complex_param_defs[i].name: changed = true if not changed: return edited_parameter = [complex_param_defs[0]] - $ComplexParameters.clear() + %ComplexParameters.clear() for i in range(complex_param_defs.size()): - $ComplexParameters.add_item(complex_param_defs[i].name, i) - $ComplexParameters.set_item_metadata(i, complex_param_defs[i]) - $ComplexParameters.selected = 0 - $ComplexParameters.visible = true + %ComplexParameters.add_item(complex_param_defs[i].name, i) + %ComplexParameters.set_item_metadata(i, complex_param_defs[i]) + %ComplexParameters.selected = 0 + %ComplexParameters.visible = true for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(generator, edited_parameter) else: + %ComplexParameters.visible = false for c in get_children(): if c.has_method("setup_control"): c.setup_control(null, []) @@ -142,7 +143,7 @@ func setup_controls(filter : String = "") -> void: func _on_complex_parameters_item_selected(index): - var parameter = $ComplexParameters.get_item_metadata(index) + var parameter = %ComplexParameters.get_item_metadata(index) for e in [ $PolygonEditor, $SplinesEditor, $PixelsEditor, $LatticeEditor ]: e.setup_control(generator, [ parameter ]) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 2cdf734f2..1058c091c 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -393,17 +393,7 @@ material = SubResource("6") offset_right = 40.0 offset_bottom = 40.0 -[node name="ComplexParameters" type="OptionButton" parent="." index="20"] -visible = false -layout_mode = 1 -anchors_preset = 1 -anchor_left = 1.0 -anchor_right = 1.0 -offset_left = -32.0 -offset_bottom = 20.0 -grow_horizontal = 0 - -[node name="MenuBar" type="ScrollContainer" parent="." index="21"] +[node name="MenuBar" type="ScrollContainer" parent="." index="20"] unique_name_in_owner = true clip_contents = false layout_mode = 1 @@ -415,11 +405,13 @@ theme_type_variation = &"MM_PanelMenuBackground" horizontal_scroll_mode = 3 vertical_scroll_mode = 0 -[node name="HBox" type="HBoxContainer" parent="MenuBar" index="0"] +[node name="HBox" type="HFlowContainer" parent="MenuBar" index="0"] layout_mode = 2 +size_flags_horizontal = 3 [node name="MainMenu" type="PanelContainer" parent="MenuBar/HBox" index="0"] layout_mode = 2 +size_flags_vertical = 0 theme_type_variation = &"MM_PanelMenuBar" [node name="HBox" type="HBoxContainer" parent="MenuBar/HBox/MainMenu" index="0"] @@ -437,7 +429,7 @@ icon = SubResource("AtlasTexture_p8pw4") script = ExtResource("12_nrhap") [node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] -visible = false +top_level = true layout_mode = 0 offset_left = -53.0 offset_top = 34.0 @@ -545,6 +537,7 @@ script = ExtResource("12_nrhap") [node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] visible = false +top_level = true layout_mode = 0 offset_left = -74.0 offset_top = 36.0 @@ -690,13 +683,17 @@ script = ExtResource("17_07kc5") icon_normal = SubResource("AtlasTexture_khhtg") icon_pressed = SubResource("AtlasTexture_nstr1") +[node name="ComplexParameters" type="OptionButton" parent="MenuBar/HBox/MainMenu/HBox" index="3"] +unique_name_in_owner = true +visible = false +layout_mode = 2 + [connection signal="gui_input" from="." to="." method="_on_gui_input"] [connection signal="mouse_entered" from="." to="." method="_on_Preview2D_mouse_entered"] [connection signal="unhandled_event" from="PolygonEditor" to="." method="_on_gui_input"] [connection signal="unhandled_event" from="SplinesEditor" to="." method="_on_gui_input"] [connection signal="unhandled_event" from="PixelsEditor" to="." method="_on_gui_input"] [connection signal="unhandled_event" from="LatticeEditor" to="." method="_on_gui_input"] -[connection signal="item_selected" from="ComplexParameters" to="." method="_on_complex_parameters_item_selected"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ResetViewButton" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_reset_view_button_pressed"] [connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/ViewMode" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_view_mode_item_selected"] [connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/PostProcessing" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_post_processing_item_selected"] @@ -712,3 +709,4 @@ icon_pressed = SubResource("AtlasTexture_nstr1") [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/TAA_Render" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_taa_render_pressed"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/Reference" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_reference_pressed"] [connection signal="toggled" from="MenuBar/HBox/MainMenu/HBox/PreviewLocked" to="." method="_on_preview_locked_toggled"] +[connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ComplexParameters" to="." method="_on_complex_parameters_item_selected"] diff --git a/material_maker/widgets/pixels_edit/pixels_editor.tscn b/material_maker/widgets/pixels_edit/pixels_editor.tscn index f86445dba..fc6a083c7 100644 --- a/material_maker/widgets/pixels_edit/pixels_editor.tscn +++ b/material_maker/widgets/pixels_edit/pixels_editor.tscn @@ -26,8 +26,8 @@ alpha = 1.0 [node name="PixelMenu" type="PanelContainer" parent="." index="0"] layout_mode = 0 -offset_right = 40.0 -offset_bottom = 20.0 +offset_right = 52.0 +offset_bottom = 25.0 theme_type_variation = &"MM_PanelMenuBar" [node name="UI" type="HBoxContainer" parent="PixelMenu" index="0"] @@ -37,6 +37,7 @@ theme_type_variation = &"MM_PanelMenuBar" [node name="PixelSettings" type="Button" parent="PixelMenu/UI" index="0"] custom_minimum_size = Vector2(40, 25) layout_mode = 2 +size_flags_vertical = 0 tooltip_text = "Pixel Settings" theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true @@ -45,6 +46,7 @@ script = ExtResource("4_xknkb") [node name="SettingsPanel" type="PanelContainer" parent="PixelMenu/UI/PixelSettings" index="0"] unique_name_in_owner = true +top_level = true layout_mode = 2 offset_left = 10.0 offset_top = 39.0 @@ -97,9 +99,10 @@ float_only = true layout_mode = 2 theme_type_variation = &"MM_PanelMenuSeparator" -[node name="Colors" type="BoxContainer" parent="PixelMenu/UI" index="2"] +[node name="Colors" type="GridContainer" parent="PixelMenu/UI" index="2"] unique_name_in_owner = true layout_mode = 2 +columns = 8 [connection signal="gui_input" from="." to="." method="_on_PixelsEditor_gui_input"] [connection signal="value_changed" from="PixelMenu/UI/PixelSettings/SettingsPanel/Grid/Box/Width" to="PixelMenu/UI/PixelSettings/SettingsPanel" method="_on_width_value_changed"] From 8d9b0560ebb8f797187db38277908024f68fe212 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 20:12:51 +0200 Subject: [PATCH 23/31] Reintroduce custom grid size --- .../panels/preview_2d/preview_2d_panel.tscn | 23 +++++++++++++++++-- material_maker/panels/preview_2d/view_menu.gd | 19 +++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 1058c091c..423ab0355 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=33 format=3 uid="uid://b7x7yqgsurxhv"] +[gd_scene load_steps=34 format=3 uid="uid://b7x7yqgsurxhv"] [ext_resource type="Texture2D" uid="uid://c0j4px4n72di5" path="res://material_maker/icons/icons.tres" id="1"] [ext_resource type="PackedScene" uid="uid://est6pi7xbptp" path="res://material_maker/panels/preview_2d/control_point.tscn" id="2"] @@ -13,6 +13,7 @@ [ext_resource type="PackedScene" uid="uid://dj5q8sxvd3gci" path="res://material_maker/widgets/option_edit/option_edit.tscn" id="12_4017l"] [ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="12_nrhap"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/view_menu.gd" id="13_5w2hy"] +[ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="14_qr76f"] [ext_resource type="Texture2D" uid="uid://tetgna5qjvkf" path="res://material_maker/theme/dark/tabs_increment.png" id="15_ikyi1"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/export_menu.gd" id="16_0fl4g"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/two_icon_toggle_button.gd" id="17_07kc5"] @@ -504,7 +505,7 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 selected = 0 -item_count = 7 +item_count = 8 popup/item_0/text = "None" popup/item_1/text = "Corners" popup/item_1/id = 1 @@ -518,12 +519,29 @@ popup/item_5/text = "Grid 10x10" popup/item_5/id = 5 popup/item_6/text = "Grid 16x16" popup/item_6/id = 6 +popup/item_7/text = "Grid Custom" +popup/item_7/id = 7 [node name="GuidesColor" type="ColorPickerButton" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer" index="1"] unique_name_in_owner = true custom_minimum_size = Vector2(25, 0) layout_mode = 2 +[node name="CustomGridSizeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="7"] +unique_name_in_owner = true +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Custom Grid Size" + +[node name="CustomGridSize" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="8" instance=ExtResource("14_qr76f")] +unique_name_in_owner = true +layout_mode = 2 +value = 10.0 +min_value = 1.0 +max_value = 32.0 +step = 1.0 +float_only = true + [node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] unique_name_in_owner = true custom_minimum_size = Vector2(40, 25) @@ -699,6 +717,7 @@ layout_mode = 2 [connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/PostProcessing" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_post_processing_item_selected"] [connection signal="item_selected" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer/Guides" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_guides_item_selected"] [connection signal="color_changed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer/GuidesColor" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_guides_color_color_changed"] +[connection signal="value_changed" from="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/CustomGridSize" to="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" method="_on_custom_grid_size_value_changed"] [connection signal="text_changed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder/ExportFolder" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_folder_text_changed"] [connection signal="pressed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFolder/ExportFolderButton" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_folder_button_pressed"] [connection signal="text_changed" from="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/ExportFile/ExportFile" to="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel" method="_on_export_file_text_changed"] diff --git a/material_maker/panels/preview_2d/view_menu.gd b/material_maker/panels/preview_2d/view_menu.gd index 9c67a8d4d..be1dee902 100644 --- a/material_maker/panels/preview_2d/view_menu.gd +++ b/material_maker/panels/preview_2d/view_menu.gd @@ -1,11 +1,15 @@ extends PanelContainer - +var GUIDES_CUSTOM_GRID := 7 func _open() -> void: %ViewMode.selected = owner.get_view_mode() %PostProcessing.selected = owner.get_post_processing() %Guides.selected = owner.get_node("Guides").style + if owner.get_node("Guides").style == 1000: + %Guides.selected = GUIDES_CUSTOM_GRID + %CustomGridSize.visible = %Guides.selected == GUIDES_CUSTOM_GRID + %CustomGridSizeLabel.visible = %Guides.selected == GUIDES_CUSTOM_GRID %GuidesColor.color = owner.get_node("Guides").color @@ -22,8 +26,19 @@ func _on_post_processing_item_selected(index: int) -> void: func _on_guides_item_selected(index: int) -> void: - owner.get_node("Guides").style = index + %CustomGridSize.visible = index == GUIDES_CUSTOM_GRID + %CustomGridSizeLabel.visible = index == GUIDES_CUSTOM_GRID + if index == GUIDES_CUSTOM_GRID: + owner.get_node("Guides").show_grid(%CustomGridSize.get_value()) + owner.get_node("Guides").style = 1000 + else: + owner.get_node("Guides").style = index + size = Vector2() func _on_guides_color_color_changed(color: Color) -> void: owner.get_node("Guides").color = color + + +func _on_custom_grid_size_value_changed(value: Variant) -> void: + owner.get_node("Guides").show_grid(value) From c928ad6be69d586951738bacfb685b3737f75f25 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 20:52:06 +0200 Subject: [PATCH 24/31] Reimplement custom export size --- .../panels/preview_2d/export_menu.gd | 14 +++++- material_maker/panels/preview_2d/lines.gd | 1 - .../panels/preview_2d/preview_2d.gd | 4 ++ .../panels/preview_2d/preview_2d_panel.tscn | 47 +++++++++++++++---- material_maker/panels/preview_2d/view_menu.gd | 4 +- 5 files changed, 57 insertions(+), 13 deletions(-) diff --git a/material_maker/panels/preview_2d/export_menu.gd b/material_maker/panels/preview_2d/export_menu.gd index ad876f045..8e229226b 100644 --- a/material_maker/panels/preview_2d/export_menu.gd +++ b/material_maker/panels/preview_2d/export_menu.gd @@ -8,12 +8,15 @@ var export_settings := { #"export_type" : "preview$SUFFIX_last_export_type", } +const RESOLUTION_CUSTOM := 8 + func _ready() -> void: for val in export_settings.values(): val = val.replace("$SUFFIX", owner.config_var_suffix) owner.generator_changed.connect(update) + func _open() -> void: if mm_globals.has_config(export_settings.path): %ExportFolder.text = mm_globals.get_config(export_settings.path) @@ -24,6 +27,7 @@ func _open() -> void: if mm_globals.has_config(export_settings.resolution): %Resolution.selected = mm_globals.get_config(export_settings.resolution) + %CustomResolutionSection.visible = %Resolution.selected == RESOLUTION_CUSTOM if mm_globals.has_config(export_settings.resolution): %Resolution.selected = mm_globals.get_config(export_settings.resolution) @@ -32,6 +36,8 @@ func _open() -> void: %FileType.selected = mm_globals.get_config(export_settings.extension) export_notification("") + + size = Vector2() func update() -> void: @@ -77,6 +83,9 @@ func _on_file_type_item_selected(index: int) -> void: func _on_resolution_item_selected(index: int) -> void: mm_globals.set_config(export_settings.resolution, index) + %CustomResolutionSection.visible = index == RESOLUTION_CUSTOM + if index != RESOLUTION_CUSTOM: + %CustomResolution.set_value(64 << index) func _on_image_pressed() -> void: @@ -110,7 +119,10 @@ func _on_image_pressed() -> void: if path: - owner.export_as_image_file(path, 64 << %Resolution.selected) + if %Resolution.selected == RESOLUTION_CUSTOM: + owner.export_as_image_file(path, %CustomResolution.get_value()) + else: + owner.export_as_image_file(path, 64 << %Resolution.selected) export_notification("Exported to " + path) await get_tree().create_timer(0.5).timeout update() diff --git a/material_maker/panels/preview_2d/lines.gd b/material_maker/panels/preview_2d/lines.gd index c405ced46..96525c3fc 100644 --- a/material_maker/panels/preview_2d/lines.gd +++ b/material_maker/panels/preview_2d/lines.gd @@ -40,7 +40,6 @@ func _ready(): func draw_grid(s : int) -> void: _real_grid_size = s var parent = get_parent() - print(parent) for i in range(s+1): var x = float(i) / float(s) - 0.5 var p : Vector2 = parent.value_to_pos(Vector2(x, x)) diff --git a/material_maker/panels/preview_2d/preview_2d.gd b/material_maker/panels/preview_2d/preview_2d.gd index af864ca0b..c6a1a1d2b 100644 --- a/material_maker/panels/preview_2d/preview_2d.gd +++ b/material_maker/panels/preview_2d/preview_2d.gd @@ -101,9 +101,11 @@ func on_dep_update_value(_buffer_name, parameter_name, value) -> bool: set_preview_shader_parameter(parameter_name, value) return false + func on_resized() -> void: material.set_shader_parameter("preview_2d_size", size) + func export_animation() -> void: if generator == null: return @@ -113,6 +115,7 @@ func export_animation() -> void: window.exclusive = true window.popup_centered()#e(get_window(), Rect2(get_window().size()) + func export_taa() -> void: if generator == null: return @@ -141,6 +144,7 @@ func create_image(renderer_function : String, params : Array, image_size : int) renderer.callv(renderer_function, params) renderer.release(self) + func export_as_image_file(file_name : String, image_size : int) -> void: mm_globals.config.set_value("path", "save_preview", file_name.get_base_dir()) create_image("save_to_file", [ file_name, is_greyscale ], image_size) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 423ab0355..4c0c0f26f 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -14,7 +14,6 @@ [ext_resource type="Script" path="res://material_maker/panels/common/menu_bar_button_with_panel.gd" id="12_nrhap"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/view_menu.gd" id="13_5w2hy"] [ext_resource type="PackedScene" uid="uid://rflulhsuy3ax" path="res://material_maker/widgets/float_edit/float_edit.tscn" id="14_qr76f"] -[ext_resource type="Texture2D" uid="uid://tetgna5qjvkf" path="res://material_maker/theme/dark/tabs_increment.png" id="15_ikyi1"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/export_menu.gd" id="16_0fl4g"] [ext_resource type="Script" path="res://material_maker/panels/preview_2d/two_icon_toggle_button.gd" id="17_07kc5"] [ext_resource type="FontFile" uid="uid://dgkwr5jydtk6p" path="res://material_maker/theme/font_rubik/Rubik-VariableFont_wght.ttf" id="18_kn37y"] @@ -89,6 +88,10 @@ events = [SubResource("InputEventKey_qowqu")] atlas = ExtResource("10_l6r53") region = Rect2(16, 0, 16, 16) +[sub_resource type="AtlasTexture" id="AtlasTexture_mtqjj"] +atlas = ExtResource("10_l6r53") +region = Rect2(0, 32, 16, 16) + [sub_resource type="FontVariation" id="FontVariation_wkuuo"] base_font = ExtResource("18_kn37y") variation_transform = Transform2D(1, 0.22, 0, 1, 0, 0) @@ -430,6 +433,7 @@ icon = SubResource("AtlasTexture_p8pw4") script = ExtResource("12_nrhap") [node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] +visible = false top_level = true layout_mode = 0 offset_left = -53.0 @@ -554,8 +558,8 @@ icon = SubResource("AtlasTexture_72vod") script = ExtResource("12_nrhap") [node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] -visible = false top_level = true +custom_minimum_size = Vector2(320, 0) layout_mode = 0 offset_left = -74.0 offset_top = 36.0 @@ -587,7 +591,7 @@ theme_override_font_sizes/font_size = 15 unique_name_in_owner = true custom_minimum_size = Vector2(25, 25) layout_mode = 2 -icon = ExtResource("15_ikyi1") +icon = SubResource("AtlasTexture_mtqjj") icon_alignment = 1 [node name="ExportFileLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="2"] @@ -634,7 +638,7 @@ text = "Resolution" unique_name_in_owner = true layout_mode = 2 selected = 4 -item_count = 8 +item_count = 9 popup/item_0/text = "64x64" popup/item_1/text = "128x128" popup/item_1/id = 1 @@ -650,38 +654,61 @@ popup/item_6/text = "4048x2048" popup/item_6/id = 6 popup/item_7/text = "8192x8192" popup/item_7/id = 7 +popup/item_8/text = "Custom Resolution" +popup/item_8/id = 8 + +[node name="CustomResolutionSection" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="7"] +unique_name_in_owner = true +layout_mode = 2 +vertical = true + +[node name="CustomResolutionLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/CustomResolutionSection" index="0"] +layout_mode = 2 +theme_type_variation = &"MM_PanelMenuSubPanelLabel" +text = "Custom Resolution" + +[node name="CustomResolution" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox/CustomResolutionSection" index="1" instance=ExtResource("14_qr76f")] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +tooltip_text = "Width" +value = 512.0 +min_value = 16.0 +max_value = 2048.0 +step = 1.0 +float_only = true -[node name="ExportLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="7"] +[node name="ExportLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="8"] layout_mode = 2 theme_type_variation = &"MM_PanelMenuSubPanelLabel" text = "Export" -[node name="Image" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="8"] +[node name="Image" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="9"] unique_name_in_owner = true layout_mode = 2 shortcut = SubResource("Shortcut_llf02") text = "Export as Image" alignment = 0 -[node name="Animation" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="9"] +[node name="Animation" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="10"] unique_name_in_owner = true layout_mode = 2 text = "Export as Animation" alignment = 0 -[node name="TAA_Render" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="10"] +[node name="TAA_Render" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="11"] unique_name_in_owner = true layout_mode = 2 text = "Export as TAA Render" alignment = 0 -[node name="Reference" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="11"] +[node name="Reference" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="12"] unique_name_in_owner = true layout_mode = 2 text = "Export to Reference" alignment = 0 -[node name="ExportNotificationLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="12"] +[node name="ExportNotificationLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu/ExportMenuPanel/VBox" index="13"] unique_name_in_owner = true visible = false layout_mode = 2 diff --git a/material_maker/panels/preview_2d/view_menu.gd b/material_maker/panels/preview_2d/view_menu.gd index be1dee902..794fc9c63 100644 --- a/material_maker/panels/preview_2d/view_menu.gd +++ b/material_maker/panels/preview_2d/view_menu.gd @@ -1,15 +1,17 @@ extends PanelContainer -var GUIDES_CUSTOM_GRID := 7 +const GUIDES_CUSTOM_GRID := 7 func _open() -> void: %ViewMode.selected = owner.get_view_mode() %PostProcessing.selected = owner.get_post_processing() + %Guides.selected = owner.get_node("Guides").style if owner.get_node("Guides").style == 1000: %Guides.selected = GUIDES_CUSTOM_GRID %CustomGridSize.visible = %Guides.selected == GUIDES_CUSTOM_GRID %CustomGridSizeLabel.visible = %Guides.selected == GUIDES_CUSTOM_GRID + %GuidesColor.color = owner.get_node("Guides").color From d65318d85f868b18cb95c8576c62225da9afb0c4 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 8 Sep 2024 20:54:38 +0200 Subject: [PATCH 25/31] Fix view menu size --- material_maker/panels/preview_2d/view_menu.gd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/material_maker/panels/preview_2d/view_menu.gd b/material_maker/panels/preview_2d/view_menu.gd index 794fc9c63..d8c12fb5a 100644 --- a/material_maker/panels/preview_2d/view_menu.gd +++ b/material_maker/panels/preview_2d/view_menu.gd @@ -13,6 +13,8 @@ func _open() -> void: %CustomGridSizeLabel.visible = %Guides.selected == GUIDES_CUSTOM_GRID %GuidesColor.color = owner.get_node("Guides").color + + size = Vector2() func _on_reset_view_button_pressed() -> void: From 1199b6f110624e1aff5c55a09d8e82a0bb4090dc Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 15 Sep 2024 18:35:52 +0200 Subject: [PATCH 26/31] Make menu button shortcuts work when buttons are hidden - Buttons inside of menu panels can now be activated even if the panel isn't open. This is currently only relevant for CTRL+R (center view) CTRL+E (export image) However this code also already improves how OptionEdits handle shortcuts (they iterate through instead of opening). More shortcuts could be added although in a perfect world we had some system to customize shortcuts. --- .../common/menu_bar_button_with_panel.gd | 23 +++++++++++++++++++ .../widgets/option_edit/option_edit.gd | 21 ++++++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/material_maker/panels/common/menu_bar_button_with_panel.gd b/material_maker/panels/common/menu_bar_button_with_panel.gd index 1d09af8ef..d0a432c85 100644 --- a/material_maker/panels/common/menu_bar_button_with_panel.gd +++ b/material_maker/panels/common/menu_bar_button_with_panel.gd @@ -22,6 +22,7 @@ func _draw() -> void: draw_circle(Vector2(size.x-2, 2), 4, get_theme_color("icon_pressed_color")) draw_texture(theme_arrow_icon, Vector2(18, 5)) + func _on_toggled(pressed:bool) -> void: panel.visible = pressed @@ -32,6 +33,7 @@ func _on_toggled(pressed:bool) -> void: else: pinned = false + func position_panel() -> void: var at_position := global_position at_position.x += size.x/2 - panel.size.x/2 @@ -41,6 +43,9 @@ func position_panel() -> void: func _input(event:InputEvent) -> void: + if shortcut_context and shortcut_context.get_global_rect().has_point(get_global_mouse_position()) and event.is_pressed(): + propagate_shortcuts(get_child(0), event) + if not panel.visible: return @@ -50,6 +55,24 @@ func _input(event:InputEvent) -> void: button_pressed = false +func propagate_shortcuts(node:Control, event:InputEvent) -> void: + for child in node.get_children(): + if not child is Control or child.is_visible_in_tree(): + continue + if child is Button: + #print(child) + if child.shortcut and child.shortcut.matches_event(event): + if child.toggle_mode: + child.button_pressed = not child.button_pressed + child.toggled.emit(child.button_pressed) + if child is MM_OptionEdit: + child.roll() + else: + child.pressed.emit() + + propagate_shortcuts(child, event) + + func _gui_input(event: InputEvent) -> void: if event is InputEventMouseButton and not event.pressed: if event.button_index == MOUSE_BUTTON_RIGHT: diff --git a/material_maker/widgets/option_edit/option_edit.gd b/material_maker/widgets/option_edit/option_edit.gd index 8b7c0ff7e..5fb490389 100644 --- a/material_maker/widgets/option_edit/option_edit.gd +++ b/material_maker/widgets/option_edit/option_edit.gd @@ -1,3 +1,4 @@ +class_name MM_OptionEdit extends OptionButton @@ -11,15 +12,19 @@ func _gui_input(event: InputEvent) -> void: if event.is_command_or_control_pressed() and event is InputEventMouseButton and event.pressed: if event.button_index == MOUSE_BUTTON_WHEEL_DOWN or event.button_index == MOUSE_BUTTON_WHEEL_UP: - if event.button_index == MOUSE_BUTTON_WHEEL_DOWN: - selected = wrap(selected+1, 0, item_count) - else: - selected = wrap(selected-1, 0, item_count) - - item_selected.emit(selected) + roll(event.button_index == MOUSE_BUTTON_WHEEL_DOWN) accept_event() +func roll(roll_up:= false) -> void: + if roll_up: + selected = wrap(selected-1, 0, item_count) + else: + selected = wrap(selected+1, 0, item_count) + + item_selected.emit(selected) + + func _on_about_to_popup() -> void: # This would look better I think, # but doesn't make sense until gui_embed_subwindows is turned back on. @@ -28,6 +33,10 @@ func _on_about_to_popup() -> void: func _input(event:InputEvent) -> void: + if is_visible_in_tree() and shortcut and shortcut.matches_event(event) and event.is_pressed(): + roll() + accept_event() + if not Rect2(Vector2(), size).has_point(get_local_mouse_position()): return if event is InputEventKey and event.is_command_or_control_pressed() and event.pressed: From 434142ba27f5a7de1f71858904d0f09b91edbc88 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 15 Sep 2024 18:36:12 +0200 Subject: [PATCH 27/31] Adjust menu labels for readability --- material_maker/theme/modern.tres | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/material_maker/theme/modern.tres b/material_maker/theme/modern.tres index 9084f7428..21068644b 100644 --- a/material_maker/theme/modern.tres +++ b/material_maker/theme/modern.tres @@ -683,8 +683,8 @@ MM_PanelMenuSeparator/styles/separator = SubResource("StyleBoxFlat_eij2n") MM_PanelMenuSubPanel/base_type = &"PanelContainer" MM_PanelMenuSubPanel/styles/panel = SubResource("StyleBoxFlat_qhlqs") MM_PanelMenuSubPanelLabel/base_type = &"Label" -MM_PanelMenuSubPanelLabel/colors/font_color = Color(0.454524, 0.454524, 0.454524, 1) -MM_PanelMenuSubPanelLabel/font_sizes/font_size = 14 +MM_PanelMenuSubPanelLabel/colors/font_color = Color(0.556953, 0.556953, 0.556953, 1) +MM_PanelMenuSubPanelLabel/font_sizes/font_size = 15 MM_PanelMenuSubPanelLabel/styles/normal = SubResource("StyleBoxEmpty_82ewu") MM_ProjectsBackground/base_type = &"Panel" MM_ProjectsBackground/styles/panel = SubResource("StyleBoxFlat_1k0sx") From 5627481ae3fbbeb274e1f1e9160b6f3df41d28c4 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 15 Sep 2024 18:36:34 +0200 Subject: [PATCH 28/31] Adjust shortcuts --- .../panels/preview_2d/preview_2d_panel.tscn | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/material_maker/panels/preview_2d/preview_2d_panel.tscn b/material_maker/panels/preview_2d/preview_2d_panel.tscn index 4c0c0f26f..a37f9a4f7 100644 --- a/material_maker/panels/preview_2d/preview_2d_panel.tscn +++ b/material_maker/panels/preview_2d/preview_2d_panel.tscn @@ -422,10 +422,11 @@ theme_type_variation = &"MM_PanelMenuBar" layout_mode = 2 theme_type_variation = &"MM_PanelMenuBar" -[node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0"] +[node name="ViewMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="0" node_paths=PackedStringArray("shortcut_context")] custom_minimum_size = Vector2(40, 25) layout_mode = 2 tooltip_text = "View" +shortcut_context = NodePath("../../../../..") theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 @@ -433,7 +434,6 @@ icon = SubResource("AtlasTexture_p8pw4") script = ExtResource("12_nrhap") [node name="ViewMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu" index="0"] -visible = false top_level = true layout_mode = 0 offset_left = -53.0 @@ -443,23 +443,25 @@ offset_bottom = 115.0 theme_type_variation = &"MM_PanelMenuSubPanel" script = ExtResource("13_5w2hy") -[node name="VBox" type="VBoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" index="0"] +[node name="VBox" type="GridContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel" index="0"] +layout_mode = 2 + +[node name="Control" type="Control" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="0"] +visible = false layout_mode = 2 -theme_override_constants/separation = 2 -[node name="ResetViewButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="0" node_paths=PackedStringArray("shortcut_context")] +[node name="ResetViewButton" type="Button" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="1"] unique_name_in_owner = true layout_mode = 2 -shortcut_context = NodePath("../../../../../../../..") shortcut = SubResource("Shortcut_fwcfb") -text = "Reset View" +text = "Center View" -[node name="ViewModeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="1"] +[node name="ViewModeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="2"] layout_mode = 2 theme_type_variation = &"MM_PanelMenuSubPanelLabel" text = "View Mode" -[node name="ViewMode" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="2" instance=ExtResource("12_4017l")] +[node name="ViewMode" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="3" instance=ExtResource("12_4017l")] unique_name_in_owner = true layout_mode = 2 selected = 0 @@ -474,12 +476,12 @@ popup/item_3/id = 3 popup/item_4/text = "Remporal AA 2.2" popup/item_4/id = 4 -[node name="PostProcessingLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="3"] +[node name="PostProcessingLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="4"] layout_mode = 2 theme_type_variation = &"MM_PanelMenuSubPanelLabel" text = "Post Processing" -[node name="PostProcessing" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="4" instance=ExtResource("12_4017l")] +[node name="PostProcessing" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="5" instance=ExtResource("12_4017l")] unique_name_in_owner = true layout_mode = 2 selected = 0 @@ -496,12 +498,12 @@ popup/item_4/id = 4 popup/item_5/text = "Lowres 512x512" popup/item_5/id = 5 -[node name="GuidesLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="5"] +[node name="GuidesLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="6"] layout_mode = 2 theme_type_variation = &"MM_PanelMenuSubPanelLabel" text = "Guides" -[node name="BoxContainer" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="6"] +[node name="BoxContainer" type="BoxContainer" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="7"] layout_mode = 2 [node name="Guides" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox/BoxContainer" index="0" instance=ExtResource("12_4017l")] @@ -531,13 +533,13 @@ unique_name_in_owner = true custom_minimum_size = Vector2(25, 0) layout_mode = 2 -[node name="CustomGridSizeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="7"] +[node name="CustomGridSizeLabel" type="Label" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="8"] unique_name_in_owner = true layout_mode = 2 theme_type_variation = &"MM_PanelMenuSubPanelLabel" text = "Custom Grid Size" -[node name="CustomGridSize" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="8" instance=ExtResource("14_qr76f")] +[node name="CustomGridSize" parent="MenuBar/HBox/MainMenu/HBox/ViewMenu/ViewMenuPanel/VBox" index="9" instance=ExtResource("14_qr76f")] unique_name_in_owner = true layout_mode = 2 value = 10.0 @@ -546,11 +548,12 @@ max_value = 32.0 step = 1.0 float_only = true -[node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1"] +[node name="ExportMenu" type="Button" parent="MenuBar/HBox/MainMenu/HBox" index="1" node_paths=PackedStringArray("shortcut_context")] unique_name_in_owner = true custom_minimum_size = Vector2(40, 25) layout_mode = 2 tooltip_text = "Export" +shortcut_context = NodePath("../../../../..") theme_type_variation = &"MM_PanelMenuButton" toggle_mode = true button_mask = 3 @@ -558,6 +561,7 @@ icon = SubResource("AtlasTexture_72vod") script = ExtResource("12_nrhap") [node name="ExportMenuPanel" type="PanelContainer" parent="MenuBar/HBox/MainMenu/HBox/ExportMenu" index="0"] +visible = false top_level = true custom_minimum_size = Vector2(320, 0) layout_mode = 0 From d83326cb22a2e3bf636ecc912acadcbc96c3f1da Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Sun, 15 Sep 2024 18:37:39 +0200 Subject: [PATCH 29/31] Make SHIFT-selecting a node preview in second preview Sorry, it was just to simple to exclude :see_no_evil: --- material_maker/panels/graph_edit/graph_edit.gd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/material_maker/panels/graph_edit/graph_edit.gd b/material_maker/panels/graph_edit/graph_edit.gd index 46c53bdc1..16641ae45 100644 --- a/material_maker/panels/graph_edit/graph_edit.gd +++ b/material_maker/panels/graph_edit/graph_edit.gd @@ -866,7 +866,10 @@ func _on_GraphEdit_node_selected(node : GraphNode) -> void: if n.generator == current_preview[0].generator: return if node.get_output_port_count(): - set_current_preview(0, node) + if Input.is_key_pressed(KEY_SHIFT): + set_current_preview(1, node) + else: + set_current_preview(0, node) undoredo_move_node_selection_changed = true mm_globals.main_window.update_menus() From 4e1a7c50fed346e41cb8d166b4417a229a330b01 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Mon, 16 Sep 2024 10:58:54 +0200 Subject: [PATCH 30/31] Fix shortcut not stopping event propagation --- material_maker/panels/common/menu_bar_button_with_panel.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/material_maker/panels/common/menu_bar_button_with_panel.gd b/material_maker/panels/common/menu_bar_button_with_panel.gd index d0a432c85..388ae2f67 100644 --- a/material_maker/panels/common/menu_bar_button_with_panel.gd +++ b/material_maker/panels/common/menu_bar_button_with_panel.gd @@ -60,8 +60,8 @@ func propagate_shortcuts(node:Control, event:InputEvent) -> void: if not child is Control or child.is_visible_in_tree(): continue if child is Button: - #print(child) if child.shortcut and child.shortcut.matches_event(event): + accept_event() if child.toggle_mode: child.button_pressed = not child.button_pressed child.toggled.emit(child.button_pressed) From 018a0bdbc45a9fdb7fb1b4ba9608e5529f7046c5 Mon Sep 17 00:00:00 2001 From: Jowan-Spooner Date: Mon, 16 Sep 2024 11:04:23 +0200 Subject: [PATCH 31/31] Improve export browser title Now mentions the file name in the folder selection window when exporting. --- material_maker/panels/preview_2d/export_menu.gd | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/material_maker/panels/preview_2d/export_menu.gd b/material_maker/panels/preview_2d/export_menu.gd index 8e229226b..8de7f7afc 100644 --- a/material_maker/panels/preview_2d/export_menu.gd +++ b/material_maker/panels/preview_2d/export_menu.gd @@ -47,6 +47,7 @@ func update() -> void: var file_result := interpret_file_name(%ExportFile.text) %ExportFileResultLabel.text = file_result %ExportFileResultLabel.visible = not %ExportFile.text.is_empty() and %ExportFile.text.count("$") != file_result.count("$") + size = Vector2() func _on_export_folder_text_changed(new_text: String) -> void: @@ -92,14 +93,20 @@ func _on_image_pressed() -> void: var path: String = %ExportFolder.text var file_name: String = %ExportFile.text + + if file_name: + file_name = interpret_file_name(file_name, path) + if path.is_empty(): var file_dialog := preload("res://material_maker/windows/file_dialog/file_dialog.tscn").instantiate() file_dialog.access = FileDialog.ACCESS_FILESYSTEM if not file_name.is_empty(): file_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR + file_dialog.title = 'Save Image "'+file_name+'"' else: file_dialog.file_mode = FileDialog.FILE_MODE_SAVE_FILE + file_dialog.title = 'Save Image' file_dialog.add_filter("*.png; PNG image file") file_dialog.add_filter("*.exr; EXR image file") @@ -113,8 +120,6 @@ func _on_image_pressed() -> void: if file_name: - file_name = interpret_file_name(file_name, path) - path = path.path_join(file_name)