UNPKG

@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
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 };