Доработка, добавлен обработчик кнопки отключить всё.
This commit is contained in:
17
scenes/frm_ecm_list.gd
Normal file
17
scenes/frm_ecm_list.gd
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
extends NinePatchRect
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
$grd_forced/btn_cancel.button_connect('pressed', Callable(self, 'on_btn_cancel_pressed').bind($grd_forced/btn_cancel))
|
||||||
|
|
||||||
|
|
||||||
|
func on_btn_cancel_pressed(btn):
|
||||||
|
signaller.emit_signal('interfer_off_all')
|
||||||
|
await get_tree().create_timer(0.1).timeout
|
||||||
|
btn.pressed = false
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=5 format=3 uid="uid://7rvw671tlx2i"]
|
[gd_scene load_steps=6 format=3 uid="uid://7rvw671tlx2i"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cs6i1xwx0pmdk" path="res://data/рамка-панели.png" id="1_6swor"]
|
[ext_resource type="Texture2D" uid="uid://cs6i1xwx0pmdk" path="res://data/рамка-панели.png" id="1_6swor"]
|
||||||
[ext_resource type="Script" path="res://scenes/scroll-ecm-list.gd" id="2_3x81o"]
|
[ext_resource type="Script" path="res://scenes/scroll-ecm-list.gd" id="2_3x81o"]
|
||||||
|
[ext_resource type="Script" path="res://scenes/frm_ecm_list.gd" id="2_mt58v"]
|
||||||
[ext_resource type="Script" path="res://table/table.gd" id="3_4hydx"]
|
[ext_resource type="Script" path="res://table/table.gd" id="3_4hydx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat.tscn" id="4_7ys3c"]
|
[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat.tscn" id="4_7ys3c"]
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ patch_margin_left = 15
|
|||||||
patch_margin_top = 30
|
patch_margin_top = 30
|
||||||
patch_margin_right = 15
|
patch_margin_right = 15
|
||||||
patch_margin_bottom = 10
|
patch_margin_bottom = 10
|
||||||
|
script = ExtResource("2_mt58v")
|
||||||
|
|
||||||
[node name="header" type="Label" parent="."]
|
[node name="header" type="Label" parent="."]
|
||||||
clip_contents = true
|
clip_contents = true
|
||||||
@@ -77,5 +79,4 @@ layout_mode = 2
|
|||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
text = "Отключить все"
|
text = "Отключить все"
|
||||||
pressed = true
|
|
||||||
metadata/rfi_name = "<off>"
|
metadata/rfi_name = "<off>"
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ func _ready():
|
|||||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
||||||
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||||
call_deferred('init_table')
|
call_deferred('init_table')
|
||||||
|
#$btn_cancel.button_connect('pressed', Callable(self, 'on_btn_cancel_pressed').bind($btn_cancel))
|
||||||
|
|
||||||
|
|
||||||
func init_table():
|
func init_table():
|
||||||
$table.set_header(TABLE_HEADER)
|
$table.set_header(TABLE_HEADER)
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ func _ready():
|
|||||||
signaller.connect('threat_selected', Callable(self, 'on_threat_selected').bind(nodes))
|
signaller.connect('threat_selected', Callable(self, 'on_threat_selected').bind(nodes))
|
||||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(nodes))
|
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(nodes))
|
||||||
signaller.connect('interfer_new', Callable(self, 'on_interfer_new'))
|
signaller.connect('interfer_new', Callable(self, 'on_interfer_new'))
|
||||||
|
signaller.connect('interfer_off_all', Callable(self, 'interfer_off_all'))
|
||||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_new'))
|
interfer.connect('interfer_update', Callable(self, 'on_interfer_new'))
|
||||||
|
|
||||||
func on_enter_tree() -> void:
|
func on_enter_tree() -> void:
|
||||||
@@ -125,10 +126,18 @@ func on_interfer_new(ecm):
|
|||||||
bip.set_ecm_visible(true)
|
bip.set_ecm_visible(true)
|
||||||
else: bip.set_ecm_visible(false)
|
else: bip.set_ecm_visible(false)
|
||||||
else:
|
else:
|
||||||
|
print_debug()
|
||||||
bip.set_ecm_visible(false)
|
bip.set_ecm_visible(false)
|
||||||
bip.set_track_visible(false)
|
bip.set_track_visible(false)
|
||||||
|
|
||||||
|
|
||||||
|
func interfer_off_all():
|
||||||
|
var bips: Array = get_children().filter(func(item): return item.name.is_valid_int())
|
||||||
|
for bip in bips:
|
||||||
|
bip.set_ecm_visible(false)
|
||||||
|
bip.set_track_visible(false)
|
||||||
|
|
||||||
|
|
||||||
## Обработчик сигнала обнаружения цели
|
## Обработчик сигнала обнаружения цели
|
||||||
func on_threat_new(th) -> void:
|
func on_threat_new(th) -> void:
|
||||||
var bip = Bip.instantiate()
|
var bip = Bip.instantiate()
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ func _ready():
|
|||||||
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(ecms))
|
unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(ecms))
|
||||||
signaller.connect('interfer_create', Callable(self, 'on_interfer_create').bind(unit, ecms))
|
signaller.connect('interfer_create', Callable(self, 'on_interfer_create').bind(unit, ecms))
|
||||||
signaller.connect('interfer_new', Callable(self, 'send_ecm').bind(unit))
|
signaller.connect('interfer_new', Callable(self, 'send_ecm').bind(unit))
|
||||||
|
signaller.connect('interfer_off_all', Callable(self, 'on_interfer_off_all').bind(unit, ecms))
|
||||||
|
|
||||||
# Проверяет состояние отправки пакета и если не доставлен, повторяет отправку
|
# Проверяет состояние отправки пакета и если не доставлен, повторяет отправку
|
||||||
func on_timer_check_state(unit, ecms, resend_timeout):
|
func on_timer_check_state(unit, ecms, resend_timeout):
|
||||||
@@ -174,6 +175,7 @@ func on_interfer_create(btn, sel_threats, unit, ecms):
|
|||||||
if interfer_name == 'off':
|
if interfer_name == 'off':
|
||||||
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
||||||
push_id(ecm.ispp)
|
push_id(ecm.ispp)
|
||||||
|
thrs.erase(ispp)
|
||||||
ecm.tick_tx = Time.get_ticks_msec()
|
ecm.tick_tx = Time.get_ticks_msec()
|
||||||
|
|
||||||
|
|
||||||
@@ -182,6 +184,14 @@ func send_ecm(ecm, unit):
|
|||||||
unit.tx_stack.append(json_data)
|
unit.tx_stack.append(json_data)
|
||||||
|
|
||||||
|
|
||||||
|
func on_interfer_off_all(unit, ecms):
|
||||||
|
for ecm in ecms.values():
|
||||||
|
ecm.krp = INTERFER_OFF
|
||||||
|
push_id(ecm.ispp)
|
||||||
|
send_ecm(ecm, unit)
|
||||||
|
signaller.emit_signal('interfer_off',ecm, ecms, thrs)
|
||||||
|
|
||||||
|
|
||||||
func pop_id():
|
func pop_id():
|
||||||
var id = 0
|
var id = 0
|
||||||
if len(id_array):
|
if len(id_array):
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ signal interfer_new (ecm: interfer.Interfer)
|
|||||||
signal interfer_off (ecm: interfer.Interfer, ecms: Dictionary, thrs: Dictionary)
|
signal interfer_off (ecm: interfer.Interfer, ecms: Dictionary, thrs: Dictionary)
|
||||||
|
|
||||||
|
|
||||||
|
## Вызывается при нажатии отключить все помехи
|
||||||
|
signal interfer_off_all ()
|
||||||
|
|
||||||
|
|
||||||
## Вызывается, когда отключается действующая помеха
|
## Вызывается, когда отключается действующая помеха
|
||||||
## [param ecm] - Выбранная помеха
|
## [param ecm] - Выбранная помеха
|
||||||
signal interfer_selected (ecm: interfer.Interfer)
|
signal interfer_selected (ecm: interfer.Interfer)
|
||||||
|
|||||||
Reference in New Issue
Block a user