31 lines
806 B
GDScript
31 lines
806 B
GDScript
## 全局游戏状态(Autoload 单例)。
|
|
## 负责场景间参数传递与会话状态管理,不持有游戏内数据。
|
|
extends Node
|
|
|
|
## 进入游戏的方式。
|
|
enum GameMode { NEW_GAME, LOAD_GAME }
|
|
|
|
## 当前进入游戏的方式。
|
|
var mode: GameMode = GameMode.NEW_GAME
|
|
## 要加载的存档 ID(仅 LOAD_GAME 时有效)。
|
|
var save_id: String = ""
|
|
|
|
# 游戏内时间(12 月 × 30 天 = 360 天/年),实际推进由 TimeSystem 负责
|
|
var year: int = 1
|
|
var month: int = 1
|
|
var day: int = 1
|
|
|
|
## 请求开始新游戏:重置模式与时间。
|
|
func request_new_game() -> void:
|
|
mode = GameMode.NEW_GAME
|
|
save_id = ""
|
|
year = 1
|
|
month = 1
|
|
day = 1
|
|
|
|
## 请求加载指定存档。
|
|
## @param id: 存档 ID
|
|
func request_load_game(id: String) -> void:
|
|
mode = GameMode.LOAD_GAME
|
|
save_id = id
|