Доработка, обработка нажатий на цели и выбор цели в таблице.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 '<Threat>: номер:%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
|
||||
|
||||
@@ -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, но это не так */
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user