UNPKG

prendy

Version:

Make games with prerendered backdrops using babylonjs and repond

65 lines (64 loc) 2.12 kB
import { PlaceName, SpotNameByPlace, CameraNameByPlace, SegmentNameByPlace, TriggerNameByPlace, PickupName, CharacterName, AnyAnimationName, ModelName, ModelNamesByPlaceLoose } from "./types"; type ToNewOption<T_PlaceName extends PlaceName> = { [P_PlaceName in Exclude<PlaceName, T_PlaceName>]: { toPlace: P_PlaceName; toSpot: SpotNameByPlace[P_PlaceName]; toCam?: CameraNameByPlace[P_PlaceName]; toSegment?: SegmentNameByPlace[P_PlaceName]; }; }[Exclude<PlaceName, T_PlaceName>]; type DoorsInfo = Partial<{ [P_PlaceName in PlaceName]: Partial<{ [P_TriggerName in TriggerNameByPlace[P_PlaceName]]: ToNewOption<P_PlaceName>; }>; }>; export declare function makePrendyOptions<T_Place extends PlaceName, T_Cam extends CameraNameByPlace[T_Place]>(options: { place: T_Place; segment: SegmentNameByPlace[T_Place]; camera: T_Cam; heldPickups: PickupName[]; playerCharacter: CharacterName; playerAnimations: { walking: AnyAnimationName; idle: AnyAnimationName; }; zoomLevels: { default: number; max: number; }; walkSpeed: number; animationSpeed: number; gameTimeSpeed: number; headHeightOffsets: Partial<Record<ModelName, number>>; doorsInfo?: DoorsInfo; modelNamesByPlace: ModelNamesByPlaceLoose; hasInteracting?: boolean; hasJumping?: boolean; }): { place: T_Place; segment: SegmentNameByPlace[T_Place]; camera: T_Cam; heldPickups: PickupName[]; playerCharacter: CharacterName; playerAnimations: { walking: AnyAnimationName; idle: AnyAnimationName; }; zoomLevels: { default: number; max: number; }; walkSpeed: number; animationSpeed: number; gameTimeSpeed: number; headHeightOffsets: Partial<Record<ModelName, number>>; doorsInfo?: Partial<{ [x: string]: Partial<{ [x: string]: never; }>; }> | undefined; modelNamesByPlace: ModelNamesByPlaceLoose; hasInteracting?: boolean | undefined; hasJumping?: boolean | undefined; }; export {};