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); }