Доработка, добавлен обработчик кнопки отключить всё.
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="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="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_right = 15
|
||||
patch_margin_bottom = 10
|
||||
script = ExtResource("2_mt58v")
|
||||
|
||||
[node name="header" type="Label" parent="."]
|
||||
clip_contents = true
|
||||
@@ -77,5 +79,4 @@ layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
text = "Отключить все"
|
||||
pressed = true
|
||||
metadata/rfi_name = "<off>"
|
||||
|
||||
@@ -80,7 +80,8 @@ func _ready():
|
||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
||||
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||
call_deferred('init_table')
|
||||
|
||||
#$btn_cancel.button_connect('pressed', Callable(self, 'on_btn_cancel_pressed').bind($btn_cancel))
|
||||
|
||||
|
||||
func init_table():
|
||||
$table.set_header(TABLE_HEADER)
|
||||
|
||||
@@ -88,6 +88,7 @@ func _ready():
|
||||
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_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'))
|
||||
|
||||
func on_enter_tree() -> void:
|
||||
@@ -125,10 +126,18 @@ func on_interfer_new(ecm):
|
||||
bip.set_ecm_visible(true)
|
||||
else: bip.set_ecm_visible(false)
|
||||
else:
|
||||
print_debug()
|
||||
bip.set_ecm_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:
|
||||
var bip = Bip.instantiate()
|
||||
|
||||
@@ -98,6 +98,7 @@ func _ready():
|
||||
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_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):
|
||||
@@ -174,6 +175,7 @@ func on_interfer_create(btn, sel_threats, unit, ecms):
|
||||
if interfer_name == 'off':
|
||||
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
||||
push_id(ecm.ispp)
|
||||
thrs.erase(ispp)
|
||||
ecm.tick_tx = Time.get_ticks_msec()
|
||||
|
||||
|
||||
@@ -182,6 +184,14 @@ func send_ecm(ecm, unit):
|
||||
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():
|
||||
var id = 0
|
||||
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_all ()
|
||||
|
||||
|
||||
## Вызывается, когда отключается действующая помеха
|
||||
## [param ecm] - Выбранная помеха
|
||||
signal interfer_selected (ecm: interfer.Interfer)
|
||||
|
||||
Reference in New Issue
Block a user