système de sauvegarde, scène 3D de test sur la base astra et passage en forward+

This commit is contained in:
2026-02-06 10:28:36 +01:00
parent 83d462f2f4
commit cc421a951f
97 changed files with 2138 additions and 1007 deletions

View File

@@ -1,34 +1,73 @@
extends Node
const SAVE_GAME_LOCATION = "res://stw_demo_save.tres"
const SAVE_SETTINGS_LOCATION = "res://stw_settings.tres"
var game_loaded = false
signal game_data_updated(g : GameData)
var game_data : GameData :
set(v):
game_data = v
game_data_updated.emit(v)
set(v):
game_data = v
game_data_updated.emit(v)
var settings_data : SettingsData
func load_game_data() -> GameData:
if ResourceLoader.exists(SAVE_GAME_LOCATION):
game_loaded = true
game_data = ResourceLoader.load(SAVE_GAME_LOCATION).duplicate_deep()
else :
game_data = GameData.new()
save_game_data()
return game_data
func save_game_data():
if game_data:
ResourceSaver.save(game_data, SAVE_GAME_LOCATION)
func load_settings_data() -> SettingsData:
if ResourceLoader.exists(SAVE_SETTINGS_LOCATION):
print("settings exists")
settings_data = ResourceLoader.load(SAVE_SETTINGS_LOCATION).duplicate_deep()
else :
settings_data = SettingsData.new()
save_settings()
return settings_data
func save_settings():
if settings_data:
ResourceSaver.save(settings_data, SAVE_SETTINGS_LOCATION)
func restart_game_data():
game_data = GameData.new()
save_game_data()
func _init():
if not game_data:
game_data = GameData.new()
update_language_settings(game_data.settings)
update_video_settings(game_data.settings)
game_data.settings.language_changed.connect(_on_settings_language_changed)
game_data.settings.video_changed.connect(_on_settings_video_changed)
load_game_data()
load_settings_data()
update_language_settings(settings_data)
update_video_settings(settings_data)
settings_data.language_changed.connect(_on_settings_language_changed)
settings_data.video_changed.connect(_on_settings_video_changed)
func _on_settings_video_changed(s : SettingsData):
update_video_settings(s)
update_video_settings(s)
func _on_settings_language_changed(s : SettingsData):
update_language_settings(s)
update_language_settings(s)
func update_language_settings(s : SettingsData):
TranslationServer.set_locale(s.language)
TranslationServer.set_locale(s.language)
func update_video_settings(s : SettingsData):
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN if s.full_screen else DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN if s.full_screen else DisplayServer.WINDOW_MODE_WINDOWED)
func update_input(action : String, old_event : InputEvent, event : InputEvent):
InputMap.action_erase_event(action, old_event)
InputMap.action_add_event(action, event)
InputMap.action_erase_event(action, old_event)
InputMap.action_add_event(action, event)