/**
* Сейвы игры (движковый SaveManager, хранилище — localStorage): автосейв
* при меню Esc, «Продолжить» после перезагрузки страницы. Пейлоад —
* полный снапшот сюжета: область/тайл героя, флаги+вары (used-интерактивы
* и знакомства тоже флаги), сумка, часы суток, правки цветков по областям.
*/
import { SaveManager, type InventoryData } from '@rpg/engine';
import type { GameStateData } from './state';
import type { Tile } from './data/areas';
/** Снапшот игры для слота (version — формат пейлоада, не движка). */
export interface GameSave {
version: 1;
/** Область и тайл героя (вход = тайл, без повторного триггера перехода). */
area: string;
tile: Tile;
/** Сюжет: флаги + числовые вары (GameStateData). */
state: GameStateData;
/** Сумка героя. */
inv: InventoryData;
/** Минуты суток (GameClock.set). */
minutes: number;
/** Правки цветков по областям: areaId → [индекс тайла, стоит ли]. */
flowers: [string, [number, boolean][]][];
}
/** Менеджер слотов игры (localStorage; в тестах — Map, движковый интерфейс). */
export function createSaveManager(storage: Storage): SaveManager {
return new SaveManager(storage, 'rpg2:');
}