[gd_scene load_steps=3 format=3 uid="uid://cixwl6xi22buo"] [ext_resource type="Texture2D" uid="uid://c6nve6f8sfyj2" path="res://data/состояние-исправности-0.png" id="1_ufod8"] [sub_resource type="GDScript" id="GDScript_ufod8"] script/source = "@tool extends GridContainer @export var text_check: Array[String] @export_file var image_states: Array[String] var txr_states: Array[CompressedTexture2D] @export var state: int = 0: set(val): state = val % image_states.size() if is_inside_tree(): val %= txr_states.size() state = val $done.texture = txr_states[val] @export var pressed: bool = false: set(val): pressed = val if is_inside_tree(): $check.button_pressed = pressed func _enter_tree() -> void: txr_states.clear() for fn in image_states: txr_states.append(load(fn)) $done.texture = txr_states[state] $check.button_pressed = pressed func connect_check(signal_name: StringName, callable: Callable): $check.connect(signal_name, callable) func disconnect_check(signal_name: StringName, callable: Callable): $check.disconnect(signal_name, callable) func _on_check_toggled(toggled_on: bool) -> void: $text.text = text_check[int(toggled_on)] " [node name="six-state" type="GridContainer"] offset_right = 156.0 offset_bottom = 24.0 columns = 3 script = SubResource("GDScript_ufod8") text_check = Array[String](["Запрещено", "Разрешено"]) image_states = Array[String](["uid://c6nve6f8sfyj2", "uid://dnreyfh3cd1k2", "uid://c6booa8753u5t"]) [node name="done" type="TextureRect" parent="."] layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 3 texture = ExtResource("1_ufod8") expand_mode = 3 [node name="text" type="Label" parent="."] layout_mode = 2 size_flags_horizontal = 6 size_flags_vertical = 6 text = "Запрещено" horizontal_alignment = 1 [node name="check" type="CheckButton" parent="."] layout_mode = 2 size_flags_horizontal = 8 [connection signal="toggled" from="check" to="." method="_on_check_toggled"]