From 5740964d098061c1603ca85270b03961f588ed7c Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Mon, 4 Dec 2023 16:20:32 +0300 Subject: [PATCH 1/3] =?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=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87=D0=B8?= =?UTF-8?q?=D0=BA=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=D0=B8=D1=82=D1=8C=20=D0=B2=D1=81=D1=91?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/frm_ecm_list.gd | 17 +++++++++++++++++ scenes/frm_ecm_list.tscn | 5 +++-- scenes/scroll-ecm-list.gd | 3 ++- scenes/работа.gd | 9 +++++++++ scripts/interfer.gd | 10 ++++++++++ scripts/signaller.gd | 4 ++++ 6 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 scenes/frm_ecm_list.gd diff --git a/scenes/frm_ecm_list.gd b/scenes/frm_ecm_list.gd new file mode 100644 index 0000000..cf95ef2 --- /dev/null +++ b/scenes/frm_ecm_list.gd @@ -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 diff --git a/scenes/frm_ecm_list.tscn b/scenes/frm_ecm_list.tscn index e19e309..74cc690 100644 --- a/scenes/frm_ecm_list.tscn +++ b/scenes/frm_ecm_list.tscn @@ -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 = "" diff --git a/scenes/scroll-ecm-list.gd b/scenes/scroll-ecm-list.gd index 4bacd50..683204f 100644 --- a/scenes/scroll-ecm-list.gd +++ b/scenes/scroll-ecm-list.gd @@ -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) diff --git a/scenes/работа.gd b/scenes/работа.gd index e61c58c..6e95c7c 100644 --- a/scenes/работа.gd +++ b/scenes/работа.gd @@ -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() diff --git a/scripts/interfer.gd b/scripts/interfer.gd index a0bdd0f..a3ede81 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -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): diff --git a/scripts/signaller.gd b/scripts/signaller.gd index 1f81116..dcb47a0 100644 --- a/scripts/signaller.gd +++ b/scripts/signaller.gd @@ -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) From 3a3b8115e73b23996e1fad89fd6e427afdba9acd Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Wed, 6 Dec 2023 16:25:17 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F.=20=D0=92=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D0=B5=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BE=D1=82=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=20=D0=BE=D1=82=D1=80?= =?UTF-8?q?=D0=B8=D1=81=D0=BE=D0=B2=D0=BA=D0=B8=20=D1=81=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=BE=D1=80=D0=B0=20=D1=80=D1=8F=D0=B4=D0=B0.=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=83=D1=8E=20=D1=88=D0=B8=D1=80=D0=B8=D0=BD=D1=83=20=D1=81?= =?UTF-8?q?=D0=B5=D0=BB=D0=B5=D0=BA=D1=82=D0=BE=D1=80=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/main-font.tres | 15 +++++++++------ data/secondary-font.tres | 23 ++++++++++++++++++++--- project.godot | 4 ++-- scenes/scroll-ecm-list.gd | 3 +++ scenes/scroll-threats.gd | 1 + scenes/tilemap.gd | 1 - table/table.gd | 4 ++++ 7 files changed, 39 insertions(+), 12 deletions(-) diff --git a/data/main-font.tres b/data/main-font.tres index f75961c..24d67ef 100644 --- a/data/main-font.tres +++ b/data/main-font.tres @@ -1,9 +1,12 @@ -[gd_resource type="FontFile" load_steps=2 format=2] +[gd_resource type="FontFile" load_steps=2 format=3 uid="uid://clrxfflc1wrhj"] -[ext_resource path="res://data/DejaVuSansCondensed.ttf" type="FontFile" id=1] +[ext_resource type="FontFile" uid="uid://c7hvei2ks7jp6" path="res://data/DejaVuSansCondensed.ttf" id="1"] [resource] -size = 20 -use_mipmaps = true -use_filter = true -font_data = ExtResource( 1 ) +fallbacks = Array[Font]([ExtResource("1")]) +cache/0/16/0/ascent = 0.0 +cache/0/16/0/descent = 0.0 +cache/0/16/0/underline_position = 0.0 +cache/0/16/0/underline_thickness = 0.0 +cache/0/16/0/scale = 1.0 +cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) diff --git a/data/secondary-font.tres b/data/secondary-font.tres index 5f7ba84..bb0ebdd 100644 --- a/data/secondary-font.tres +++ b/data/secondary-font.tres @@ -4,9 +4,6 @@ [resource] fallbacks = Array[Font]([ExtResource("1_cxid7")]) -face_index = null -embolden = null -transform = null cache/0/17/0/ascent = 0.0 cache/0/17/0/descent = 0.0 cache/0/17/0/underline_position = 0.0 @@ -19,6 +16,7 @@ cache/0/17/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/17/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/17/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/17/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/17/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/16/0/ascent = 0.0 cache/0/16/0/descent = 0.0 cache/0/16/0/underline_position = 0.0 @@ -31,6 +29,7 @@ cache/0/16/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/16/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/16/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/16/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/16/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/18/0/ascent = 0.0 cache/0/18/0/descent = 0.0 cache/0/18/0/underline_position = 0.0 @@ -43,6 +42,7 @@ cache/0/18/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/18/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/18/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/18/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/18/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/14/0/ascent = 0.0 cache/0/14/0/descent = 0.0 cache/0/14/0/underline_position = 0.0 @@ -55,6 +55,7 @@ cache/0/14/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/14/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/14/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/14/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/14/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/8/0/ascent = 0.0 cache/0/8/0/descent = 0.0 cache/0/8/0/underline_position = 0.0 @@ -67,6 +68,7 @@ cache/0/8/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/8/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/8/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/8/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/8/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/15/0/ascent = 0.0 cache/0/15/0/descent = 0.0 cache/0/15/0/underline_position = 0.0 @@ -79,6 +81,7 @@ cache/0/15/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/15/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/15/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/15/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/15/0/kerning_overrides/20/0 = Vector2(0, 0) cache/0/13/0/ascent = 0.0 cache/0/13/0/descent = 0.0 cache/0/13/0/underline_position = 0.0 @@ -91,3 +94,17 @@ cache/0/13/0/kerning_overrides/14/0 = Vector2(0, 0) cache/0/13/0/kerning_overrides/8/0 = Vector2(0, 0) cache/0/13/0/kerning_overrides/15/0 = Vector2(0, 0) cache/0/13/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/13/0/kerning_overrides/20/0 = Vector2(0, 0) +cache/0/20/0/ascent = 0.0 +cache/0/20/0/descent = 0.0 +cache/0/20/0/underline_position = 0.0 +cache/0/20/0/underline_thickness = 0.0 +cache/0/20/0/scale = 1.0 +cache/0/20/0/kerning_overrides/17/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/16/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/18/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/14/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/8/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/15/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/13/0 = Vector2(0, 0) +cache/0/20/0/kerning_overrides/20/0 = Vector2(0, 0) diff --git a/project.godot b/project.godot index a605683..a991edb 100644 --- a/project.godot +++ b/project.godot @@ -83,11 +83,11 @@ map_server_addr=false [gui] -common/text_edit_undo_stack_max_size=10 +common/text_edit_undo_stack_max_size=100 theme/custom_font="res://data/secondary-font.tres" theme/default_font_antialiasing=0 theme/default_font_hinting=2 -theme/default_font_subpixel_positioning=0 +theme/default_font_subpixel_positioning=3 theme/lcd_subpixel_layout=0 common/drop_mouse_on_gui_input_disabled=true diff --git a/scenes/scroll-ecm-list.gd b/scenes/scroll-ecm-list.gd index 683204f..b97b3c3 100644 --- a/scenes/scroll-ecm-list.gd +++ b/scenes/scroll-ecm-list.gd @@ -49,6 +49,7 @@ const COLUMN_STATE = 4 func on_row_pressed(i_row: int): $table.clear_rows_selected() $table.set_row_selected(i_row, true) + $table.ensure_row_visible(i_row) var ecm = $table.get_node_user_data(0, i_row) if interfer.thrs.has(ecm.ispp): signaller.emit_signal('rto_threat_sel', interfer.thrs[ecm.ispp]) @@ -65,6 +66,7 @@ func on_rto_threat_sel(th_id: int, table_index): ecm = $table.get_node_user_data(0, i_row) $table.clear_rows_selected() $table.set_row_selected(i_row, true) + $table.ensure_row_visible(i_row) else: $table.clear_rows_selected() signaller.emit_signal('interfer_selected', ecm) @@ -111,6 +113,7 @@ func on_interfer_new(ecm, table_index): table_index[ecm.ispp] = i_row $table.clear_rows_selected() $table.set_row_selected(i_row, true) + $table.ensure_row_visible(i_row) signaller.emit_signal('interfer_selected', ecm) diff --git a/scenes/scroll-threats.gd b/scenes/scroll-threats.gd index dad4955..5d04b42 100644 --- a/scenes/scroll-threats.gd +++ b/scenes/scroll-threats.gd @@ -23,6 +23,7 @@ func on_row_pressed(i_row: int): func row_pressed(i_row: int): $table.clear_rows_selected() $table.set_row_selected(i_row, true) + $table.ensure_row_visible(i_row) var threat = $table.get_node_user_data(0, i_row) signaller.emit_signal('threat_selected', threat) diff --git a/scenes/tilemap.gd b/scenes/tilemap.gd index 839e3b6..f33ea97 100644 --- a/scenes/tilemap.gd +++ b/scenes/tilemap.gd @@ -110,7 +110,6 @@ func _process(_delta: float): else: if map_tile_stack.size() == 0: signaller.emit_signal('zoom_complete', map_zoom) - print_debug('zoom_complete: %s' % [map_rects]) map_tile_state = TASK_STATE.DONE diff --git a/table/table.gd b/table/table.gd index 2595a15..154ee76 100644 --- a/table/table.gd +++ b/table/table.gd @@ -288,6 +288,10 @@ func clear_rows_selected(): ## [param i_row] - Индекс ряда. func set_row_selected(i_row: int, selected: bool = true) -> void: + call_deferred('_set_row_selected', i_row, selected) + + +func _set_row_selected(i_row: int, selected: bool = true): var key: = SELECTOR_KEY_FORMAT % [i_row, 0] var node = nodes[NODE_KEY_FORMAT % [i_row, 0]] if nodes.has(key) and (not selected): From d1d2fb111e7eb3d18c8c8f14acffb05b444daf71 Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Thu, 14 Dec 2023 14:20:59 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F.The=20function=20"stringify()"=20is=20?= =?UTF-8?q?a=20static=20function=20but=20was=20called=20from=20an=20instan?= =?UTF-8?q?ce.=20Instead,=20it=20should=20be=20directly=20called=20from=20?= =?UTF-8?q?the=20type:=20"JSON.stringify()".=20=20=20<=D0=9E=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=B0=20GDScript>STATIC=5FCALLED=5FON=5FINSTANCE?= =?UTF-8?q?=20=20=20<=D0=98=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=20GDScript>interfer.gd:58?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/interfer.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/interfer.gd b/scripts/interfer.gd index a3ede81..f648894 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -55,7 +55,7 @@ class Interfer: data_to_json['powp'] = powp # Необходимо добавить управление мощностью data_to_json['get'] = [] data_to_json['params'] = params - var json = JSON.new().stringify(data_to_json) + var json = JSON.stringify(data_to_json) var pac = json.to_utf8_buffer() return pac