Storage di gioco
Come archiviare, recuperare e gestire variabili persistenti e temporanee in Pixi'VN, inclusa l'integrazione Keyv.
**Che cos'è lo storage di gioco? ** Lo storage di gioco è un luogo in cui è possibile salvare le variabili che si desidera conservare tra le sessioni di gioco.
È fondamentale capire che se le variabili non vengono salvate nella memoria del gioco, il motore non sarà in grado di gestirle quando carichi un salvataggio o quando torni indietro.
Inoltre, nell'archivio del gioco è possibile salvare qualsiasi tipo di variabile, eccetto class
e function
(perché non possono essere convertite in JSON), come: string
, number
, boolean
, object
, array
, ecc. Se si desidera salvare i "flag" (booleani), si consiglia di utilizzare la funzionalità flag, un sistema di gestione dei flag ad altissime prestazioni.
Set
Per impostare una variabile nell'archivio di gioco, utilizzare storage.setVariable
. Questa funzione ha i seguenti parametri:
name
: Il nome della variabile da impostare.value
: Il valore della variabile da impostare.
import { storage } from '@drincs/pixi-vn'
storage.setVariable("myVariable", 42);
Ottieni
Per ottenere una variabile dall'archivio del gioco, utilizzare storage.getVariable
. Questa funzione ha i seguenti parametri:
name
: Il nome della variabile da ottenere.
import { storage } from '@drincs/pixi-vn'
const myVariable = storage.getVariable<number>("myVariable");
Rimuovi
Per rimuovere una variabile dall'archivio del gioco, utilizzare storage.removeVariable
. Questa funzione ha i seguenti parametri:
name
: Il nome della variabile da rimuovere.
import { storage } from '@drincs/pixi-vn'
storage.removeVariable("myVariable");
Storage temporaneo
In molti casi è utile utilizzare le variabili solo durante un determinato periodo della narrazione. Utilizzando un archivio normale, sarebbe necessario rimuovere manualmente queste variabili quando non sono più necessarie, per mantenere i salvataggi leggeri ed efficienti.
Per risolvere questo problema, Pixi’VN dispone di un sistema di archiviazione temporanea. Le variabili temporanee inizializzate in una label
verranno eliminate quando la label
verrà chiusa. Se da essa viene chiamata un'altra label
, la variabile temporanea sarà comunque accessibile dalla label
figlia. Tuttavia, se un'altra label
viene chiamata con jump
(quindi la label
corrente verrà chiusa e quella nuova verrà avviata), la variabile temporanea non sarà più accessibile.
Imposta una variabile temporanea:
Per impostare una variabile temporanea, utilizza storage.setTempVariable
. Questa funzione ha i seguenti parametri:
name
: Il nome della variabile da impostare.value
: Il valore della variabile da impostare.
import { storage } from '@drincs/pixi-vn'
storage.setTempVariable("myTempVariable", 42);
Ottieni una variabile temporanea:
Per ottenere una variabile temporanea, utilizzare la normale funzione storage.getVariable
.
Rimuovi una variabile temporanea:
Per rimuovere una variabile temporanea, utilizzare storage.removeTempVariable
. Questa funzione ha i seguenti parametri:
name
: Il nome della variabile da rimuovere.
import { storage } from '@drincs/pixi-vn'
storage.removeTempVariable("myTempVariable");
Variabili di sistema
Nello storage di gioco sono presenti alcune variabili di sistema utilizzate dal motore di gioco. Tutte le variabili di sistema iniziano con il prefisso ___
.
Si prega quindi di evitare di utilizzare questo prefisso nelle tue variabili.
È possibile ottenere tutte le chiavi delle variabili di sistema dalla costante SYSTEM_RESERVED_STORAGE_KEYS
.
Keyv
L'intero sistema di archiviazione è stato sviluppato utilizzando Map
, un oggetto JavaScript nativo, in modo da poter utilizzare Keyv per interagire con l'archiviazione dei giochi.
Cos'è Keyv? Keyv è un semplice sistema di archiviazione chiave-valore. È un sistema molto semplice da usare e molto popolare nella comunità Node.js. Keyv può essere combinato con altre librerie, come Cacheable (Caching per Node.js basata su Keyv). Per saperne di più, visita il sito web Keyv.
Come utilizzare Keyv con Pixi'VN? È possibile utilizzare Keyv con Pixi'VN creando una nuova istanza di Keyv e passando lo storage come parametro.
import { storage } from '@drincs/pixi-vn'
import Keyv from 'keyv';
const keyvStorage = new Keyv({ store: storage.storage });
keyvStorage.get<string>("myValue").then((value) => {
console.log(value);
});