From 641cb9f8d369a9157995507716d6e88e75391b69 Mon Sep 17 00:00:00 2001 From: ChaoticByte Date: Sun, 9 Jun 2024 14:32:00 +0200 Subject: [PATCH] Use Apply button with F5 keybinding instead of reapplying the shader on every code change --- project.godot | 5 +++++ scenes/main.tscn | 19 +++++++++++++++---- src/Editor.gd | 14 +++++++++----- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/project.godot b/project.godot index f3a334c..e094e34 100644 --- a/project.godot +++ b/project.godot @@ -54,6 +54,11 @@ drag={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(183, 23),"global_position":Vector2(187, 64),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } +apply_shader={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194336,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} [rendering] diff --git a/scenes/main.tscn b/scenes/main.tscn index 1024190..d532355 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -172,8 +172,8 @@ layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -120.0 -offset_right = -64.0 +offset_left = -216.0 +offset_right = -160.0 offset_bottom = 32.0 grow_horizontal = 0 text = "Open" @@ -183,11 +183,22 @@ layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -56.0 +offset_left = -152.0 +offset_right = -96.0 offset_bottom = 32.0 grow_horizontal = 0 text = "Save" +[node name="ApplyShaderButton" type="Button" parent="UI_Layer/UserInterfaceContainer/Editor"] +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -88.0 +offset_bottom = 32.0 +grow_horizontal = 0 +text = "Apply (F5)" + [node name="Camera" type="Camera2D" parent="."] script = ExtResource("8_mls06") @@ -200,6 +211,6 @@ script = ExtResource("8_mls06") [connection signal="file_selected" from="UI_Layer/UserInterfaceContainer/Editor/SaveShaderDialog" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_save_shader_dialog_file_selected"] [connection signal="item_selected" from="UI_Layer/UserInterfaceContainer/Editor/PresetOptions" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_preset_options_item_selected"] [connection signal="code_completion_requested" from="UI_Layer/UserInterfaceContainer/Editor/CodeEdit" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_code_edit_code_completion_requested"] -[connection signal="text_changed" from="UI_Layer/UserInterfaceContainer/Editor/CodeEdit" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_code_edit_text_changed"] [connection signal="pressed" from="UI_Layer/UserInterfaceContainer/Editor/OpenShaderButton" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_open_shader_button_pressed"] [connection signal="pressed" from="UI_Layer/UserInterfaceContainer/Editor/SaveShaderButton" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_save_shader_button_pressed"] +[connection signal="pressed" from="UI_Layer/UserInterfaceContainer/Editor/ApplyShaderButton" to="UI_Layer/UserInterfaceContainer/Editor" method="_on_apply_shader_button_pressed"] diff --git a/src/Editor.gd b/src/Editor.gd index 3fa2c7b..a59ef6e 100644 --- a/src/Editor.gd +++ b/src/Editor.gd @@ -187,11 +187,9 @@ func _ready(): c.connect("mouse_exited", _camera_unfreeze) update() -func _on_code_edit_text_changed(): - var shader = Shader.new() - shader.code = code_editor.text - Globals.shader = shader - Globals.target_viewport.update() +func _input(event): + if event.is_action_pressed("apply_shader"): + _on_apply_shader_button_pressed() func _on_preset_options_item_selected(index): selected_preset_name = preset_options.get_item_text(index) @@ -233,3 +231,9 @@ func _on_save_shader_dialog_file_selected(path): var file = FileAccess.open(path, FileAccess.WRITE) var content = Globals.shader.code file.store_string(content) + +func _on_apply_shader_button_pressed(): + var shader = Shader.new() + shader.code = code_editor.text + Globals.shader = shader + Globals.target_viewport.update()