prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
96 lines (95 loc) • 3.25 kB
TypeScript
export type CharacterOptionsPlaceholder<CharacterName extends string, DollName extends string, FontName extends string> = Record<CharacterName, {
doll: any;
font: any;
}>;
export type DollOptionsPlaceholder<DollName extends string, ModelName extends string> = Record<DollName, {
model: any;
}>;
export type PlaceInfoByNamePlaceholder<PlaceName extends string> = Record<PlaceName, {
modelFile: string;
cameraNames: readonly string[];
segmentNames: readonly string[];
wallNames: readonly string[];
floorNames: readonly string[];
triggerNames: readonly string[];
spotNames: readonly string[];
soundspotNames: readonly string[];
probesByCamera: Record<string, string>;
backdropsByCamera: Record<string, Record<string, {
frameRate: number;
totalFrames: number;
maxFramesPerRow: number;
textures: Array<{
color: string;
depth: string;
}>;
}>>;
segmentNamesByCamera: Record<string, Array<string>>;
}>;
export type ModelInfoByNamePlaceholder<ModelName extends string> = Record<ModelName, {
modelFile: string;
animationNames: readonly string[];
boneNames: readonly string[];
meshNames: readonly string[];
materialNames: readonly string[];
skeletonName: string;
}>;
export type PickupsInfoPlaceholder<PickupName extends string> = Record<PickupName, {
name: string;
hint: string;
image: string;
}>;
export type DeepWriteable<T> = {
-readonly [P in keyof T]: DeepWriteable<T[P]>;
};
type ToNewOptionUntyped = {
toPlace: string;
toSpot: string;
toCam?: string;
toSegment?: string;
};
export type PrendyOptionsUntyped = {
place: string;
segment: string;
camera: string;
heldPickups: string[];
playerCharacter: string;
playerAnimations: {
walking: string;
idle: string;
};
zoomLevels: {
default: number;
max: number;
};
walkSpeed: number;
gameTimeSpeed: number;
headHeightOffsets: Record<string, number>;
doorsInfo?: Partial<Record<string, Partial<Record<string, ToNewOptionUntyped>>>>;
modelNamesByPlace: Record<string, string[]>;
hasInteracting?: boolean;
hasJumping?: boolean;
};
type ToPlaceOption<AnyCameraName extends string, AnySegmentName extends string, PlaceName extends string, AnySpotName extends string> = {
toPlace: PlaceName;
toSpot: AnySpotName;
toCam?: AnyCameraName;
toSegment?: AnySegmentName;
};
export type PrendyOptionsGeneric<AnyCameraName extends string, AnySegmentName extends string, PlaceName extends string, CharacterName extends string, PickupName extends string, ModelName extends string, AnySpotName extends string> = {
place: PlaceName;
segment: AnySegmentName;
camera: AnyCameraName;
heldPickups: PickupName[];
playerCharacter: CharacterName;
zoomLevels: {
default: number;
max: number;
};
walkSpeed: number;
gameTimeSpeed: number;
headHeightOffsets: Record<string, number>;
doorsInfo?: Partial<Record<PlaceName, Partial<Record<string, ToPlaceOption<AnyCameraName, AnySegmentName, PlaceName, AnySpotName>>>>>;
modelNamesByPlace: Record<PlaceName, ModelName[]>;
};
export {};