Регрессия. Неверный символ отступа, должен быть "пробел".
This commit is contained in:
@@ -14,36 +14,36 @@ const LOGGER_OUTPUT_ICON = "res://addons/godot-logger/icons/logger.svg"
|
|||||||
|
|
||||||
|
|
||||||
func _def_settings(pname: String, default: Variant) -> void:
|
func _def_settings(pname: String, default: Variant) -> void:
|
||||||
if not ProjectSettings.has_setting(pname):
|
if not ProjectSettings.has_setting(pname):
|
||||||
ProjectSettings.set_setting(pname, default)
|
ProjectSettings.set_setting(pname, default)
|
||||||
|
|
||||||
ProjectSettings.set_initial_value(pname, default)
|
ProjectSettings.set_initial_value(pname, default)
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
_def_settings("plugins/logger/log_enabled", true)
|
_def_settings("plugins/logger/log_enabled", true)
|
||||||
_def_settings("plugins/logger/default_output", false)
|
_def_settings("plugins/logger/default_output", false)
|
||||||
|
|
||||||
_def_settings("plugins/logger/level", 31) # The magic number is - INFO | DEBUG | WARNING | ERROR | FATAL
|
_def_settings("plugins/logger/level", 31) # The magic number is - INFO | DEBUG | WARNING | ERROR | FATAL
|
||||||
ProjectSettings.add_property_info(
|
ProjectSettings.add_property_info(
|
||||||
{
|
{
|
||||||
"name": "plugins/logger/level",
|
"name": "plugins/logger/level",
|
||||||
"type": TYPE_INT,
|
"type": TYPE_INT,
|
||||||
"hint": PROPERTY_HINT_FLAGS,
|
"hint": PROPERTY_HINT_FLAGS,
|
||||||
"hint_string": "Info,Debug,Warning,Error,Fatal",
|
"hint_string": "Info,Debug,Warning,Error,Fatal",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
_def_settings("plugins/logger/file/file_path", "user://uarep-ctl.log")
|
_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/log_file_write", true)
|
||||||
|
|
||||||
_def_settings("plugins/logger/default_output_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}")
|
_def_settings("plugins/logger/file_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}")
|
||||||
|
|
||||||
add_autoload_singleton(AUTOLOAD_NAME, AUTOLOAD_PATH)
|
add_autoload_singleton(AUTOLOAD_NAME, AUTOLOAD_PATH)
|
||||||
add_custom_type(LOGGER_OUTPUT, "RichTextLabel", load(LOGGER_OUTPUT_SCRIPT), load(LOGGER_OUTPUT_ICON))
|
add_custom_type(LOGGER_OUTPUT, "RichTextLabel", load(LOGGER_OUTPUT_SCRIPT), load(LOGGER_OUTPUT_ICON))
|
||||||
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
func _exit_tree() -> void:
|
||||||
remove_custom_type(LOGGER_OUTPUT)
|
remove_custom_type(LOGGER_OUTPUT)
|
||||||
remove_autoload_singleton(AUTOLOAD_NAME)
|
remove_autoload_singleton(AUTOLOAD_NAME)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ var selected: bool
|
|||||||
|
|
||||||
## Функция присваивает заданое значение видимости селектору.
|
## Функция присваивает заданое значение видимости селектору.
|
||||||
func set_sel_visible(value: bool):
|
func set_sel_visible(value: bool):
|
||||||
selected = value
|
selected = value
|
||||||
$selector.visible = value
|
$selector.visible = value
|
||||||
|
|
||||||
|
|
||||||
## Функция присваивает заданое значение видимости селектору.
|
## Функция присваивает заданое значение видимости селектору.
|
||||||
@@ -15,11 +15,11 @@ func set_ecm_visible(value: bool): $ecm_done.visible = value
|
|||||||
|
|
||||||
|
|
||||||
func _on_bip_gui_input(event):
|
func _on_bip_gui_input(event):
|
||||||
if event is InputEventMouseButton and event.pressed:
|
if event is InputEventMouseButton and event.pressed:
|
||||||
match event.button_index:
|
match event.button_index:
|
||||||
MOUSE_BUTTON_LEFT:
|
MOUSE_BUTTON_LEFT:
|
||||||
signaller.emit_signal('bip_pressed', name.to_int())
|
signaller.emit_signal('bip_pressed', name.to_int())
|
||||||
MOUSE_BUTTON_RIGHT:
|
MOUSE_BUTTON_RIGHT:
|
||||||
if selected:
|
if selected:
|
||||||
signaller.emit_signal('rto_threat_unsel', name.to_int())
|
signaller.emit_signal('rto_threat_unsel', name.to_int())
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
@export var text: String = '':
|
@export var text: String = '':
|
||||||
set(val): $label.set_text(val)
|
set(val): $label.set_text(val)
|
||||||
get: return $label.get_text()
|
get: return $label.get_text()
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ func _ready():
|
|||||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
||||||
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||||
call_deferred('init_table')
|
call_deferred('init_table')
|
||||||
#$btn_cancel.button_connect('pressed', Callable(self, 'on_btn_cancel_pressed').bind($btn_cancel))
|
|
||||||
|
|
||||||
|
|
||||||
func init_table():
|
func init_table():
|
||||||
|
|||||||
@@ -11,82 +11,82 @@ const TABLE_HEADERS_TEXT = ['Параметр', 'Значение' ] ##
|
|||||||
const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины колонок.
|
const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины колонок.
|
||||||
|
|
||||||
const TABLE_PARAMS = {
|
const TABLE_PARAMS = {
|
||||||
'kni': [0, 'Курсовой угол, гр.', false, 0.0, 360.0],
|
'kni': [0, 'Курсовой угол, гр.', false, 0.0, 360.0],
|
||||||
'powp': [1, 'Мощность, %', true, 0.0, 100.0],
|
'powp': [1, 'Мощность, %', true, 0.0, 100.0],
|
||||||
'freq': [2, 'Частота, МГц', true, 400.0, 6000.0],
|
'freq': [2, 'Частота, МГц', true, 400.0, 6000.0],
|
||||||
'width': [3, 'Занимая полоса частот, МГц', true, 0.0, 120.0],
|
'width': [3, 'Занимая полоса частот, МГц', true, 0.0, 120.0],
|
||||||
'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0],
|
'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0],
|
||||||
'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] }
|
'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] }
|
||||||
|
|
||||||
|
|
||||||
func init_table():
|
func init_table():
|
||||||
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
||||||
for key in TABLE_PARAMS.keys():
|
for key in TABLE_PARAMS.keys():
|
||||||
var p = TABLE_PARAMS[key]
|
var p = TABLE_PARAMS[key]
|
||||||
$table.set_node_text(0, p[0], p[1])
|
$table.set_node_text(0, p[0], p[1])
|
||||||
$table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT)
|
$table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT)
|
||||||
$table.set_node_editable(0, p[0], false)
|
$table.set_node_editable(0, p[0], false)
|
||||||
$table.set_node_editable(1, p[0], false)
|
$table.set_node_editable(1, p[0], false)
|
||||||
$table.set_node_user_data(1, p[0], key)
|
$table.set_node_user_data(1, p[0], key)
|
||||||
$table.connect_columns(self, 'text_submitted', 'on_edit_entry', [1], [])
|
$table.connect_columns(self, 'text_submitted', 'on_edit_entry', [1], [])
|
||||||
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
||||||
$table.set_meta('id', 0)
|
$table.set_meta('id', 0)
|
||||||
|
|
||||||
|
|
||||||
## Called when the node enters the scene tree for the first time.
|
## Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected'))
|
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected'))
|
||||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||||
call_deferred('init_table')
|
call_deferred('init_table')
|
||||||
|
|
||||||
|
|
||||||
func on_edit_entry(text : String, entry):
|
func on_edit_entry(text : String, entry):
|
||||||
var ecm = $table.get_meta('ecm')
|
var ecm = $table.get_meta('ecm')
|
||||||
if $table.has_meta('ecm') == false: return
|
if $table.has_meta('ecm') == false: return
|
||||||
var indexis = $table.get_key_indexes(entry[0].name)
|
var indexis = $table.get_key_indexes(entry[0].name)
|
||||||
var row_i = indexis[1]
|
var row_i = indexis[1]
|
||||||
var param = $table.get_node_user_data(1, row_i)
|
var param = $table.get_node_user_data(1, row_i)
|
||||||
var p = TABLE_PARAMS[param]
|
var p = TABLE_PARAMS[param]
|
||||||
var old_val = ecm.get_value(param)
|
var old_val = ecm.get_value(param)
|
||||||
var val = check_value(text, p[3], p[4], old_val)
|
var val = check_value(text, p[3], p[4], old_val)
|
||||||
ecm.set_value(val, param)
|
ecm.set_value(val, param)
|
||||||
signaller.emit_signal('interfer_new', ecm)
|
signaller.emit_signal('interfer_new', ecm)
|
||||||
|
|
||||||
|
|
||||||
func check_value(val, min_val, max_val, old_val):
|
func check_value(val, min_val, max_val, old_val):
|
||||||
if val.is_valid_float():
|
if val.is_valid_float():
|
||||||
if float(val) < min_val: return min_val
|
if float(val) < min_val: return min_val
|
||||||
if float(val) > max_val: return max_val
|
if float(val) > max_val: return max_val
|
||||||
return float(val)
|
return float(val)
|
||||||
else: return old_val
|
else: return old_val
|
||||||
|
|
||||||
|
|
||||||
func on_interfer_selected(ecm):
|
func on_interfer_selected(ecm):
|
||||||
if ecm != null:
|
if ecm != null:
|
||||||
$table.set_meta('ecm', ecm)
|
$table.set_meta('ecm', ecm)
|
||||||
else:
|
else:
|
||||||
$table.set_meta('ecm', null)
|
$table.set_meta('ecm', null)
|
||||||
on_ecm_update()
|
on_ecm_update()
|
||||||
|
|
||||||
|
|
||||||
func on_ecm_update():
|
func on_ecm_update():
|
||||||
for item in len(TABLE_PARAMS):
|
for item in len(TABLE_PARAMS):
|
||||||
$table.set_node_text(1, item, '')
|
$table.set_node_text(1, item, '')
|
||||||
$table.set_node_editable(1, item, false)
|
$table.set_node_editable(1, item, false)
|
||||||
if $table.has_meta('ecm') == false: return
|
if $table.has_meta('ecm') == false: return
|
||||||
var ecm: interfer.Interfer = $table.get_meta('ecm')
|
var ecm: interfer.Interfer = $table.get_meta('ecm')
|
||||||
var mnms = tools.get_members_names(ecm)
|
var mnms = tools.get_members_names(ecm)
|
||||||
for item in ecm['params'].keys():
|
for item in ecm['params'].keys():
|
||||||
mnms.append(item)
|
mnms.append(item)
|
||||||
for member_name in mnms:
|
for member_name in mnms:
|
||||||
if not TABLE_PARAMS.has(member_name): continue
|
if not TABLE_PARAMS.has(member_name): continue
|
||||||
var p = TABLE_PARAMS[member_name]
|
var p = TABLE_PARAMS[member_name]
|
||||||
var val = ecm.get_value(member_name)
|
var val = ecm.get_value(member_name)
|
||||||
$table.set_node_text(1, p[0], '%s' % val)
|
$table.set_node_text(1, p[0], '%s' % val)
|
||||||
$table.set_node_editable(1, p[0], p[2])
|
$table.set_node_editable(1, p[0], p[2])
|
||||||
|
|
||||||
|
|
||||||
func on_rto_threat_unsel(_th_id):
|
func on_rto_threat_unsel(_th_id):
|
||||||
for item in range(len(TABLE_PARAMS)):
|
for item in range(len(TABLE_PARAMS)):
|
||||||
$table.set_node_text(1, item, '')
|
$table.set_node_text(1, item, '')
|
||||||
$table.set_node_editable(1, item, false)
|
$table.set_node_editable(1, item, false)
|
||||||
|
|||||||
@@ -15,51 +15,51 @@ const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины к
|
|||||||
## Параметры цели для отображения в таблице.[br]
|
## Параметры цели для отображения в таблице.[br]
|
||||||
## [b]val[0][/b] - Индекс строки.[br][b]val[1][/b] - Содержание.
|
## [b]val[0][/b] - Индекс строки.[br][b]val[1][/b] - Содержание.
|
||||||
const TABLE_PARAMS = {
|
const TABLE_PARAMS = {
|
||||||
'baud': [0, 'Модуляционная скорость, бод'],
|
'baud': [0, 'Модуляционная скорость, бод'],
|
||||||
'freqm': [1, 'Режим смены частоты.'],
|
'freqm': [1, 'Режим смены частоты.'],
|
||||||
'power': [2, 'Уровень сигнала, дБм.'],
|
'power': [2, 'Уровень сигнала, дБм.'],
|
||||||
'tmod': [3, 'Тип модуляции'],
|
'tmod': [3, 'Тип модуляции'],
|
||||||
'width': [4, 'Занимая полоса частот, МГц.'],
|
'width': [4, 'Занимая полоса частот, МГц.'],
|
||||||
'rkrp': [5, 'Рекомендуемая помеха'] }
|
'rkrp': [5, 'Рекомендуемая помеха'] }
|
||||||
|
|
||||||
|
|
||||||
## Обрабатывает сигнал [signal threats.threat_selected].
|
## Обрабатывает сигнал [signal threats.threat_selected].
|
||||||
func on_threat_selected(th):
|
func on_threat_selected(th):
|
||||||
$table.set_meta('id', th.id)
|
$table.set_meta('id', th.id)
|
||||||
on_threat_update(th)
|
on_threat_update(th)
|
||||||
|
|
||||||
|
|
||||||
func init_table():
|
func init_table():
|
||||||
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
||||||
for p in TABLE_PARAMS.values():
|
for p in TABLE_PARAMS.values():
|
||||||
$table.set_node_text(0, p[0], p[1])
|
$table.set_node_text(0, p[0], p[1])
|
||||||
$table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT)
|
$table.set_node_alligment(0, p[0], HORIZONTAL_ALIGNMENT_LEFT)
|
||||||
$table.set_node_editable(0, p[0], false)
|
$table.set_node_editable(0, p[0], false)
|
||||||
$table.set_node_editable(1, p[0], false)
|
$table.set_node_editable(1, p[0], false)
|
||||||
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
||||||
$table.set_meta('id', 0)
|
$table.set_meta('id', 0)
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
signaller.connect('threat_selected', Callable(self, 'on_threat_selected'))
|
signaller.connect('threat_selected', Callable(self, 'on_threat_selected'))
|
||||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||||
threats.connect('threat_update', Callable(self, 'on_threat_update'))
|
threats.connect('threat_update', Callable(self, 'on_threat_update'))
|
||||||
call_deferred('init_table')
|
call_deferred('init_table')
|
||||||
|
|
||||||
|
|
||||||
## Обрабатывает сигнал [signal threats.threat_update].
|
## Обрабатывает сигнал [signal threats.threat_update].
|
||||||
## Обновляет отображение только для выбранной цели.
|
## Обновляет отображение только для выбранной цели.
|
||||||
func on_threat_update(th):
|
func on_threat_update(th):
|
||||||
if th.selected == false: return
|
if th.selected == false: return
|
||||||
if th.id != $table.get_meta('id'): return
|
if th.id != $table.get_meta('id'): return
|
||||||
var mnms = tools.get_members_names(th)
|
var mnms = tools.get_members_names(th)
|
||||||
for member_name in mnms:
|
for member_name in mnms:
|
||||||
if not TABLE_PARAMS.has(member_name): continue
|
if not TABLE_PARAMS.has(member_name): continue
|
||||||
var p = TABLE_PARAMS[member_name]
|
var p = TABLE_PARAMS[member_name]
|
||||||
var val = th.get(member_name)
|
var val = th.get(member_name)
|
||||||
$table.set_node_text(1, p[0], '%s' % val)
|
$table.set_node_text(1, p[0], '%s' % val)
|
||||||
|
|
||||||
|
|
||||||
func on_rto_threat_unsel(_th_id):
|
func on_rto_threat_unsel(_th_id):
|
||||||
for item in range(len(TABLE_PARAMS)):
|
for item in range(len(TABLE_PARAMS)):
|
||||||
$table.set_node_text(1, item, '')
|
$table.set_node_text(1, item, '')
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ func _ready():
|
|||||||
log.info('Модуль географической карты готов')
|
log.info('Модуль географической карты готов')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_map_mode_changed(mode: int) -> void:
|
func _on_map_mode_changed(mode: int) -> void:
|
||||||
var map_image_size = ProjectSettings.get_setting(MAP_MODES[mode])
|
var map_image_size = ProjectSettings.get_setting(MAP_MODES[mode])
|
||||||
material.set('shader_parameter/radius', MAP_RELATIVE_RADIUSES[mode])
|
material.set('shader_parameter/radius', MAP_RELATIVE_RADIUSES[mode])
|
||||||
|
|||||||
@@ -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="Script" path="res://scenes/tilemap/tilemap.gd" id="1_mkfgj"]
|
||||||
[ext_resource type="Shader" path="res://shaders/tilemap.gdshader" id="1_tsdui"]
|
[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 = ExtResource("1_tsdui")
|
||||||
shader_parameter/radius = 0.39
|
shader_parameter/radius = 0.39
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ys5v4"]
|
|
||||||
|
|
||||||
[node name="tilemap" type="Sprite2D"]
|
[node name="tilemap" type="Sprite2D"]
|
||||||
material = SubResource("ShaderMaterial_pmqvj")
|
material = SubResource("ShaderMaterial_pmqvj")
|
||||||
position = Vector2(560, 560)
|
position = Vector2(560, 560)
|
||||||
script = ExtResource("1_mkfgj")
|
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"]
|
|
||||||
|
|||||||
@@ -45,9 +45,8 @@ class Tile:
|
|||||||
func _bound_index(index: int) -> int:
|
func _bound_index(index: int) -> int:
|
||||||
var mi: int = 2 ** z
|
var mi: int = 2 ** z
|
||||||
if index < 0:
|
if index < 0:
|
||||||
index *= -1
|
index = -index - 1;
|
||||||
index %= mi
|
index = int(mi - 1) - (index % int(mi))
|
||||||
index = mi - index
|
|
||||||
else:
|
else:
|
||||||
index %= mi
|
index %= mi
|
||||||
return index
|
return index
|
||||||
|
|||||||
Reference in New Issue
Block a user