[gd_scene load_steps=14 format=3 uid="uid://bn2n3lgc4ts1r"] [ext_resource type="Texture2D" uid="uid://ce3qpf070wgd2" path="res://pictures/состояние-исправности-0.png" id="1_xcvfs"] [ext_resource type="Texture2D" uid="uid://byweg7pgt8o4h" path="res://pictures/состояние-исправности-1.png" id="2_ad1dj"] [ext_resource type="Texture2D" uid="uid://bvikuv0lbvou8" path="res://pictures/состояние-исправности-2.png" id="3_vxg7f"] [ext_resource type="Texture2D" uid="uid://cgtg4gbqnuxrc" path="res://pictures/nine-patch-round.png" id="4_1bnn6"] [ext_resource type="PackedScene" path="res://table/уровень.tscn" id="5_3i5am"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3nd2u"] [sub_resource type="GDScript" id="GDScript_oj3k3"] script/source = "@tool extends PanelContainer @export var textures: Array signal pressed(control: PanelContainer) @export var value0: float: set(v): value0 = v $margin/vbox/grid1/indicator0.value = v @export var value1: float: set(v): value1 = v $margin/vbox/grid1/indicator1.value = v @export var min_value0: float: set(v): min_value0 = v $margin/vbox/grid1/indicator0.min_value = v @export var min_value1: float: set(v): min_value1 = v $margin/vbox/grid1/indicator1.min_value = v @export var max_value0: float: set(v): max_value0 = v $margin/vbox/grid1/indicator0.max_value = v @export var max_value1: float: set(v): max_value1 = v $margin/vbox/grid1/indicator1.max_value = v @export var step0: float: set(v): step0 = v $margin/vbox/grid1/indicator0.step = v @export var step1: float: set(v): step1 = v $margin/vbox/grid1/indicator1.step = v @export var value_name0: String: set(v): value_name0 = v $margin/vbox/grid1/indicator0.value_name = v @export var value_name1: String: set(v): value_name1 = v $margin/vbox/grid1/indicator1.value_name = v @export var name_min_size0: Vector2i: set(v): name_min_size0 = v $margin/vbox/grid1/indicator0.name_min_size = v @export var name_min_size1: Vector2i: set(v): name_min_size1 = v $margin/vbox/grid1/indicator1.name_min_size = v @export var fname: String: set(v): fname = v $margin/vbox/grid0/fname.text = v @export var rname: String: set(v): rname = v $margin/vbox/grid0/rname.text = v @export var state: int: set(v): state = clip_value(v, 0, textures.size() - 1) $margin/vbox/grid0/state.texture = textures[state] @export var alignment: int: set(v): alignment = v $margin/vbox.alignment = v func _on_button_pressed(): emit_signal('pressed', self) ## Отсекает значение до заданного диапазона. func clip_value(val, val_min, val_max): if val < val_min: val = val_min if val > val_max: val = val_max return val " [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rceim"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_8yvwo"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6qu57"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mlxje"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_3dspb"] [sub_resource type="GDScript" id="GDScript_45hqb"] script/source = "@tool extends MarginContainer func _enter_tree() -> void: margins = [8, 8, 8, 8] @export var margins: Array: set(vals): add_theme_constant_override('margin_top', vals[0]) add_theme_constant_override('margin_left', vals[1]) add_theme_constant_override('margin_bottom', vals[2]) add_theme_constant_override('margin_right', vals[3]) get: var vals = [0, 0, 0, 0] vals[0] = get_theme_constant('margin_top') vals[1] = get_theme_constant('margin_left') vals[2] = get_theme_constant('margin_bottom') vals[3] = get_theme_constant('margin_right') return vals " [node name="blok_a" type="PanelContainer"] editor_description = "Элемент замены из ЗИП" offset_right = 160.0 offset_bottom = 88.0 theme_override_styles/panel = SubResource("StyleBoxEmpty_3nd2u") script = SubResource("GDScript_oj3k3") textures = [ExtResource("1_xcvfs"), ExtResource("2_ad1dj"), ExtResource("3_vxg7f")] [node name="button" type="Button" parent="."] layout_mode = 2 theme_override_styles/focus = SubResource("StyleBoxEmpty_rceim") theme_override_styles/disabled = SubResource("StyleBoxEmpty_8yvwo") theme_override_styles/hover = SubResource("StyleBoxEmpty_6qu57") theme_override_styles/pressed = SubResource("StyleBoxEmpty_mlxje") theme_override_styles/normal = SubResource("StyleBoxEmpty_3dspb") [node name="rect" type="NinePatchRect" parent="."] layout_mode = 2 texture = ExtResource("4_1bnn6") draw_center = false region_rect = Rect2(0, 0, 63, 63) patch_margin_left = 17 patch_margin_top = 17 patch_margin_right = 17 patch_margin_bottom = 15 [node name="margin" type="MarginContainer" parent="."] layout_mode = 2 theme_override_constants/margin_left = 8 theme_override_constants/margin_top = 8 theme_override_constants/margin_right = 8 theme_override_constants/margin_bottom = 8 script = SubResource("GDScript_45hqb") margins = [8, 8, 8, 8] [node name="vbox" type="VBoxContainer" parent="margin"] layout_mode = 2 [node name="grid0" type="GridContainer" parent="margin/vbox"] layout_mode = 2 columns = 3 [node name="state" type="TextureRect" parent="margin/vbox/grid0"] custom_minimum_size = Vector2(24, 24) layout_mode = 2 size_flags_horizontal = 2 size_flags_vertical = 6 texture = ExtResource("1_xcvfs") expand_mode = 1 [node name="fname" type="Label" parent="margin/vbox/grid0"] self_modulate = Color(1, 1, 1, 0.627451) custom_minimum_size = Vector2(0, 20) layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_font_sizes/font_size = 17 text = "УМ" horizontal_alignment = 1 vertical_alignment = 1 [node name="rname" type="Label" parent="margin/vbox/grid0"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 6 theme_override_font_sizes/font_size = 22 horizontal_alignment = 2 vertical_alignment = 1 [node name="grid1" type="GridContainer" parent="margin/vbox"] layout_mode = 2 size_flags_vertical = 6 [node name="indicator0" parent="margin/vbox/grid1" instance=ExtResource("5_3i5am")] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 max_value = 90.0 value_name = "T°" [node name="indicator1" parent="margin/vbox/grid1" instance=ExtResource("5_3i5am")] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 max_value = 2000.0 value_name = "Pwr" [connection signal="pressed" from="button" to="." method="_on_button_pressed"]