46 lines
1.9 KiB
GDScript
46 lines
1.9 KiB
GDScript
@tool
|
|
extends Panel
|
|
|
|
|
|
@export var matrix_conf: Array[Texture] ## [0] - чисто, нет конфликта, [1] - есть наложение частот
|
|
@export var index_to_unit_names: Array[StringName] ## Имена устройств (Индекс -> Имя устройства)
|
|
@export_file('*.tscn') var table_headers: Array[String]
|
|
@export_file('*.tscn') var table_cells: Array[String]
|
|
@export_file('*.png') var image_file_rx: String
|
|
@export_file('*.png') var image_file_tx: String
|
|
@export var table_column_widths: Array[int]
|
|
@export var table_header_widths: Array[int]
|
|
@export var table_header_text: Array[String]
|
|
var table_cell_row: Array
|
|
var name_to_index: Dictionary[StringName, int] ## Имена устройств (Имя устройства -> Индекс)
|
|
|
|
|
|
func _ready() -> void:
|
|
for i in index_to_unit_names.size():
|
|
var nm: = index_to_unit_names[i]
|
|
name_to_index[nm] = i
|
|
var header_row: = []
|
|
for cell_scn in table_headers:
|
|
header_row.append(load(cell_scn))
|
|
for cell_scn in table_cells:
|
|
table_cell_row.append(load(cell_scn))
|
|
|
|
$'таблица/сетка'.set_header(header_row)
|
|
$'таблица/сетка'.set_header_text(table_header_text)
|
|
$'таблица/сетка'.set_header_property(6, 'image_file', image_file_rx)
|
|
$'таблица/сетка'.set_header_property(7, 'image_file', image_file_tx)
|
|
|
|
$'таблица/сетка'.set_headers_min_size(table_header_widths)
|
|
$'таблица/сетка'.set_columns_min_size(table_column_widths)
|
|
$'таблица/сетка'.set_rows_min_hight(32)
|
|
$'таблица/сетка'.set_header_min_hight(32)
|
|
$'таблица/сетка'.pin_header2()
|
|
|
|
for nm in index_to_unit_names:
|
|
var yems_unit = network.get_unit_instance(nm)
|
|
yems_unit.connect('data_received', on_data_received.bind(nm))
|
|
|
|
|
|
func on_data_received(data, nm):
|
|
print_debug('%s: %d' % [nm, len(data)])
|