yukinovel
Version:
Yukinovel is a simple web visual novel engine.
65 lines (64 loc) • 2.44 kB
TypeScript
import { GameScript, GameState, GameEventHandler, Scene, DialogueEntry, Choice, Plugin } from '../types/index.js';
import { AudioManager } from './AudioManager.js';
import { SaveManager } from './SaveManager.js';
import { UIRenderer } from './UIRenderer.js';
import { LanguageManager } from './LanguageManager.js';
import { PluginManager } from './PluginManager.js';
export declare class Game {
private script;
private state;
private container;
private audioManager;
private saveManager;
private uiRenderer;
private languageManager;
private pluginManager;
private eventHandlers;
private currentSceneDialogueHistory;
private globalDialogueHistory;
private isGameStarted;
constructor(script: GameScript);
mount(selector: string): void;
private initialize;
startScene(sceneId: string, fadeOptions?: {
backgroundFade?: boolean;
backgroundAnimation?: any;
}): Promise<void>;
private showDialogue;
next(): Promise<void>;
makeChoice(choice: Choice): Promise<void>;
private handleAction;
saveGame(slot?: number): Promise<void>;
loadGame(slot?: number): Promise<void>;
showMainMenu(): Promise<void>;
startNewGame(): Promise<void>;
continueGame(): Promise<void>;
on(event: string, handler: GameEventHandler): void;
private emit;
getCurrentScene(): Scene | undefined;
getCurrentSceneDialogueHistory(): DialogueEntry[];
getGlobalDialogueHistory(): Array<{
dialogue: DialogueEntry;
sceneId: string;
timestamp: Date;
}>;
getSceneById(sceneId: string): Scene | undefined;
getState(): GameState;
getScript(): GameScript;
getLanguageManager(): LanguageManager;
getCurrentLanguage(): string;
setLanguage(languageCode: string): Promise<void>;
getAvailableLanguages(): import("../types/index.js").LanguageConfig[];
getText(key: string, fallback?: string): string;
getAudioManager(): AudioManager;
getUIRenderer(): UIRenderer;
getSaveManager(): SaveManager;
getConfirmModal(): import("./ui/ConfirmModal.js").ConfirmModal;
getPluginManager(): PluginManager;
registerPlugin(plugin: Plugin): Promise<void>;
unregisterPlugin(pluginName: string): Promise<void>;
getPlugin(name: string): any;
getPluginAPI(name: string): any;
hasPlugin(name: string): boolean;
emitCustomEvent(eventName: string, data?: any): Promise<void>;
}