feat(client): game session management (#258, D-085)

Per-game save directories under user://saves/<timestamp>-<seed>/.
SessionManager autoload handles new_game(), resume_game(), quit flow.
Main menu scene with New Game / Continue / Quit buttons. Game-id
passed to server subprocess via --game-id flag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 11:45:46 +01:00
co-authored by Claude Opus 4.6
parent a7541aa27b
commit ef135830f2
9 changed files with 451 additions and 3 deletions
+5
View File
@@ -4,6 +4,11 @@ extends Node
# Entities use Protocol decoded format: {entity_id, x, y, z, kind: {variant, data}}.
# Tiles use format: [{x, y, z, type}].
var current_snapshot: Dictionary = {}
# D-085 (#258): Active game session identifier. Format: <YYYYMMDD>-<HHMMSS>-<hex6>
# Set by SessionManager.new_game() or SessionManager.resume_game().
# Empty string when no session is active (main menu state).
var current_game_id: String = ""
var current_tick: int = 0
var player_position: Vector2 = Vector2.ZERO
var visible_entities: Array = []