Регрессия. Неверный символ отступа, должен быть "пробел".

This commit is contained in:
sasha80
2024-08-07 16:36:14 +03:00
parent af3ceeb2b3
commit a08b8192a2
9 changed files with 123 additions and 151 deletions

View File

@@ -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)

View File

@@ -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())

View File

@@ -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()

View File

@@ -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():

View File

@@ -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)

View File

@@ -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, '')

View File

@@ -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])

View File

@@ -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"]

View File

@@ -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