From 67942886d33e3996575be266ec5252fb9736f549 Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Thu, 9 Nov 2023 11:07:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0,=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=D0=B6=D0=B0=D1=82=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=86=D0=B5=D0=BB=D0=B8=20=D0=B8=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=20=D1=86=D0=B5=D0=BB=D0=B8=20=D0=B2=20=D1=82?= =?UTF-8?q?=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/bip.gd | 9 +++++-- scenes/bip.tscn | 39 ++++++++++++++-------------- scenes/btn_scale.tscn | 4 +-- scenes/canvas.tscn | 20 +++++++-------- scenes/scroll-threats.gd | 12 +++++++++ scenes/tab-switch.tscn | 24 +++++++++--------- scenes/tilemap.gd | 1 - scenes/работа.gd | 19 ++++++++++++++ scenes/работа.tscn | 52 +++++++++++++++++++------------------- scripts/signaller.gd | 7 ++++- scripts/threats.gd | 17 +++++++++++++ shaders/select_tr.gdshader | 4 +-- shaders/tracked.gdshader | 2 +- 13 files changed, 133 insertions(+), 77 deletions(-) diff --git a/scenes/bip.gd b/scenes/bip.gd index 94badd26..28989149 100644 --- a/scenes/bip.gd +++ b/scenes/bip.gd @@ -11,5 +11,10 @@ func _process(delta): pass -func _on_pressed(): - print_debug('Click') +# Функция делает присваивает заданое значение видимости селектору +func set_sel_visible(value: bool): + $selector.visible = value + + +func _on_bip_pressed(): + signaller.emit_signal('rto_threat_sel', self) diff --git a/scenes/bip.tscn b/scenes/bip.tscn index 9980797f..bce126ba 100644 --- a/scenes/bip.tscn +++ b/scenes/bip.tscn @@ -1,11 +1,11 @@ [gd_scene load_steps=12 format=3 uid="uid://nl1vklubr5kr"] -[ext_resource type="Script" path="res://scenes/bip.gd" id="1_23kyy"] -[ext_resource type="Shader" path="res://shaders/bip.gdshader" id="2_w4jcf"] -[ext_resource type="Shader" path="res://shaders/tracked.gdshader" id="3_d16rn"] +[ext_resource type="Script" path="res://scenes/bip.gd" id="1_dag5j"] +[ext_resource type="Shader" path="res://shaders/bip.gdshader" id="2_7w7lp"] +[ext_resource type="Shader" path="res://shaders/tracked.gdshader" id="3_p7omr"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_2dulj"] -shader = ExtResource("2_w4jcf") +shader = ExtResource("2_7w7lp") shader_parameter/color = Color(0.972549, 0.12549, 0.411765, 1) shader_parameter/color_up = Color(1, 1, 1, 1) shader_parameter/tick_update = 0 @@ -112,7 +112,7 @@ shader_parameter/speed = -73.0 shader_parameter/ant_band_count_0 = 9 [sub_resource type="ShaderMaterial" id="ShaderMaterial_lkrha"] -shader = ExtResource("3_d16rn") +shader = ExtResource("3_p7omr") shader_parameter/ColorFig = Color(0, 0.862745, 0, 1) shader_parameter/point_1 = Vector2(0.125, 0) shader_parameter/point_2 = Vector2(0.125, 0.036) @@ -127,43 +127,42 @@ shader_parameter/speed = 71.0 [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_svd33"] -[node name="Control" type="Control"] +[node name="threat" type="Control"] layout_mode = 3 anchors_preset = 0 -offset_right = 31.0 -offset_bottom = 30.0 -script = ExtResource("1_23kyy") +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("1_dag5j") [node name="bip" type="TextureButton" parent="."] material = SubResource("ShaderMaterial_2dulj") layout_direction = 1 layout_mode = 0 -offset_right = 3.0 -offset_bottom = 3.0 -scale = Vector2(10, 10) +offset_right = 1.0 +offset_bottom = 1.0 +scale = Vector2(20, 20) texture_normal = SubResource("PlaceholderTexture2D_w5pye") stretch_mode = 3 -script = ExtResource("1_23kyy") [node name="selector" type="Sprite2D" parent="."] visible = false material = SubResource("ShaderMaterial_fkqwb") -position = Vector2(10, 10) -scale = Vector2(10, 10) +scale = Vector2(20, 20) texture = SubResource("PlaceholderTexture2D_hqs6j") centered = false [node name="recomendation" type="Sprite2D" parent="."] +visible = false material = SubResource("ShaderMaterial_lpmq6") -position = Vector2(10, 10) -scale = Vector2(10, 10) +scale = Vector2(20, 20) texture = SubResource("PlaceholderTexture2D_hqs6j") centered = false [node name="track" type="Sprite2D" parent="."] +visible = false material = SubResource("ShaderMaterial_lkrha") -position = Vector2(15, 15) -scale = Vector2(13, 13) +position = Vector2(10, 10) +scale = Vector2(26, 26) texture = SubResource("PlaceholderTexture2D_svd33") -[connection signal="pressed" from="bip" to="bip" method="_on_pressed"] +[connection signal="pressed" from="bip" to="." method="_on_bip_pressed"] diff --git a/scenes/btn_scale.tscn b/scenes/btn_scale.tscn index 9611706e..4cd33461 100644 --- a/scenes/btn_scale.tscn +++ b/scenes/btn_scale.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://0uqi1ghf7sma"] -[ext_resource type="Texture2D" uid="uid://c1maea6yhd3k7" path="res://data/кнопка-масштаб.png" id="1_r871k"] +[ext_resource type="Texture2D" uid="uid://c1maea6yhd3k7" path="res://data/кнопка-масштаб.png" id="1_qmk0r"] [node name="btn_scale" type="TextureButton"] self_modulate = Color(1, 1, 1, 0.509804) @@ -8,7 +8,7 @@ offset_right = 152.0 offset_bottom = 18.0 tooltip_text = "Измененяет масштаб" action_mode = 0 -texture_normal = ExtResource("1_r871k") +texture_normal = ExtResource("1_qmk0r") ignore_texture_size = true stretch_mode = 0 metadata/i_scale = 0 diff --git a/scenes/canvas.tscn b/scenes/canvas.tscn index 1302ada9..9935eec7 100644 --- a/scenes/canvas.tscn +++ b/scenes/canvas.tscn @@ -1,16 +1,16 @@ [gd_scene load_steps=7 format=3 uid="uid://b5kjdyxuwsot5"] -[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://shaders/shader_edu.tres" id="1_27ax3"] -[ext_resource type="Script" path="res://scenes/canvas.gd" id="2_5wost"] -[ext_resource type="PackedScene" uid="uid://c73ahpv8uiuc7" path="res://scenes/sector.tscn" id="3_rminv"] -[ext_resource type="Shader" path="res://shaders/sector.gdshader" id="4_nkch3"] +[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://shaders/shader_edu.tres" id="1_41nty"] +[ext_resource type="Script" path="res://scenes/canvas.gd" id="2_ci66x"] +[ext_resource type="PackedScene" uid="uid://c73ahpv8uiuc7" path="res://scenes/sector.tscn" id="3_4r7tl"] +[ext_resource type="Shader" path="res://shaders/sector.gdshader" id="4_4000y"] [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2bft1"] size = Vector2(1600, 1200) -[sub_resource type="ShaderMaterial" id="ShaderMaterial_vipcu"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_uqrmv"] resource_local_to_scene = true -shader = ExtResource("4_nkch3") +shader = ExtResource("4_4000y") shader_parameter/color = Color(1, 1, 1, 0.168627) shader_parameter/clip_color = Color(1, 0.5, 0.5, 1) shader_parameter/width = 45.0 @@ -20,12 +20,12 @@ shader_parameter/dir = 0.0 shader_parameter/inner_clip = 0.045 [node name="canvas" type="Sprite2D"] -material = ExtResource("1_27ax3") +material = ExtResource("1_41nty") texture = SubResource("PlaceholderTexture2D_2bft1") centered = false -script = ExtResource("2_5wost") +script = ExtResource("2_ci66x") -[node name="строб" parent="." instance=ExtResource("3_rminv")] -material = SubResource("ShaderMaterial_vipcu") +[node name="строб" parent="." instance=ExtResource("3_4r7tl")] +material = SubResource("ShaderMaterial_uqrmv") position = Vector2(560, 560) scale = Vector2(1100, 1100) diff --git a/scenes/scroll-threats.gd b/scenes/scroll-threats.gd index 45d57911..2c655892 100644 --- a/scenes/scroll-threats.gd +++ b/scenes/scroll-threats.gd @@ -22,6 +22,7 @@ func on_row_pressed(i_row: int): signaller.emit_signal('threat_selected', threat) + func init_table(): $table.set_header(TABLE_HEADER) $table.set_header_text(TABLE_HEADERS_TEXT) @@ -34,6 +35,7 @@ func _ready() -> void: threats.connect('threat_new', Callable(self, 'on_threat_new').bind(table_index)) threats.connect('threat_lost', Callable(self, 'on_threat_lost').bind(table_index)) threats.connect('threat_update', Callable(self, 'on_threat_update').bind(table_index)) + signaller.connect('rto_threat_sel', Callable(self, 'on_rto_threat_sel').bind($table)) $table.connect('row_pressed', Callable(self, 'on_row_pressed')) call_deferred('init_table') @@ -80,3 +82,13 @@ func map_th_to_row(th) -> Array: row[i_col] = '%s' % th.get(param_name) i_col += 1 return row + + +## Выделяет выбранную цель в таблице +func on_rto_threat_sel(bip, tbl): + for i in tbl.get_rows_count(): + var node = tbl.get_node2(0, i) + if node.text.to_int() == bip.name.to_int(): + on_row_pressed(i) + break + diff --git a/scenes/tab-switch.tscn b/scenes/tab-switch.tscn index a580ec7f..31d472fc 100644 --- a/scenes/tab-switch.tscn +++ b/scenes/tab-switch.tscn @@ -1,32 +1,32 @@ [gd_scene load_steps=7 format=3 uid="uid://3slb0i3pvowc"] -[ext_resource type="Script" path="res://scenes/tab-switch.gd" id="1_qroqt"] -[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа.tscn" id="2_pdbvn"] -[ext_resource type="PackedScene" uid="uid://lwmw4egynmd1" path="res://scenes/контроль.tscn" id="3_2apbp"] -[ext_resource type="PackedScene" uid="uid://trt0q8th3bn2" path="res://scenes/журнал.tscn" id="4_yq6c0"] -[ext_resource type="PackedScene" uid="uid://dab6loryocc73" path="res://scenes/эмс.tscn" id="5_tlyql"] -[ext_resource type="PackedScene" uid="uid://bnptm4rlp60dq" path="res://scenes/настройки.tscn" id="6_rxq15"] +[ext_resource type="Script" path="res://scenes/tab-switch.gd" id="1_ddefd"] +[ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа.tscn" id="2_dgwu2"] +[ext_resource type="PackedScene" uid="uid://lwmw4egynmd1" path="res://scenes/контроль.tscn" id="3_wh23t"] +[ext_resource type="PackedScene" uid="uid://trt0q8th3bn2" path="res://scenes/журнал.tscn" id="4_38go3"] +[ext_resource type="PackedScene" uid="uid://dab6loryocc73" path="res://scenes/эмс.tscn" id="5_qasm0"] +[ext_resource type="PackedScene" uid="uid://bnptm4rlp60dq" path="res://scenes/настройки.tscn" id="6_h83md"] [node name="tab_switch" type="TabContainer"] offset_right = 1600.0 offset_bottom = 1200.0 -script = ExtResource("1_qroqt") +script = ExtResource("1_ddefd") -[node name="Работа" parent="." instance=ExtResource("2_pdbvn")] +[node name="Работа" parent="." instance=ExtResource("2_dgwu2")] layout_mode = 2 -[node name="Контроль" parent="." instance=ExtResource("3_2apbp")] +[node name="Контроль" parent="." instance=ExtResource("3_wh23t")] visible = false layout_mode = 2 -[node name="Журнал" parent="." instance=ExtResource("4_yq6c0")] +[node name="Журнал" parent="." instance=ExtResource("4_38go3")] visible = false layout_mode = 2 -[node name="ЭМС" parent="." instance=ExtResource("5_tlyql")] +[node name="ЭМС" parent="." instance=ExtResource("5_qasm0")] visible = false layout_mode = 2 -[node name="Настройки" parent="." instance=ExtResource("6_rxq15")] +[node name="Настройки" parent="." instance=ExtResource("6_h83md")] visible = false layout_mode = 2 diff --git a/scenes/tilemap.gd b/scenes/tilemap.gd index 03f36bd7..9041369d 100644 --- a/scenes/tilemap.gd +++ b/scenes/tilemap.gd @@ -17,7 +17,6 @@ var map_bcs: Vector3 ## Яркость, контра func _ready(): # Create an HTTP request node and connect its completion signal. var tile = mercantile.Tile.new() - print_debug('Плитка: %s %s' % [tile, tile.is_valid()]) var http_request = HTTPRequest.new() add_child(http_request) http_request.request_completed.connect(self._http_request_completed) diff --git a/scenes/работа.gd b/scenes/работа.gd index 44858fa7..c39b5d31 100644 --- a/scenes/работа.gd +++ b/scenes/работа.gd @@ -64,6 +64,8 @@ func _ready(): threats.connect('threat_lost', Callable(self, 'on_threat_lost')) threats.connect('threats_resized', Callable(self, 'on_threats_resized')) threats.connect('threat_update', Callable(self, 'on_threat_update')) + signaller.connect('rto_threat_sel', Callable(self, 'on_rto_threat_sel')) + signaller.connect('threat_selected', Callable(self, 'on_threat_selected')) ## Производит отображение цели на диаграмму @@ -99,6 +101,23 @@ func on_threat_lost(th) -> void: bip.free() +## Обработчик выбора РТО цели +func on_rto_threat_sel(bip): + var bips: Array = get_children().filter(func(item): return item.name.is_valid_int()) + for item in bips: + item.set_sel_visible(false) + bip.set_sel_visible(true) + + +func on_threat_selected(th): + var bips: Array = get_children().filter(func(item): return item.name.is_valid_int()) + for item in bips: + if th.id == item.name.to_int(): + item.set_sel_visible(true) + else: + item.set_sel_visible(false) + + ## Обработчик нажатия кнопки "Строб". Управляет отображением строба func on_button_strobe_pressed() -> void: drag_fsm = DragFSM.IDLE if $btn_strob.is_pressed() else DragFSM.OFF diff --git a/scenes/работа.tscn b/scenes/работа.tscn index 7f8d6308..b03abb71 100644 --- a/scenes/работа.tscn +++ b/scenes/работа.tscn @@ -1,25 +1,25 @@ [gd_scene load_steps=13 format=3 uid="uid://b276iygic5itk"] -[ext_resource type="Script" path="res://scenes/работа.gd" id="1_vmjjl"] -[ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip.tscn" id="2_ew6j4"] -[ext_resource type="PackedScene" uid="uid://dem3fcec25awh" path="res://scenes/grd_side.tscn" id="3_7lxgd"] -[ext_resource type="PackedScene" uid="uid://cnkbk53mi7viu" path="res://scenes/grd_btns.tscn" id="5_0a5o3"] -[ext_resource type="PackedScene" uid="uid://dymo732qc2doa" path="res://scenes/count_all_pad.tscn" id="6_l7wyl"] -[ext_resource type="PackedScene" uid="uid://bwti82byphl68" path="res://scenes/count_danger_pad.tscn" id="7_f41cy"] -[ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/canvas.tscn" id="7_pvt8f"] -[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat.tscn" id="8_r2k1p"] -[ext_resource type="PackedScene" uid="uid://0uqi1ghf7sma" path="res://scenes/btn_scale.tscn" id="8_xddop"] -[ext_resource type="PackedScene" uid="uid://bbq6nklh36yij" path="res://scenes/tilemap.tscn" id="10_wpi4s"] -[ext_resource type="Shader" path="res://shaders/tilemap.gdshader" id="11_7ohqv"] +[ext_resource type="Script" path="res://scenes/работа.gd" id="1_rb8fv"] +[ext_resource type="PackedScene" uid="uid://nl1vklubr5kr" path="res://scenes/bip.tscn" id="2_1ntlf"] +[ext_resource type="PackedScene" uid="uid://dem3fcec25awh" path="res://scenes/grd_side.tscn" id="3_6vmv5"] +[ext_resource type="PackedScene" uid="uid://b5kjdyxuwsot5" path="res://scenes/canvas.tscn" id="4_7dvd8"] +[ext_resource type="PackedScene" uid="uid://cnkbk53mi7viu" path="res://scenes/grd_btns.tscn" id="5_kpx5b"] +[ext_resource type="PackedScene" uid="uid://dymo732qc2doa" path="res://scenes/count_all_pad.tscn" id="6_x6urv"] +[ext_resource type="PackedScene" uid="uid://bwti82byphl68" path="res://scenes/count_danger_pad.tscn" id="7_b0iag"] +[ext_resource type="PackedScene" uid="uid://da7w3vkhadfwe" path="res://scenes/button-flat.tscn" id="8_cha28"] +[ext_resource type="PackedScene" uid="uid://0uqi1ghf7sma" path="res://scenes/btn_scale.tscn" id="9_e8unk"] +[ext_resource type="PackedScene" uid="uid://bbq6nklh36yij" path="res://scenes/tilemap.tscn" id="10_rp4rk"] +[ext_resource type="Shader" path="res://shaders/tilemap.gdshader" id="11_ked7m"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_whr8j"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xpefk"] resource_local_to_scene = true -shader = ExtResource("11_7ohqv") +shader = ExtResource("11_ked7m") shader_parameter/radius = 0.4 [node name="Работа" type="Panel"] -script = ExtResource("1_vmjjl") -Bip = ExtResource("2_ew6j4") +script = ExtResource("1_rb8fv") +Bip = ExtResource("2_1ntlf") col_grey = Color(0.34902, 0.643137, 0.772549, 0.168627) col_red = Color(1, 0.568627, 0.431373, 0.239216) drag_scale_band = 0.05 @@ -36,7 +36,7 @@ strob_min_width = 5.0 metadata/_edit_vertical_guides_ = [] metadata/_edit_lock_ = true -[node name="grd_side" parent="." instance=ExtResource("3_7lxgd")] +[node name="grd_side" parent="." instance=ExtResource("3_6vmv5")] layout_mode = 0 offset_left = 1114.0 offset_top = 7.0 @@ -44,10 +44,10 @@ offset_right = 1594.0 offset_bottom = 1170.0 metadata/_edit_lock_ = true -[node name="canvas" parent="." instance=ExtResource("7_pvt8f")] +[node name="canvas" parent="." instance=ExtResource("4_7dvd8")] metadata/_edit_lock_ = true -[node name="grd_btns" parent="." instance=ExtResource("5_0a5o3")] +[node name="grd_btns" parent="." instance=ExtResource("5_kpx5b")] layout_mode = 0 offset_left = 10.0 offset_top = 1116.0 @@ -55,14 +55,14 @@ offset_right = 1106.0 offset_bottom = 1170.0 metadata/_edit_lock_ = true -[node name="count_all_pad" parent="." instance=ExtResource("6_l7wyl")] +[node name="count_all_pad" parent="." instance=ExtResource("6_x6urv")] layout_mode = 0 offset_left = 100.0 offset_top = 117.0 offset_right = 133.0 offset_bottom = 140.0 -[node name="count_danger_pad" parent="." instance=ExtResource("7_f41cy")] +[node name="count_danger_pad" parent="." instance=ExtResource("7_b0iag")] layout_mode = 0 offset_left = 96.0 offset_top = 29.0 @@ -94,7 +94,7 @@ offset_right = 83.0 offset_bottom = 72.0 text = "Опасных:" -[node name="btn_auto_threat" parent="." instance=ExtResource("8_r2k1p")] +[node name="btn_auto_threat" parent="." instance=ExtResource("8_cha28")] layout_mode = 0 offset_left = 1034.0 offset_top = 7.0 @@ -104,7 +104,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 text = "Автомат" -[node name="btn_strob" parent="." instance=ExtResource("8_r2k1p")] +[node name="btn_strob" parent="." instance=ExtResource("8_cha28")] layout_mode = 2 offset_left = 1034.0 offset_top = 67.0 @@ -115,7 +115,7 @@ size_flags_vertical = 3 tooltip_text = "Кнопка для выбора сектора при помощи клика мышкой" text = "Строб" -[node name="btn_view" parent="." instance=ExtResource("8_r2k1p")] +[node name="btn_view" parent="." instance=ExtResource("8_cha28")] layout_mode = 2 offset_left = 874.0 offset_top = 1023.0 @@ -125,15 +125,15 @@ size_flags_horizontal = 3 size_flags_vertical = 3 text = "Вид" -[node name="btn_scale" parent="." instance=ExtResource("8_xddop")] +[node name="btn_scale" parent="." instance=ExtResource("9_e8unk")] layout_mode = 0 offset_left = 952.0 offset_top = 1038.0 offset_right = 1104.0 offset_bottom = 1056.0 -[node name="tilemap" parent="." instance=ExtResource("10_wpi4s")] -material = SubResource("ShaderMaterial_whr8j") +[node name="tilemap" parent="." instance=ExtResource("10_rp4rk")] +material = SubResource("ShaderMaterial_xpefk") [connection signal="drag_begin" from="." to="." method="_on_drag_begin"] [connection signal="drag_continue" from="." to="." method="_on_drag_continue"] diff --git a/scripts/signaller.gd b/scripts/signaller.gd index 03383b80..f60f3a48 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -5,7 +5,7 @@ class_name Signaller extends Node ## два и более узла, из разных файлов. -## Вызывается, когда оператор выбирает цель. +## Вызывается, когда оператор выбирает цель в таблице. ## [param threats] - Словарь. Ключ - идентификатор (номер) цели. Значение - цель [br] ## [param th] - Выбранная цель [br] signal threat_selected(threats: Dictionary, th) @@ -20,3 +20,8 @@ signal threat_unselected(threats: Dictionary, th) ## Вызывается, когда пользователь переключает режим окна программы полный экран - оконный ## [param id] - Идентификатор окна. Присваевается вручную signal full_screen(id: int) + + +## Вызывается, когда пользователь выбирает цель +## [param bip] - Отметка цели на экране +signal rto_threat_sel (bip: Control) diff --git a/scripts/threats.gd b/scripts/threats.gd index ed2c9afe..34111018 100644 --- a/scripts/threats.gd +++ b/scripts/threats.gd @@ -26,6 +26,7 @@ class Threat: var tick_rx: int ## Тик время обновления цели, мс. var tmod: String ## Тип модуляции. var width: float ## Ширина занимаемого диапазона частот, МГц. + var selected: bool ## Флаг, что цель выбрана func _init(): clear_fflags() func _to_string() -> String: return ': номер:%d пеленг:%0.1f частота:%0.1f МГц' % [id, aoa, freq] @@ -52,6 +53,8 @@ func _ready() -> void: unit.connect('data_received', Callable(self, 'on_data_capsrpb_received').bind(threats)) timer_check_lost.connect('timeout', Callable(self, 'on_timer_check_lost').bind(repsettings.ThreatParams.time_lost, threats)) timer_check_lost.start(repsettings.ThreatParams.time_lost / 1000.0) + signaller.connect('rto_threat_sel', Callable(self, 'on_rto_threat_sel').bind(threats)) + signaller.connect('threat_selected', Callable(self, 'on_threat_selected').bind(threats)) @@ -67,6 +70,20 @@ func on_timer_check_lost(time_lost: int, threats: Dictionary): call_deferred('emit_signal', 'threats_resized', threats) +## Выбирает цель, если нажать по отметке цели. +func on_rto_threat_sel(bip, threats): + for threat in threats.values(): + threat.selected = false + threats[bip.name.to_int()].selected = true + + +## Выбирает цель, если выбрать в таблице +func on_threat_selected(th, threats): + for threat in threats.values(): + threat.selected = false + th.selected = true + + ## Производит приём целей func on_data_capsrpb_received(unit: capsrpb.CapsRpb, threats: Dictionary): if not unit.json_dic.has('ts'): return diff --git a/shaders/select_tr.gdshader b/shaders/select_tr.gdshader index 8bf2e88f..ea13dfd9 100644 --- a/shaders/select_tr.gdshader +++ b/shaders/select_tr.gdshader @@ -2,8 +2,8 @@ shader_type canvas_item; uniform vec4 color: source_color = vec4(1, 1, 1, 1); uniform vec4 color_up: source_color = vec4(1, 1, 1, 1); /* Цвет вспышки при обновлении */ -const float ds = 0.00725; /* Относительное расстояние на котором выполняется сглаживание краёв */ -const float dsr = 6.125; +const float ds = 0.01425; /* Относительное расстояние на котором выполняется сглаживание краёв */ +const float dsr = 12.125; const vec2 center = vec2(0.5, 0.5); /* Центр должен быть в (0.5, 0.5), но это не так */ const float radius = 0.075 - ds * 2.0; /* Радиус должен быть 0.5, но это не так */ diff --git a/shaders/tracked.gdshader b/shaders/tracked.gdshader index 211e0652..db8e7c8a 100644 --- a/shaders/tracked.gdshader +++ b/shaders/tracked.gdshader @@ -10,7 +10,7 @@ uniform vec2 point_7; uniform vec2 point_8; uniform float len: hint_range(0.0, 1.0) = 0.5; const vec2 center = vec2(0.125, 0.125); -const float DSS = 0.001225; +const float DSS = 0.002525; const float radius = 0.125; uniform float speed: hint_range(0.0, 1024.0) = 0.0;