Доработка. WIP Отображение кластеров на шкале

This commit is contained in:
sasha80
2026-03-20 16:22:15 +03:00
parent 0fc98c5e98
commit 07b41211c7
4 changed files with 69 additions and 16 deletions

View File

@@ -12,12 +12,21 @@ extends PanelContainer
if is_inside_tree():
_enter_tree()
@export var back_color: Color:
set(val):
back_color = val
if is_inside_tree():
_enter_tree()
var ranges_save: Dictionary[StringName, Array] ## <имя диапазона>: [диапазон(x - начало, y - конец), цвет]
func _enter_tree() -> void:
if ResourceLoader.exists(image_file):
$grid/image.texture = load(image_file)
$grid/canvas.self_modulate = back_color
## Добавляет новый диапазон.

View File

@@ -16,6 +16,7 @@ offset_right = 400.0
offset_bottom = 45.0
theme_override_styles/panel = SubResource("StyleBoxEmpty_ajqhv")
script = ExtResource("1_pg3d7")
back_color = Color(0.601223, 0.601223, 0.601223, 1)
[node name="grid" type="GridContainer" parent="."]
layout_mode = 2
@@ -29,6 +30,7 @@ texture = ExtResource("2_ajqhv")
expand_mode = 3
[node name="canvas" type="PanelContainer" parent="grid"]
self_modulate = Color(0.601223, 0.601223, 0.601223, 1)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_56wj8")

View File

@@ -14,6 +14,10 @@ extends Panel
@export var color_tx: Color
## Цвет диапазона приёмника на шкале
@export var color_rx: Color
## Цвет нечётных строк шкалы
@export_color_no_alpha var color_odd: Color
## Цвет чётных строк шкалы
@export_color_no_alpha var color_even: Color
#endregion
#region Загружаемые ресурсы
@@ -66,6 +70,14 @@ func _ready() -> void:
for cell_scn in table_cells:
table_cell_row.append(load(cell_scn))
# Расскраска чётные-нечётные
for node in get_tree().get_nodes_in_group('нечётные'):
node.get_node('panel_rx').back_color = color_odd
node.get_node('panel_tx').back_color = color_odd
for node in get_tree().get_nodes_in_group('чётные'):
node.get_node('panel_rx').back_color = color_even
node.get_node('panel_tx').back_color = color_even
# Настрить таблицу
var ctable: = $'таблица/сетка'
ctable.set_header(header_row)
@@ -122,13 +134,17 @@ func map_yems_data_to_scale(nm: StringName):
var claster_scale: = name_to_scale[nm] as GridContainer
# Обойти все кластеры устройства
for cls in unit_data.mcls:
var c = remap(cls.cfb, freq_min, freq_max, 0.0, 1.0)
var w = remap(cls.wfb, freq_min, freq_max, 0.0, 1.0) * 0.5
var l = c - w
var h = c + w
if cls.rxe:
var scale_rx: = claster_scale.get_node('panel_rx')
var c: = remap(cls.cfb, freq_min, freq_max, 0.0, 1.0)
var w: = remap(cls.wfb, freq_min, freq_max, 0.0, 0.5)
var l: = clampf(c - w, 0.0, 1.0)
var h: = clampf(c + w, 0.0, 1.0)
var scale_rx: = claster_scale.get_node('panel_rx')
var scale_tx: = claster_scale.get_node('panel_tx')
if cls.get('rxe', false):
scale_rx.set_range(cls.cname, l, h, color_rx)
if cls.txe:
var scale_tx: = claster_scale.get_node('panel_tx')
else:
scale_rx.del_range(cls.cname)
if cls.get('txe', false):
scale_tx.set_range(cls.cname, l, h, color_tx)
else:
scale_tx.del_range(cls.cname)

View File

@@ -44,6 +44,8 @@ freq_min = 300.0
freq_max = 6000.0
color_tx = Color(0.898367, 0.460547, 0.239949, 1)
color_rx = Color(0.498039, 0.498039, 1, 1)
color_odd = Color(0.31863, 0.32773, 0.327729, 1)
color_even = Color(0.258824, 0.266667, 0.266667, 1)
matrix_conf = Array[Texture]([ExtResource("2_s28jr"), ExtResource("3_its7t")])
table_headers = Array[String](["uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://ch14g46swx74h", "uid://cymcld4mjmlhj", "uid://cymcld4mjmlhj"])
table_cells = Array[String](["uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://dwphmxstaxn4v", "uid://cixwl6xi22buo", "uid://cixwl6xi22buo"])
@@ -100,7 +102,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "ОР-63"
metadata/unit_name = &"эмс-ор63"
[node name="sub0" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub0" type="GridContainer" parent="шкала" groups=["чётные", "шкалы-кластеров"]]
self_modulate = Color(0.258824, 0.266667, 0.266667, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -112,6 +115,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="panel_tx" parent="шкала/sub0" instance=ExtResource("5_6hay3")]
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
@@ -119,6 +123,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="label1" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -129,7 +134,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "454"
metadata/unit_name = &"эмс-454"
[node name="sub1" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub1" type="GridContainer" parent="шкала" groups=["нечётные", "шкалы-кластеров"]]
self_modulate = Color(0.294118, 0.294118, 0.294118, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -140,12 +146,14 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="panel_tx" parent="шкала/sub1" instance=ExtResource("5_6hay3")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="label2" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -156,7 +164,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "ГО"
metadata/unit_name = &"эмс-го"
[node name="sub2" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub2" type="GridContainer" parent="шкала" groups=["чётные", "шкалы-кластеров"]]
self_modulate = Color(0.258824, 0.266667, 0.266667, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -168,6 +177,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="panel_tx" parent="шкала/sub2" instance=ExtResource("5_6hay3")]
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
@@ -175,6 +185,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="label3" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -185,7 +196,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "РЛС1"
metadata/unit_name = &"эмс-рлс1"
[node name="sub3" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub3" type="GridContainer" parent="шкала" groups=["нечётные", "шкалы-кластеров"]]
self_modulate = Color(0.294118, 0.294118, 0.294118, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -196,12 +208,14 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="panel_tx" parent="шкала/sub3" instance=ExtResource("5_6hay3")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="label4" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -212,7 +226,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "РЛС2"
metadata/unit_name = &"эмс-рлс2"
[node name="sub4" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub4" type="GridContainer" parent="шкала" groups=["чётные", "шкалы-кластеров"]]
self_modulate = Color(0.258824, 0.266667, 0.266667, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -224,6 +239,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="panel_tx" parent="шкала/sub4" instance=ExtResource("5_6hay3")]
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
@@ -231,6 +247,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="label5" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -241,7 +258,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "ННВС"
metadata/unit_name = &"эмс-ннвс"
[node name="sub5" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub5" type="GridContainer" parent="шкала" groups=["нечётные", "шкалы-кластеров"]]
self_modulate = Color(0.294118, 0.294118, 0.294118, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -252,12 +270,14 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="panel_tx" parent="шкала/sub5" instance=ExtResource("5_6hay3")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="label6" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -268,7 +288,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "Изделие 7"
metadata/unit_name = &"изделие7"
[node name="sub6" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub6" type="GridContainer" parent="шкала" groups=["чётные", "шкалы-кластеров"]]
self_modulate = Color(0.258824, 0.266667, 0.266667, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -280,6 +301,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="panel_tx" parent="шкала/sub6" instance=ExtResource("5_6hay3")]
self_modulate = Color(0.830335, 0.830335, 0.830335, 1)
@@ -287,6 +309,7 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.258824, 0.266667, 0.266667, 1)
[node name="label7" type="Button" parent="шкала" groups=["кнопки-шкалы"]]
layout_mode = 2
@@ -297,7 +320,8 @@ button_group = SubResource("ButtonGroup_vwsbs")
text = "Изделие 8"
metadata/unit_name = &"эмс-изделие8"
[node name="sub7" type="GridContainer" parent="шкала" groups=["шкалы-кластеров"]]
[node name="sub7" type="GridContainer" parent="шкала" groups=["нечётные", "шкалы-кластеров"]]
self_modulate = Color(0.294118, 0.294118, 0.294118, 1)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -308,12 +332,14 @@ layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c73tjrn8gr00o"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="panel_tx" parent="шкала/sub7" instance=ExtResource("5_6hay3")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
image_file = "uid://c6etralq2tvxg"
back_color = Color(0.31863, 0.32773, 0.327729, 1)
[node name="фон-матрицы" type="Polygon2D" parent="."]
self_modulate = Color(0.498039, 0.498039, 0.498039, 0.498039)