/
mrFeld
/
Platformer
Обзор
Документация
Войти
/
mrFeld
/
Platformer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Script/UI/Menu/Persistence.gd
50 строк
1 KB
mrFeld
inv0.1
10 май 2025, 04:47
10 май 2025, 04:47
c90da6d
Код
Авторство
О чём код?
extends Node const PATH = "user://settings.cfg" var config = ConfigFile.new() func _ready() -> void: for action in InputMap.get_actions(): if InputMap.action_get_events(action).size() != 0: config.set_value("Controls", action, InputMap.action_get_events(action)[0]) config.set_value("Video", "fullscreen", DisplayServer.WINDOW_MODE_WINDOWED) config.set_value("Video", "borderless", false) config.set_value("Video", "vsync", DisplayServer.VSYNC_ENABLED) config.set_value("Video", "brightness", 1.0) for i in range(3): config.set_value("Audio", str(i), 0.5) load_data() func save_data(): config.save(PATH) func load_data(): if config.load("user://settings.cfg") != OK: save_data() return load_control_settings() load_video_settings() func load_control_settings(): var keys = config.get_section_keys("Controls") for action in InputMap.get_actions(): if keys.has(action): var value = config.get_value("Controls", action) InputMap.action_erase_events(action) InputMap.action_add_event(action, value) func load_video_settings(): var screen_type = config.get_value("Video", "fullscreen") DisplayServer.window_set_mode(screen_type) var borderless = config.get_value("Video", "borderless") DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, borderless) var vsinc_index = config.get_value("Video", "vsync") DisplayServer.window_set_vsync_mode(vsinc_index)