Исправление. Добавление курса к выбору секторов. Исправление случайного включения двух помех при выборе СРН. Автовыбор помехи для цели только в автоматическом режиме.
This commit is contained in:
@@ -46,6 +46,7 @@ const COLUMN_NAME = 1
|
||||
const COLUMN_AOA = 2
|
||||
const COLUMN_STATE = 3
|
||||
|
||||
var course = 0.0 ## Курс корабля
|
||||
|
||||
func on_rto_threat_unsel(_th_id): $table.clear_rows_selected()
|
||||
|
||||
@@ -88,6 +89,8 @@ func _ready():
|
||||
interfer.connect('interfer_recommendate', Callable(self, 'on_interfer_recommendate'))
|
||||
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||
call_deferred('init_table')
|
||||
var unit_nav = network.get_unit_instance('навигация')
|
||||
unit_nav.connect('data_received', on_navi_data_received)
|
||||
|
||||
|
||||
func init_table():
|
||||
@@ -148,7 +151,7 @@ func map_th_to_row(ecm) -> Array:
|
||||
row[COLUMN_NAME] = ''
|
||||
if INTERFER_NAMES.has(ecm.krp):
|
||||
row[COLUMN_NAME] = '%s' % INTERFER_NAMES[ecm.krp]
|
||||
row[COLUMN_AOA] = '%s' % ecm.kni
|
||||
row[COLUMN_AOA] = '%s' % (ecm.kni + course)
|
||||
row[COLUMN_STATE] = ''
|
||||
if INTERFER_STATE.has(ecm.svk):
|
||||
row[COLUMN_STATE] = '%s' % INTERFER_STATE[ecm.svk]
|
||||
@@ -162,3 +165,7 @@ func on_interfer_recommendate(ecm):
|
||||
var sel_ecm = $table.get_node_user_data(0, sel_rows[0])
|
||||
if ecm == sel_ecm:
|
||||
signaller.emit_signal('interfer_selected', ecm)
|
||||
|
||||
|
||||
func on_navi_data_received(data: Dictionary):
|
||||
course = data.get('k', 0.0)
|
||||
|
||||
@@ -33,6 +33,8 @@ var view_mode: MapViewMode ## Режим отображения к
|
||||
var color_ecm: Color
|
||||
var color_select: Color
|
||||
|
||||
var course = 0.0 ## Курс корабля
|
||||
|
||||
signal drag_begin ## Вызывается в момент начала перетаскивания.
|
||||
signal drag_continue ## Вызывается во время продолжения перетаскивания.
|
||||
signal drag_end ## Вызывается в момент завершения перетаскивания.
|
||||
@@ -165,7 +167,8 @@ func _ready():
|
||||
|
||||
|
||||
func on_navi_data_received(data: Dictionary):
|
||||
$canvas.set_canvas_rotation(data.get('k', 0.0))
|
||||
$canvas.set_canvas_rotation(data.get('k', 0.0))
|
||||
course = data.get('k', 0.0)
|
||||
|
||||
|
||||
func on_user_panning():
|
||||
@@ -417,7 +420,7 @@ func sel_fs_sector(event):
|
||||
if (event.button_index == MOUSE_BUTTON_LEFT) or (event.button_index == MOUSE_BUTTON_RIGHT):
|
||||
var center: Vector2 = $tilemap.position
|
||||
var center_offset: Vector2 = ProjectSettings.get_setting('application/interfer/center_offset', Vector2i(0, 25))
|
||||
var angle: float = event.position.angle_to_point(center + center_offset) * 180/PI - 45.0
|
||||
var angle: float = event.position.angle_to_point(center + center_offset) * 180/PI - 45.0 - course
|
||||
if angle < 0:
|
||||
angle += 360
|
||||
var distance: float = event.position.distance_to(center + center_offset)
|
||||
|
||||
@@ -53,6 +53,7 @@ colors = PackedColorArray(1, 1, 1, 0.352941, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="SystemFont" id="SystemFont_5ffal"]
|
||||
generate_mipmaps = true
|
||||
subpixel_positioning = 0
|
||||
|
||||
[node name="Работа" type="Panel"]
|
||||
script = ExtResource("1_niok4")
|
||||
@@ -345,7 +346,7 @@ text = "−"
|
||||
[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate_toggled"]
|
||||
[connection signal="toggled" from="btn_center" to="." method="on_btn_center_toggled"]
|
||||
[connection signal="button_down" from="zoom_plus" to="tilemap" method="_on_zoom_plus_button_down"]
|
||||
[connection signal="button_up" from="zoom_plus" to="tilemap" method="_on_zoom_plus_button_up"]
|
||||
[connection signal="button_up" from="zoom_plus" to="tilemap" method="_on_zoom_button_up"]
|
||||
[connection signal="button_up" from="zoom_plus" to="tilemap" method="_on_zoom_plus_button_up"]
|
||||
[connection signal="button_down" from="zoom_minus" to="tilemap" method="_on_zoom_minus_button_down"]
|
||||
[connection signal="button_up" from="zoom_minus" to="tilemap" method="_on_zoom_button_up"]
|
||||
|
||||
@@ -308,7 +308,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> v
|
||||
var id = item.id
|
||||
param['freq'] = item.freq
|
||||
param['width'] = item.width
|
||||
if (item.rkrp != '') and item.fflags.rkrp:
|
||||
if (item.rkrp != '') and item.fflags.rkrp and auto_enabled:
|
||||
var krp = get_krp(item)
|
||||
if krp != '':
|
||||
interfer_name = krp
|
||||
@@ -324,12 +324,15 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, power, u, ecms) -> v
|
||||
var kni: float = item[0]
|
||||
var id = item[3]
|
||||
var th = null
|
||||
if not interfer_name in EXCLUDE_INTERFER:
|
||||
th = find_threat(item[1], kni)
|
||||
th = find_threat(item[1], kni)
|
||||
if th != null:
|
||||
param['freq'] = th.freq
|
||||
param['width'] = th.width
|
||||
if (th.rkrp != '') and th.fflags.rkrp:
|
||||
if not interfer_name in EXCLUDE_INTERFER:
|
||||
param['freq'] = th.freq
|
||||
param['width'] = th.width
|
||||
else:
|
||||
param['freq'] = item[1]
|
||||
param['width'] = item[2]
|
||||
if (th.rkrp != '') and th.fflags.rkrp and auto_enabled:
|
||||
var krp = get_krp(th)
|
||||
if krp != '':
|
||||
interfer_name = krp
|
||||
@@ -518,7 +521,7 @@ func on_threats_update(threat, ecms, unit_caps):
|
||||
ecm = ecms[ecm_i]
|
||||
ecm.params['freq'] = threat.freq
|
||||
ecm.params['width'] = threat.width
|
||||
if (threat.rkrp != '') and threat.fflags.rkrp:
|
||||
if (threat.rkrp != '') and threat.fflags.rkrp and auto_enabled:
|
||||
var krp = get_krp(threat)
|
||||
if krp != '':
|
||||
ecm.krp = krp
|
||||
|
||||
@@ -86,7 +86,7 @@ const FS_PRD: Dictionary = {
|
||||
|
||||
var fs_dict: Dictionary ## Словарь с модулями ФС
|
||||
var prd_dict: Dictionary ## Словарь с приборами ПРД
|
||||
|
||||
var course = 0.0 ## Курс корабля
|
||||
var fs_caps_id: Dictionary ## Словарь соответствия номеров ФС от КАПС РПБ внутрипрограммной нумерации
|
||||
|
||||
|
||||
@@ -185,6 +185,7 @@ class PRD:
|
||||
unit_yau07.connect('command_done', Callable(self, 'on_command_done'))
|
||||
unit_yau07.connect('line_changed', Callable(self, 'on_line_changed'))
|
||||
|
||||
|
||||
func on_command_done(u):
|
||||
if yemsg_board.state_board != yemsg_board.WAIT or yemsg_board.state_cmd != yemsg_board.WAIT:
|
||||
yemsg_board.on_command_done(u)
|
||||
@@ -284,6 +285,8 @@ func _ready() -> void:
|
||||
unit_caps.connect('data_received', Callable(self, 'on_data_capsrpb_received'))
|
||||
signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(PrdState.CONTROL))
|
||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(PrdState.WORK))
|
||||
var unit_nav = network.get_unit_instance('навигация')
|
||||
unit_nav.connect('data_received', on_navi_data_received)
|
||||
|
||||
|
||||
func get_fs_param(index: int) -> Array:
|
||||
@@ -388,3 +391,7 @@ func on_data_capsrpb_received(unit0: capsrpb.CapsRpb):
|
||||
func on_mode_changed(changed_mode: int) -> void:
|
||||
for pdr in prd.prd_dict.values():
|
||||
pdr.state = changed_mode
|
||||
|
||||
|
||||
func on_navi_data_received(data: Dictionary):
|
||||
course = data.get('k', 0.0)
|
||||
|
||||
Reference in New Issue
Block a user