From a08b8192a210b6b709fdbe459959b0847d12757c Mon Sep 17 00:00:00 2001 From: sasha80 Date: Wed, 7 Aug 2024 16:36:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B3=D1=80=D0=B5=D1=81=D1=81?= =?UTF-8?q?=D0=B8=D1=8F.=20=D0=9D=D0=B5=D0=B2=D0=B5=D1=80=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=20=D0=BE=D1=82?= =?UTF-8?q?=D1=81=D1=82=D1=83=D0=BF=D0=B0,=20=D0=B4=D0=BE=D0=BB=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B1=D1=8B=D1=82=D1=8C=20"=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B1=D0=B5=D0=BB".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/godot-logger/plugin.gd | 44 +++---- scenes/bip/bip.gd | 18 +-- scenes/cell/cell-front.gd | 4 +- scenes/frame-ecm-list/scroll-ecm-list.gd | 1 - scenes/frame-ecm-params/scroll-ecm-params.gd | 114 +++++++++---------- scenes/frame-params/scroll-params.gd | 60 +++++----- scenes/tilemap/tilemap.gd | 1 - scenes/tilemap/tilemap.tscn | 27 +---- scripts/mercator.gd | 5 +- 9 files changed, 123 insertions(+), 151 deletions(-) diff --git a/addons/godot-logger/plugin.gd b/addons/godot-logger/plugin.gd index 116e5127..a6ff3f7f 100644 --- a/addons/godot-logger/plugin.gd +++ b/addons/godot-logger/plugin.gd @@ -14,36 +14,36 @@ const LOGGER_OUTPUT_ICON = "res://addons/godot-logger/icons/logger.svg" func _def_settings(pname: String, default: Variant) -> void: - if not ProjectSettings.has_setting(pname): - ProjectSettings.set_setting(pname, default) + if not ProjectSettings.has_setting(pname): + ProjectSettings.set_setting(pname, default) - ProjectSettings.set_initial_value(pname, default) + ProjectSettings.set_initial_value(pname, default) func _enter_tree() -> void: - _def_settings("plugins/logger/log_enabled", true) - _def_settings("plugins/logger/default_output", false) + _def_settings("plugins/logger/log_enabled", true) + _def_settings("plugins/logger/default_output", false) - _def_settings("plugins/logger/level", 31) # The magic number is - INFO | DEBUG | WARNING | ERROR | FATAL - ProjectSettings.add_property_info( - { - "name": "plugins/logger/level", - "type": TYPE_INT, - "hint": PROPERTY_HINT_FLAGS, - "hint_string": "Info,Debug,Warning,Error,Fatal", - } - ) + _def_settings("plugins/logger/level", 31) # The magic number is - INFO | DEBUG | WARNING | ERROR | FATAL + ProjectSettings.add_property_info( + { + "name": "plugins/logger/level", + "type": TYPE_INT, + "hint": PROPERTY_HINT_FLAGS, + "hint_string": "Info,Debug,Warning,Error,Fatal", + } + ) - _def_settings("plugins/logger/file/file_path", "user://uarep-ctl.log") - _def_settings("plugins/logger/file/log_file_write", true) + _def_settings("plugins/logger/file/file_path", "user://uarep-ctl.log") + _def_settings("plugins/logger/file/log_file_write", true) - _def_settings("plugins/logger/default_output_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}") - _def_settings("plugins/logger/file_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}") + _def_settings("plugins/logger/default_output_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}") + _def_settings("plugins/logger/file_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}") - add_autoload_singleton(AUTOLOAD_NAME, AUTOLOAD_PATH) - add_custom_type(LOGGER_OUTPUT, "RichTextLabel", load(LOGGER_OUTPUT_SCRIPT), load(LOGGER_OUTPUT_ICON)) + add_autoload_singleton(AUTOLOAD_NAME, AUTOLOAD_PATH) + add_custom_type(LOGGER_OUTPUT, "RichTextLabel", load(LOGGER_OUTPUT_SCRIPT), load(LOGGER_OUTPUT_ICON)) func _exit_tree() -> void: - remove_custom_type(LOGGER_OUTPUT) - remove_autoload_singleton(AUTOLOAD_NAME) + remove_custom_type(LOGGER_OUTPUT) + remove_autoload_singleton(AUTOLOAD_NAME) diff --git a/scenes/bip/bip.gd b/scenes/bip/bip.gd index f3c5a29b..da6b8e16 100644 --- a/scenes/bip/bip.gd +++ b/scenes/bip/bip.gd @@ -4,8 +4,8 @@ var selected: bool ## Функция присваивает заданое значение видимости селектору. func set_sel_visible(value: bool): - selected = value - $selector.visible = value + selected = value + $selector.visible = value ## Функция присваивает заданое значение видимости селектору. @@ -15,11 +15,11 @@ func set_ecm_visible(value: bool): $ecm_done.visible = value func _on_bip_gui_input(event): - if event is InputEventMouseButton and event.pressed: - match event.button_index: - MOUSE_BUTTON_LEFT: - signaller.emit_signal('bip_pressed', name.to_int()) - MOUSE_BUTTON_RIGHT: - if selected: - signaller.emit_signal('rto_threat_unsel', name.to_int()) + if event is InputEventMouseButton and event.pressed: + match event.button_index: + MOUSE_BUTTON_LEFT: + signaller.emit_signal('bip_pressed', name.to_int()) + MOUSE_BUTTON_RIGHT: + if selected: + signaller.emit_signal('rto_threat_unsel', name.to_int()) diff --git a/scenes/cell/cell-front.gd b/scenes/cell/cell-front.gd index f0382a2a..0623b7a9 100644 --- a/scenes/cell/cell-front.gd +++ b/scenes/cell/cell-front.gd @@ -1,5 +1,5 @@ extends Control @export var text: String = '': - set(val): $label.set_text(val) - get: return $label.get_text() + set(val): $label.set_text(val) + get: return $label.get_text() diff --git a/scenes/frame-ecm-list/scroll-ecm-list.gd b/scenes/frame-ecm-list/scroll-ecm-list.gd index 00bca853..59de10e8 100644 --- a/scenes/frame-ecm-list/scroll-ecm-list.gd +++ b/scenes/frame-ecm-list/scroll-ecm-list.gd @@ -84,7 +84,6 @@ 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(): diff --git a/scenes/frame-ecm-params/scroll-ecm-params.gd b/scenes/frame-ecm-params/scroll-ecm-params.gd index 2b8294a6..5e90d516 100644 --- a/scenes/frame-ecm-params/scroll-ecm-params.gd +++ b/scenes/frame-ecm-params/scroll-ecm-params.gd @@ -11,82 +11,82 @@ const TABLE_HEADERS_TEXT = ['Параметр', 'Значение' ] ## const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины колонок. const TABLE_PARAMS = { - 'kni': [0, 'Курсовой угол, гр.', false, 0.0, 360.0], - 'powp': [1, 'Мощность, %', true, 0.0, 100.0], - 'freq': [2, 'Частота, МГц', true, 400.0, 6000.0], - 'width': [3, 'Занимая полоса частот, МГц', true, 0.0, 120.0], - 'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0], - 'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] } + 'kni': [0, 'Курсовой угол, гр.', false, 0.0, 360.0], + 'powp': [1, 'Мощность, %', true, 0.0, 100.0], + 'freq': [2, 'Частота, МГц', true, 400.0, 6000.0], + 'width': [3, 'Занимая полоса частот, МГц', true, 0.0, 120.0], + 'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0], + 'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] } func init_table(): - for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW) - for key in TABLE_PARAMS.keys(): - var p = TABLE_PARAMS[key] - $table.set_node_text(0, p[0], p[1]) - $table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT) - $table.set_node_editable(0, p[0], false) - $table.set_node_editable(1, p[0], false) - $table.set_node_user_data(1, p[0], key) - $table.connect_columns(self, 'text_submitted', 'on_edit_entry', [1], []) - $table.set_columns_min_size(TABLE_COLUMN_SIZE) - $table.set_meta('id', 0) + for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW) + for key in TABLE_PARAMS.keys(): + var p = TABLE_PARAMS[key] + $table.set_node_text(0, p[0], p[1]) + $table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT) + $table.set_node_editable(0, p[0], false) + $table.set_node_editable(1, p[0], false) + $table.set_node_user_data(1, p[0], key) + $table.connect_columns(self, 'text_submitted', 'on_edit_entry', [1], []) + $table.set_columns_min_size(TABLE_COLUMN_SIZE) + $table.set_meta('id', 0) ## Called when the node enters the scene tree for the first time. func _ready(): - signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected')) - signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel')) - call_deferred('init_table') + signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected')) + signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel')) + call_deferred('init_table') func on_edit_entry(text : String, entry): - var ecm = $table.get_meta('ecm') - if $table.has_meta('ecm') == false: return - var indexis = $table.get_key_indexes(entry[0].name) - var row_i = indexis[1] - var param = $table.get_node_user_data(1, row_i) - var p = TABLE_PARAMS[param] - var old_val = ecm.get_value(param) - var val = check_value(text, p[3], p[4], old_val) - ecm.set_value(val, param) - signaller.emit_signal('interfer_new', ecm) + var ecm = $table.get_meta('ecm') + if $table.has_meta('ecm') == false: return + var indexis = $table.get_key_indexes(entry[0].name) + var row_i = indexis[1] + var param = $table.get_node_user_data(1, row_i) + var p = TABLE_PARAMS[param] + var old_val = ecm.get_value(param) + var val = check_value(text, p[3], p[4], old_val) + ecm.set_value(val, param) + signaller.emit_signal('interfer_new', ecm) func check_value(val, min_val, max_val, old_val): - if val.is_valid_float(): - if float(val) < min_val: return min_val - if float(val) > max_val: return max_val - return float(val) - else: return old_val + if val.is_valid_float(): + if float(val) < min_val: return min_val + if float(val) > max_val: return max_val + return float(val) + else: return old_val func on_interfer_selected(ecm): - if ecm != null: - $table.set_meta('ecm', ecm) - else: - $table.set_meta('ecm', null) - on_ecm_update() + if ecm != null: + $table.set_meta('ecm', ecm) + else: + $table.set_meta('ecm', null) + on_ecm_update() func on_ecm_update(): - for item in len(TABLE_PARAMS): - $table.set_node_text(1, item, '') - $table.set_node_editable(1, item, false) - if $table.has_meta('ecm') == false: return - var ecm: interfer.Interfer = $table.get_meta('ecm') - var mnms = tools.get_members_names(ecm) - for item in ecm['params'].keys(): - mnms.append(item) - for member_name in mnms: - if not TABLE_PARAMS.has(member_name): continue - var p = TABLE_PARAMS[member_name] - var val = ecm.get_value(member_name) - $table.set_node_text(1, p[0], '%s' % val) - $table.set_node_editable(1, p[0], p[2]) + for item in len(TABLE_PARAMS): + $table.set_node_text(1, item, '') + $table.set_node_editable(1, item, false) + if $table.has_meta('ecm') == false: return + var ecm: interfer.Interfer = $table.get_meta('ecm') + var mnms = tools.get_members_names(ecm) + for item in ecm['params'].keys(): + mnms.append(item) + for member_name in mnms: + if not TABLE_PARAMS.has(member_name): continue + var p = TABLE_PARAMS[member_name] + var val = ecm.get_value(member_name) + $table.set_node_text(1, p[0], '%s' % val) + $table.set_node_editable(1, p[0], p[2]) func on_rto_threat_unsel(_th_id): - for item in range(len(TABLE_PARAMS)): - $table.set_node_text(1, item, '') - $table.set_node_editable(1, item, false) + for item in range(len(TABLE_PARAMS)): + $table.set_node_text(1, item, '') + $table.set_node_editable(1, item, false) diff --git a/scenes/frame-params/scroll-params.gd b/scenes/frame-params/scroll-params.gd index 5a7c689a..db0deac3 100644 --- a/scenes/frame-params/scroll-params.gd +++ b/scenes/frame-params/scroll-params.gd @@ -15,51 +15,51 @@ const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины к ## Параметры цели для отображения в таблице.[br] ## [b]val[0][/b] - Индекс строки.[br][b]val[1][/b] - Содержание. const TABLE_PARAMS = { - 'baud': [0, 'Модуляционная скорость, бод'], - 'freqm': [1, 'Режим смены частоты.'], - 'power': [2, 'Уровень сигнала, дБм.'], - 'tmod': [3, 'Тип модуляции'], - 'width': [4, 'Занимая полоса частот, МГц.'], - 'rkrp': [5, 'Рекомендуемая помеха'] } + 'baud': [0, 'Модуляционная скорость, бод'], + 'freqm': [1, 'Режим смены частоты.'], + 'power': [2, 'Уровень сигнала, дБм.'], + 'tmod': [3, 'Тип модуляции'], + 'width': [4, 'Занимая полоса частот, МГц.'], + 'rkrp': [5, 'Рекомендуемая помеха'] } ## Обрабатывает сигнал [signal threats.threat_selected]. func on_threat_selected(th): - $table.set_meta('id', th.id) - on_threat_update(th) + $table.set_meta('id', th.id) + on_threat_update(th) func init_table(): - for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW) - for p in TABLE_PARAMS.values(): - $table.set_node_text(0, p[0], p[1]) - $table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT) - $table.set_node_editable(0, p[0], false) - $table.set_node_editable(1, p[0], false) - $table.set_columns_min_size(TABLE_COLUMN_SIZE) - $table.set_meta('id', 0) + for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW) + for p in TABLE_PARAMS.values(): + $table.set_node_text(0, p[0], p[1]) + $table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT) + $table.set_node_editable(0, p[0], false) + $table.set_node_editable(1, p[0], false) + $table.set_columns_min_size(TABLE_COLUMN_SIZE) + $table.set_meta('id', 0) func _ready() -> void: - signaller.connect('threat_selected', Callable(self, 'on_threat_selected')) - signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel')) - threats.connect('threat_update', Callable(self, 'on_threat_update')) - call_deferred('init_table') + signaller.connect('threat_selected', Callable(self, 'on_threat_selected')) + signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel')) + threats.connect('threat_update', Callable(self, 'on_threat_update')) + call_deferred('init_table') ## Обрабатывает сигнал [signal threats.threat_update]. ## Обновляет отображение только для выбранной цели. func on_threat_update(th): - if th.selected == false: return - if th.id != $table.get_meta('id'): return - var mnms = tools.get_members_names(th) - for member_name in mnms: - if not TABLE_PARAMS.has(member_name): continue - var p = TABLE_PARAMS[member_name] - var val = th.get(member_name) - $table.set_node_text(1, p[0], '%s' % val) + if th.selected == false: return + if th.id != $table.get_meta('id'): return + var mnms = tools.get_members_names(th) + for member_name in mnms: + if not TABLE_PARAMS.has(member_name): continue + var p = TABLE_PARAMS[member_name] + var val = th.get(member_name) + $table.set_node_text(1, p[0], '%s' % val) func on_rto_threat_unsel(_th_id): - for item in range(len(TABLE_PARAMS)): - $table.set_node_text(1, item, '') + for item in range(len(TABLE_PARAMS)): + $table.set_node_text(1, item, '') diff --git a/scenes/tilemap/tilemap.gd b/scenes/tilemap/tilemap.gd index feef13e3..2445c07e 100644 --- a/scenes/tilemap/tilemap.gd +++ b/scenes/tilemap/tilemap.gd @@ -73,7 +73,6 @@ func _ready(): log.info('Модуль географической карты готов') - func _on_map_mode_changed(mode: int) -> void: var map_image_size = ProjectSettings.get_setting(MAP_MODES[mode]) material.set('shader_parameter/radius', MAP_RELATIVE_RADIUSES[mode]) diff --git a/scenes/tilemap/tilemap.tscn b/scenes/tilemap/tilemap.tscn index 9920581a..406784f3 100644 --- a/scenes/tilemap/tilemap.tscn +++ b/scenes/tilemap/tilemap.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://bbq6nklh36yij"] +[gd_scene load_steps=4 format=3 uid="uid://bbq6nklh36yij"] [ext_resource type="Script" path="res://scenes/tilemap/tilemap.gd" id="1_mkfgj"] [ext_resource type="Shader" path="res://shaders/tilemap.gdshader" id="1_tsdui"] @@ -8,32 +8,7 @@ resource_local_to_scene = true shader = ExtResource("1_tsdui") shader_parameter/radius = 0.39 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ys5v4"] - [node name="tilemap" type="Sprite2D"] material = SubResource("ShaderMaterial_pmqvj") position = Vector2(560, 560) script = ExtResource("1_mkfgj") - -[node name="Panel" type="Panel" parent="."] -offset_left = -563.0 -offset_top = -557.0 -offset_right = 1022.0 -offset_bottom = 641.0 -theme_override_styles/panel = SubResource("StyleBoxEmpty_ys5v4") - -[node name="Node2D" type="Node2D" parent="."] - -[node name="LineEdit" type="LineEdit" parent="Node2D"] -offset_left = -490.0 -offset_top = 518.0 -offset_right = -244.0 -offset_bottom = 565.0 - -[node name="VBoxContainer" type="VBoxContainer" parent="Node2D"] -offset_left = -499.0 -offset_top = 200.0 -offset_right = -239.0 -offset_bottom = 430.0 - -[connection signal="gui_input" from="Panel" to="." method="_on_panel_gui_input"] diff --git a/scripts/mercator.gd b/scripts/mercator.gd index 55114866..47fca032 100644 --- a/scripts/mercator.gd +++ b/scripts/mercator.gd @@ -45,9 +45,8 @@ class Tile: func _bound_index(index: int) -> int: var mi: int = 2 ** z if index < 0: - index *= -1 - index %= mi - index = mi - index + index = -index - 1; + index = int(mi - 1) - (index % int(mi)) else: index %= mi return index