@drincs/pixi-vn
Version:
Pixi'VN is a npm package that provides various features for creating visual novels.
123 lines (120 loc) • 5.78 kB
text/typescript
import { ChoiceMenuOptionsType } from '../types/ChoiceMenuOptionsType.cjs';
import { StorageElementType } from '../types/StorageElementType.cjs';
import { InputInfo } from '../types/InputInfo.cjs';
import { StepLabelPropsType, StepLabelResultType, StepLabelType } from '../types/StepLabelType.cjs';
import ChoiceMenuOption, { ChoiceMenuOptionClose } from '../classes/ChoiceMenuOption.cjs';
import Dialogue from '../classes/Dialogue.cjs';
import Label from '../classes/Label.cjs';
import LabelAbstract from '../classes/LabelAbstract.cjs';
import CharacterInterface from '../interface/CharacterInterface.cjs';
import ExportedStep from '../interface/export/ExportedStep.cjs';
import HistoryStep, { HistoryStepData } from '../interface/HistoryStep.cjs';
import NarrationManagerInterface from '../interface/managers/NarrationManagerInterface.cjs';
import NarrativeHistory from '../interface/NarrativeHistory.cjs';
import OpenedLabel from '../interface/OpenedLabel.cjs';
import { LabelIdType } from '../types/LabelIdType.cjs';
import '@drincs/pixi-vn';
import '../interface/LabelProps.cjs';
import '../types/CloseType.cjs';
import '../types/LabelRunModeType.cjs';
import 'deep-diff';
import 'microdiff';
import '../interface/export/ExportedCanvas.cjs';
import '../types/PauseTickerType.cjs';
import '../interface/canvas/memory/CanvasBaseItemMemory.cjs';
import '../interface/canvas/memory/ContainerMemory.cjs';
import 'pixi.js';
import '../types/ContainerChild.cjs';
import '../classes/canvas/CanvasBaseItem.cjs';
import '../interface/TickerHistory.cjs';
import '../types/TickerIdType.cjs';
import '../interface/TickerArgs.cjs';
import '../interface/TickersSequence.cjs';
import '../types/PauseType.cjs';
import '../types/RepeatType.cjs';
import '../interface/export/ExportedSounds.cjs';
import '../interface/SoundOptions.cjs';
import '@pixi/sound';
import '../types/SoundFilterMemory.cjs';
import '../interface/export/ExportedStorage.cjs';
import '../types/HistoryChoiceMenuOption.cjs';
/**
* This class is a class that manages the steps and labels of the game.
*/
declare class NarrationManager implements NarrationManagerInterface {
private readonly getCurrentStepData;
private readonly restoreFromHistoryStep;
private readonly forceCompletionOfTicker;
constructor(getCurrentStepData: () => HistoryStepData, restoreFromHistoryStep: (restoredStep: HistoryStepData, navigate: (path: string) => void) => Promise<void>, forceCompletionOfTicker: () => void);
get stepsHistory(): HistoryStep<Dialogue<CharacterInterface>>[];
get currentStepTimesCounter(): number;
set currentStepTimesCounter(_: 0);
getRandomNumber(min: number, max: number, options?: {
onceOnly?: boolean;
}): number | undefined;
get lastStepIndex(): number;
get openedLabels(): OpenedLabel[];
get currentLabel(): Label | undefined;
/**
* Add a label to the history.
* @param label The label to add to the history.
*/
private addStepHistory;
closeCurrentLabel(): void;
closeAllLabels(): void;
get narrativeHistory(): NarrativeHistory[];
removeNarrativeHistory(itemsNumber?: number): void;
isLabelAlreadyCompleted<Label extends LabelAbstract<any>>(label: LabelIdType | Label): boolean;
private get alreadyCurrentStepMadeChoicesObj();
get alreadyCurrentStepMadeChoices(): number[] | undefined;
get isCurrentStepAlreadyOpened(): boolean;
getTimesLabelOpened(label: LabelIdType): number;
getTimesChoiceMade(index: number): number;
addCurrentStepToHistory(): void;
private getCanGoNext;
get canGoNext(): boolean;
goNext(props: StepLabelPropsType, options?: {
choiseMade?: number;
runNow?: boolean;
}): Promise<StepLabelResultType>;
/**
* Execute the current step and add it to the history.
* @param props The props to pass to the step.
* @param options The options.
* @returns StepLabelResultType or undefined.
*/
private runCurrentStep;
callLabel<T extends {} = {}>(label: Label<T> | LabelIdType, props: StepLabelPropsType<T>): Promise<StepLabelResultType>;
jumpLabel<T extends {}>(label: Label<T> | LabelIdType, props: StepLabelPropsType<T>): Promise<StepLabelResultType>;
selectChoice<T extends {}>(item: ChoiceMenuOptionClose | ChoiceMenuOption<T>, props: StepLabelPropsType<T>): Promise<StepLabelResultType>;
closeChoiceMenu<T extends {} = {}>(choice: ChoiceMenuOptionClose<T>, props: StepLabelPropsType<T>): Promise<StepLabelResultType>;
/** Old Step Methods */
get stepLimitSaved(): number;
set stepLimitSaved(limit: number);
goBack(navigate: (path: string) => void, steps?: number): Promise<void>;
get canGoBack(): boolean;
blockGoBack(): Promise<void>;
onGameEnd: StepLabelType | undefined;
onStepError: ((error: any, props: StepLabelPropsType) => void) | undefined;
get dialogue(): Dialogue | undefined;
set dialogue(props: {
character: string | CharacterInterface;
text: string | string[];
} | string | string[] | Dialogue | undefined);
get choiceMenuOptions(): ChoiceMenuOptionsType<any> | undefined;
set choiceMenuOptions(options: ChoiceMenuOptionsType<any> | undefined);
get dialogGlue(): boolean;
set dialogGlue(value: boolean);
get inputValue(): StorageElementType;
set inputValue(value: StorageElementType);
get isRequiredInput(): boolean;
get inputType(): string | undefined;
requestInput(info: Omit<InputInfo, "isRequired">, defaultValue?: StorageElementType): void;
removeInputRequest(): void;
clear(): void;
exportJson(): string;
export(): ExportedStep;
importJson(dataString: string): Promise<void>;
import(data: object): Promise<void>;
}
export { NarrationManager as default };