Files
imi_skysens/pomehi.gd

125 lines
4.8 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

extends Node
var id_array: Array # Массив id целей
var pomehi : Dictionary # Словарь целей
var msg_counter : int = 0 # Счётчик отправленных пакетов
const TableCellType1 = preload('res://ячейка-1.tscn')
const TableCellType2 = preload('res://кнопка-3.tscn')
const TableCellType3 = preload('res://кнопка-4.tscn')
const TableCellType4 = preload('res://заголовок.tscn')
const TableCellType5 = preload('res://ячейка-2.tscn')
const TableCellType6 = preload('res://кнопка-5.tscn')
# Индекс колонки: 0 1 2 3 4 5 6
const TABLE_HEADERS = [ 'Индекс', 'Состояние', 'Помеха', 'Мощность', 'Кур. уг.', 'Частота', 'Ш. диап.']
const TABLE_HEADER_TYPES = [ TableCellType4, TableCellType4, TableCellType4, TableCellType4, TableCellType4, TableCellType4, TableCellType4]
const TABLE_HEADER_ALIGNMENTS = [ HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER]
const TABLE_ROW_TYPES = [ TableCellType1, TableCellType6, TableCellType1, TableCellType1, TableCellType1, TableCellType1, TableCellType1]
const TABLE_ROW_ALIGNMENTS = [ HALIGN_CENTER, HALIGN_LEFT, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER, HALIGN_CENTER]
const TABLE_COLUMN_SIZES = [ 82, 120, 82, 100, 82, 90, 150]
const COLUMN_ISPP = 0 # Индекс сейанса постановки помехи
const COLUMN_SVK = 1 # Состояние выполнения помехи
const COLUMN_KRP = 2 # Помеха
const COLUMN_POWP = 3 # Мощность излучения
const COLUMN_KNI = 4 # Курсовой угол
const COLUMN_FREQ = 5 # Частота
const COLUMN_WIDTH = 6 # Ширина диапазона
# Индексы колонок, которым можно задавать выравнивание текста
const TABLE_ALLIGNED_COLUMNS = [
COLUMN_ISPP,
COLUMN_KRP,
COLUMN_POWP,
COLUMN_KNI,
COLUMN_FREQ,
COLUMN_WIDTH, ]
# Состояние выполнения команды поставновки помехи
const SVK = ['<неопр.>', 'fhss', 'lfm', 'const']
# Номера колонок
const COLUMN_OPT = [[COLUMN_SVK, SVK]]
const COLUMN_OPT_BTN = [COLUMN_SVK]
const ID_ARRAY_LEN = 100 # Размер пула номеров целей
# Помеха
class Pomeha:
# параметры цели, второе значение, разрешение отправки.
var ispp : String
var svk : int
var krp : String
var powp : String
var kni : String
var freq : String
var width : String
func _init(args : Array):
ispp = String(args[0])
krp = String(args[1])
powp = String(args[2])
kni = String(args[3])
freq = String(args[4])
width = String(args[5])
func update_rows():
var new_rows: Array = []
new_rows.append(String(ispp))
new_rows.append(String(svk))
new_rows.append(String(krp))
new_rows.append(String(powp))
new_rows.append(String(kni))
new_rows.append(String(freq))
new_rows.append(String(width))
return new_rows
func selector_color_proc(_i_row: int):
return Consts.COLOR_ACCENT * Consts.COLOR_HALF_ALPHA
func init_table(table: Table, sizes: Array):
for i_row in table.get_rows_count():
table.set_nodes_min_size(i_row, sizes)
table.set_selector_color_proc(self, 'selector_color_proc')
func init_opt_btns(row : int, table):
for item in COLUMN_OPT:
var i_col = item[0]
var opt_arr = item[1]
var cell = table.get_node2(i_col, row)
for opt in opt_arr:
cell.add_item(opt)
cell.select(0)
func init_pomehi(header, table): # Инициализация вкладки с целями
header.add_row(TABLE_HEADER_TYPES)
header.set_rows_text([TABLE_HEADERS])
on_btn_add(table)
init_table(header, TABLE_COLUMN_SIZES)
init_table(table, TABLE_COLUMN_SIZES)
table.align_to_left_bottom(header, Vector2(0, 2))
table.connect('row_pressed', self, 'on_row_pressed', [table])
table.set_callbacks(self, 'item_selected', 'on_item_selected', COLUMN_OPT_BTN, [table])
func on_btn_add(table):
var pomeha : = Pomeha.new([1,2,3,4,5,6])
pomehi[String(1)] = pomeha
var row = pomeha.update_rows()
table.add_row(TABLE_ROW_TYPES)
table.set_row_text(table.get_rows_count()-1, row)
init_opt_btns(table.get_rows_count()-1, table)
table.set_callbacks(self, 'item_selected', 'on_item_selected', COLUMN_OPT_BTN, [])
func on_row_pressed(i_row: int, table):
pass