Loading...
Loading...
Use when implementing save/load in a Pixi'VN game — Game.exportGameState()/restoreGameState()/jsonToGameState(), what the exported GameState contains, and how to persist it (save slots, quick-save, auto-save-on-refresh, downloadable JSON). Load this before writing any save-file, save-slot, or "continue game" feature.
npx skill4agent add drincs-productions/pixi-vn pixi-vn-savespixi-vn-storagepixi-vn-canvaspixi-vn-historyimport { Game } from "@drincs/pixi-vn";
Game.exportGameState(): GameState
Game.restoreGameState(data: GameState): Promise<void>
Game.jsonToGameState(json: string): GameStateGame.exportGameState()GameStateJSON.stringifyGame.restoreGameState(data)GameStateGame.onNavigateGame.initnavigateGame.jsonToGameState(json)GameStateJSON.parseexportGameStateconst json = JSON.stringify(Game.exportGameState());
// ... later, possibly after a page reload ...
await Game.restoreGameState(Game.jsonToGameState(json));GameStateGameStatestepHistory.stepLimitSaved20pixi-vn-historyGame.exportGameStaterestoreGameStateGame.exportGameState()npm create pixi-vn@latestsrc/models/GameSaveData.tssrc/lib/utils/save-utility.tsinterface GameSaveData {
saveData: GameState; // the raw Game.exportGameState() output
gameVersion: string;
date: Date;
name: string;
image?: string; // thumbnail, e.g. canvas.extractImage() — see pixi-vn-canvas
}
function createGameSave(options?: { image?: string; name?: string }): GameSaveData {
return {
saveData: Game.exportGameState(),
gameVersion: __APP_VERSION__,
date: new Date(),
name: options?.name ?? "",
image: options?.image,
};
}
async function loadSave(saveData: GameSaveData) {
await Game.restoreGameState(saveData.saveData);
}exportGameState()saveDatarestoreGameState()GameSaveDatasaveGameToIndexDBgetSaveFromIndexDBdeleteSaveFromIndexDB0quickSaveGameToIndexDB-2..-7addAutoExitSaveuseAutoSaveOnPageClosebeforeunloadvisibilitychangelocalStoragegetLastSaveFromIndexDB-1nullloadSavedownloadGameSaveloadGameSaveFromFile@drincs/pixi-vnexportGameStaterestoreGameStateGame.initGame.onNavigateGamestepHistory.stepLimitSavedcanvas.extractImage()getSaveDataGame.exportGameState