prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
71 lines (70 loc) • 2.82 kB
TypeScript
import { Point3D } from "chootils/dist/points3d";
import { CameraNameByPlace, CharacterName, PlaceName, SegmentNameByPlace, SpotNameByPlace, WallNameByPlace } from "../types";
type ToPlaceOption<T_PlaceName extends PlaceName> = {
toPlace: T_PlaceName;
toSpot?: SpotNameByPlace[T_PlaceName];
toPositon?: Point3D;
toCam?: CameraNameByPlace[T_PlaceName];
toSegment?: SegmentNameByPlace[T_PlaceName];
};
export declare const sceneEvents: {
changeSegmentAtLoop: import("repond-events").EventTypeDefinition<{
place: string;
segment: string;
}>;
changeCameraAtLoop: import("repond-events").EventTypeDefinition<{
place: string;
cam: string;
}>;
hideWall: import("repond-events").EventTypeDefinition<{
place: string;
wall: string;
unhide: boolean | undefined;
}>;
showStoryView: import("repond-events").EventTypeDefinition<{
hide: boolean | undefined;
}>;
setSegment: import("repond-events").EventTypeDefinition<{
place: string;
segment: string;
}>;
setCamera: import("repond-events").EventTypeDefinition<{
place: string;
cam: string;
whenToRun: "now" | "at loop" | undefined;
}>;
canTriggerCamera: import("repond-events").EventTypeDefinition<{
place: string;
cam: string;
whenToRun: "now" | "at loop" | undefined;
}>;
goToNewPlace: import("repond-events").EventTypeDefinition<{
toOption: ToPlaceOption<string>;
who: string | undefined;
}>;
};
type SceneHideWallParams<T_Place extends PlaceName> = {
place: T_Place;
wall: WallNameByPlace[T_Place];
unhide?: boolean;
};
type SceneSetSegmentParams<T_Place extends PlaceName> = {
place: T_Place;
segment: SegmentNameByPlace[T_Place];
};
type SceneSetCameraParams<T_Place extends PlaceName> = {
place: T_Place;
cam: CameraNameByPlace[T_Place];
whenToRun?: "at loop" | "now" | undefined;
};
type SceneGoToNewPlaceParams<T_Place extends PlaceName> = {
toOption: ToPlaceOption<T_Place>;
who?: undefined | CharacterName;
};
type CanTriggerCameraParams<T_Place extends PlaceName> = {
place: T_Place;
cam: CameraNameByPlace[T_Place];
can?: boolean | undefined;
};
export type SceneEventParameters<T_Group, T_Event, T_GenericParamA> = T_Group extends "scene" ? T_Event extends "hideWall" ? SceneHideWallParams<T_GenericParamA & PlaceName> : T_Event extends "setSegment" ? SceneSetSegmentParams<T_GenericParamA & PlaceName> : T_Event extends "setCamera" ? SceneSetCameraParams<T_GenericParamA & PlaceName> : T_Event extends "goToNewPlace" ? SceneGoToNewPlaceParams<T_GenericParamA & PlaceName> : T_Event extends "canTriggerCamera" ? CanTriggerCameraParams<T_GenericParamA & PlaceName> : never : never;
export {};