From 4158c1a1f08c862ad1d6695300ebc75fe5888c63 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Fri, 21 Nov 2025 14:12:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=92=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B5.=20=D0=A0=D0=B5=D0=B6=D0=B8=D0=BC=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8C.=20=D0=94=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BD=D0=B0=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B9=D0=BA=D1=83=20=D1=86=D0=B2=D0=B5=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D1=81=D1=85=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/контроль/кнопка-прибора.gd | 18 +++++++++++++++++- scenes/контроль/контроль.tscn | 4 ++-- shaders/two-color.gdshader | 6 +++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/scenes/контроль/кнопка-прибора.gd b/scenes/контроль/кнопка-прибора.gd index f3955867..c06e79af 100644 --- a/scenes/контроль/кнопка-прибора.gd +++ b/scenes/контроль/кнопка-прибора.gd @@ -5,7 +5,23 @@ extends TextureButton @export var state_colors: Array func _on_toggled(toggled_on): $frame.visible = toggled_on -func _enter_tree() -> void: $label.self_modulate = state_colors[state] + + +func _enter_tree() -> void: + $label.self_modulate = state_colors[state] + ProjectSettings.connect('settings_changed', _on_settings_changed) + + +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', _on_settings_changed) + + +func _on_settings_changed(): + if not is_inside_tree(): return + var white_color = ProjectSettings.get_setting('Схема прибора. Белый цвет', Color.WHITE) + var black_color = ProjectSettings.get_setting('Схема прибора. Чёрный цвет', Color.BLACK) + $pic_functional.material.set('shader_parameter/white', white_color) + $pic_functional.material.set('shader_parameter/black', black_color) @export var state: int: diff --git a/scenes/контроль/контроль.tscn b/scenes/контроль/контроль.tscn index 17594358..56c4e69e 100644 --- a/scenes/контроль/контроль.tscn +++ b/scenes/контроль/контроль.tscn @@ -183,8 +183,8 @@ animations = [{ [sub_resource type="ShaderMaterial" id="ShaderMaterial_71ec4"] shader = ExtResource("9_71ec4") -shader_parameter/grey = Vector3(0.14, 0.13, 0.13) -shader_parameter/orange = Vector3(0.95, 0.55, 0.05) +shader_parameter/white = Vector3(0.14, 0.13, 0.13) +shader_parameter/black = Vector3(0.95, 0.55, 0.05) shader_parameter/gamma = 2.0 [node name="Контроль" type="Panel"] diff --git a/shaders/two-color.gdshader b/shaders/two-color.gdshader index 570725e2..fd0f624b 100644 --- a/shaders/two-color.gdshader +++ b/shaders/two-color.gdshader @@ -1,7 +1,7 @@ shader_type canvas_item; -uniform vec3 grey = vec3(0.14, 0.13, 0.13); -uniform vec3 orange = vec3(0.95, 0.55, 0.05); +uniform vec3 white = vec3(0.14, 0.13, 0.13); +uniform vec3 black = vec3(0.95, 0.55, 0.05); uniform float gamma = 2.0; vec3 bw_to_2color(vec3 c, vec3 dark, vec3 light) @@ -13,5 +13,5 @@ vec3 bw_to_2color(vec3 c, vec3 dark, vec3 light) void fragment() { - COLOR.rgb = bw_to_2color(texture(TEXTURE, UV).rgb, grey, orange); + COLOR.rgb = bw_to_2color(texture(TEXTURE, UV).rgb, white, black); }