Рефактор. Сетевой модуль.
This commit is contained in:
@@ -141,30 +141,12 @@ func parse_cmd_line_args(settings_data: Dictionary):
|
||||
settings_data[key] = val0
|
||||
|
||||
|
||||
## Загружает настройки из файла
|
||||
func load_settings(settings_data: Dictionary):
|
||||
var settings_file = settings.get_settings_file_path()
|
||||
var file = FileAccess.open(settings_file, FileAccess.READ)
|
||||
var abs_path = ProjectSettings.globalize_path(settings_file)
|
||||
if file:
|
||||
var read = file.get_as_text()
|
||||
file.close()
|
||||
var json_conv = JSON.new()
|
||||
if json_conv.parse(read) == OK:
|
||||
settings_data.merge(json_conv.get_data())
|
||||
else:
|
||||
log.warning('Не удалось разобрать \\\"%s\\\", будут использованы настройки по умолчанию' % abs_path)
|
||||
else:
|
||||
log.warning('Файл \\\"%s\\\" не найден, будут использованы настройки по умолчанию' % abs_path)
|
||||
|
||||
|
||||
func setting_tab():
|
||||
$heard_table.set_header(HEADER_ROW)
|
||||
$heard_table.set_header_text(HEADER_ROW_TEXT)
|
||||
$heard_table.set_columns_min_size([600, 950])
|
||||
$heard_table.set_columns_alignments(ALIGNMENT)
|
||||
var settings_data = {}
|
||||
load_settings(settings_data)
|
||||
parse_cmd_line_args(settings_data)
|
||||
for key in settings_data:
|
||||
ProjectSettings.set_setting('application/config/%s' % key, settings_data[key])
|
||||
@@ -211,7 +193,7 @@ func setting_tab():
|
||||
profile.text = ''
|
||||
for val in unit_data:
|
||||
profile.text += str(val) + ','
|
||||
profile.text.rstrip(',')
|
||||
profile.text = profile.text.trim_suffix(',')
|
||||
button_settings()
|
||||
|
||||
|
||||
@@ -232,25 +214,26 @@ func _on_btn_save_settings_pressed():
|
||||
for i in SETTING_TABLE.size():
|
||||
var parameter = SETTING_TABLE[i][0]
|
||||
if parameter in settings.UnitProfiles:
|
||||
var ref_profile = settings.UnitProfiles[parameter][1]
|
||||
var profiles = $scroll_set/table.get_node2(1, i)
|
||||
var value = profiles.get_text()
|
||||
if parameter not in json_data:
|
||||
json_data[parameter] = []
|
||||
if value.find(':') != -1:
|
||||
var parts = value.split(':')
|
||||
var ip = parts[0].strip_edges()
|
||||
var ports = parts[1].split(',')
|
||||
json_data[parameter].append(ip)
|
||||
for port in ports:
|
||||
if port == 'true':
|
||||
json_data[parameter].append(true)
|
||||
elif port == 'false':
|
||||
json_data[parameter].append(false)
|
||||
var row: = []
|
||||
for token in value.split(','):
|
||||
var j: = row.size()
|
||||
if token.is_valid_int():
|
||||
token = int(token)
|
||||
elif token == 'false':
|
||||
token = false
|
||||
elif token == 'true':
|
||||
token = true
|
||||
if typeof(ref_profile[j]) == typeof(token):
|
||||
row.append(token)
|
||||
else:
|
||||
port = port.strip_edges()
|
||||
if port.is_valid_int():
|
||||
port = int(port)
|
||||
json_data[parameter].append(port)
|
||||
# TODO: Это надо вывести на экран пользователю
|
||||
push_error([parameter, j, type_string(typeof(ref_profile[j])), type_string(typeof(token))])
|
||||
row.append(ref_profile[j])
|
||||
json_data[parameter] = row
|
||||
else:
|
||||
var children = $scroll_set/table.get_node2(1, i).get_children()
|
||||
if len(children):
|
||||
|
||||
Reference in New Issue
Block a user