diff --git a/project.godot b/project.godot index 1cd41bc7..27a8a4e1 100644 --- a/project.godot +++ b/project.godot @@ -39,6 +39,7 @@ config/unit_rr_right_bort="http://127.0.0.1:8080/reports/right_SelfTestReport.js config/unit_rr_request_period=5.0 config/kems_files_path="user://kems/" config/emsg_files_path="user://emsg/" +config/settings_path="user://settings.json" [autoload] diff --git a/scripts/settings.gd b/scripts/settings.gd index 95f1299f..8932b3d2 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -3,6 +3,8 @@ class_name rep_settings extends Node ## Параметры. +var settings_file = ProjectSettings.get_setting('application/config/settings_path', 'user://settings.json') # Путь к файлу с настройками + @export var UnitProfiles: = { \ # Название | Протокол | Адрес | Порт | Широковещательное | Привязывать к адресу | Комментарий 'уарэп-яу07-частный': ['yau07rx', '10.1.1.14', [50014], false, true, 'IP-адрес на котором принимают частные сообщения от ЯУ-07'], @@ -39,7 +41,23 @@ class_name rep_settings extends Node } -func _ready() -> void: log.info('Модуль настроек готов') +func _ready() -> void: + var file = FileAccess.open(settings_file, FileAccess.READ) + if file != null: + var read = file.get_as_text() + file.close() + var json_conv: = JSON.new() + if Error.OK == json_conv.parse(read): + var json_data = json_conv.get_data() + for key in UnitProfiles.keys(): + if json_data.has(key): + UnitProfiles[key][1] = json_data[key][0] + for i in len(json_data[key]) - 1: + if json_data[key][1][i+1].is_valid_int(): + UnitProfiles[key][2][i] = int(json_data[key][i+1]) + else: + UnitProfiles[key][2][i] = json_data[key][i+1] + log.info('Модуль настроек готов') ## Возвращает ключ устройства.