Merge remote-tracking branch 'lepshiy/master'

# Conflicts:
#	scripts/settings.gd
This commit is contained in:
sasha80
2025-03-10 11:09:09 +03:00
3 changed files with 99 additions and 18 deletions

View File

@@ -45,24 +45,42 @@ var settings_program: Dictionary
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()
settings_program.merge(json_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 typeof(json_data[key][i+1]) == TYPE_STRING:
if json_data[key][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]
else:
UnitProfiles[key][2][i] = json_data[key][i+1]
if not file:
log.info('Не удалось открыть файл настроек %s, использованы настройики по умолчанию' % settings_file)
return
var read = file.get_as_text()
file.close()
var json_conv: = JSON.new()
if Error.OK != json_conv.parse(read):
log.info('Не удалось прочитать файл настроек %s, использованы настройики по умолчанию' % settings_file)
return
var json_data = json_conv.get_data()
settings_program.merge(json_data)
for key in UnitProfiles.keys():
if not json_data.has(key): continue
var temp_array = []
var set_from_file = true
if typeof(json_data[key][0]) == typeof(UnitProfiles[key][1]):
temp_array.append(json_data[key][0])
else:
set_from_file = false
if (len(json_data[key]) - 1) != len(UnitProfiles[key][2]):
log.info('Не удалось прочитать файл настроек %s, ошибка длинны массива' % settings_file)
continue
temp_array.append([])
for i in len(json_data[key]) - 1:
if tools.type_is_num(json_data[key][i+1]) == tools.type_is_num(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
elif typeof(json_data[key][i+1]) == typeof(UnitProfiles[key][2][i]):
temp_array[1].append(json_data[key][i+1])
else:
set_from_file = false
if set_from_file:
UnitProfiles[key][1] = temp_array[0]
UnitProfiles[key][2] = temp_array[1]
else:
log.info('Не удалось прочитать ключ %s из файла настроек, использованы настройики по умолчанию' % key)
log.info('Модуль настроек готов')