UNPKG

prendy

Version:

Make games with prerendered backdrops using babylonjs and repond

157 lines (156 loc) 7.47 kB
import { AbstractMesh, AnimationGroup, Bone, InstantiatedEntries, Material, Skeleton } from "@babylonjs/core"; import { Point3D } from "chootils/dist/points3d"; import { MyTypes } from "../../declarations"; import { AnimationNameByModel, MeshNameByModel, BoneNameByModel, MaterialNameByModel, DollOptions } from "../../types"; export default function dolls<T_MyTypes extends MyTypes = MyTypes>(prendyAssets: T_MyTypes["Assets"]): { startStates: { [x: string]: { toggledMeshes: Record<string, boolean>; nowAnimation: string; animationLoops: boolean; inRange: Record<string, import("src/helpers/prendyUtils/dolls").InRangeForDoll>; isVisible: boolean; animWeights: Record<string, number>; animWeightsGoal: Record<string, number>; animWeightsIsMoving: boolean; animWeightsMoveMode: import("repond-movers/src/types").MoveMode; animWeightsMoveConfigName: string; animWeightsMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; nowWalkSpeed: number; positionOnScreen: import("chootils/dist/points2d").Point2D; rotationY: number; rotationYGoal: number; rotationYIsMoving: boolean; rotationYMoveMode: import("repond-movers/src/types").MoveMode; rotationYMoveConfigName: string; rotationYMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; position: Point3D; positionGoal: Point3D; positionIsMoving: boolean; positionMoveMode: import("repond-movers/src/types").MoveMode; positionMoveConfigName: string; positionMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; modelName: any; goalSpotNameAtNewPlace: string | null; goalPositionAtNewPlace: Point3D | null; }; }; getDefaultState: <T_DollName extends string, T_ModelName extends string>(_dollName: T_DollName, modelName?: T_ModelName) => { toggledMeshes: Record<string, boolean>; nowAnimation: string; animationLoops: boolean; inRange: Record<string, import("src/helpers/prendyUtils/dolls").InRangeForDoll>; isVisible: boolean; animWeights: Record<string, number>; animWeightsGoal: Record<string, number>; animWeightsIsMoving: boolean; animWeightsMoveMode: import("repond-movers/src/types").MoveMode; animWeightsMoveConfigName: string; animWeightsMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; nowWalkSpeed: number; positionOnScreen: import("chootils/dist/points2d").Point2D; rotationY: number; rotationYGoal: number; rotationYIsMoving: boolean; rotationYMoveMode: import("repond-movers/src/types").MoveMode; rotationYMoveConfigName: string; rotationYMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; position: Point3D; positionGoal: Point3D; positionIsMoving: boolean; positionMoveMode: import("repond-movers/src/types").MoveMode; positionMoveConfigName: string; positionMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; modelName: T_ModelName; goalSpotNameAtNewPlace: string | null; goalPositionAtNewPlace: Point3D | null; }; getDefaultRefs: <T_DollName_1 extends string, T_ModelName_1 extends string>(dollName: T_DollName_1, itemState: { toggledMeshes: Record<string, boolean>; nowAnimation: string; animationLoops: boolean; inRange: Record<string, import("src/helpers/prendyUtils/dolls").InRangeForDoll>; isVisible: boolean; animWeights: Record<string, number>; animWeightsGoal: Record<string, number>; animWeightsIsMoving: boolean; animWeightsMoveMode: import("repond-movers/src/types").MoveMode; animWeightsMoveConfigName: string; animWeightsMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; nowWalkSpeed: number; positionOnScreen: import("chootils/dist/points2d").Point2D; rotationY: number; rotationYGoal: number; rotationYIsMoving: boolean; rotationYMoveMode: import("repond-movers/src/types").MoveMode; rotationYMoveConfigName: string; rotationYMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; position: Point3D; positionGoal: Point3D; positionIsMoving: boolean; positionMoveMode: import("repond-movers/src/types").MoveMode; positionMoveConfigName: string; positionMoveConfigs: Record<string, import("repond-movers/src/types").PhysicsOptions>; modelName: any; goalSpotNameAtNewPlace: string | null; goalPositionAtNewPlace: Point3D | null; }) => { animWeightsMoverRefs: { stateNames: { value: "animWeights"; valueGoal: "animWeightsGoal"; isMoving: "animWeightsIsMoving"; moveMode: "animWeightsMoveMode"; physicsConfigName: "animWeightsMoveConfigName" | undefined; physicsConfigs: "animWeightsMoveConfigs" | undefined; }; physicsConfigs: import("repond-movers/src/types").DefinedPhysicsConfig | undefined; animRefs: Record<string, { velocity: number; recentSpeeds: number[]; }>; animNames: readonly string[]; }; rotationYMoverRefs: { velocity: number; recentSpeeds: number[]; stateNames: { value: "rotationY"; valueGoal: "rotationYGoal"; isMoving: "rotationYIsMoving"; moveMode: "rotationYMoveMode"; physicsConfigName: "rotationYMoveConfigName" | undefined; physicsConfigs: "rotationYMoveConfigs" | undefined; }; physicsConfigs: import("repond-movers/src/types").DefinedPhysicsConfig | undefined; }; positionMoverRefs: { velocity: Point3D; recentSpeeds: number[]; averageSpeed: number; canRunOnSlow: boolean; stateNames: { value: "position"; valueGoal: "positionGoal"; isMoving: "positionIsMoving"; moveMode: "positionMoveMode"; physicsConfigName: "positionMoveConfigName" | undefined; physicsConfigs: "positionMoveConfigs" | undefined; }; physicsConfigs: import("repond-movers/src/types").DefinedPhysicsConfig | undefined; }; meshRef: AbstractMesh | null; otherMeshes: Record<string, AbstractMesh | null>; entriesRef: InstantiatedEntries | null; aniGroupsRef: Record<string, AnimationGroup> | null; assetRefs: { meshes: Record<string, AbstractMesh>; skeleton: Skeleton; bones: Record<string, Bone>; aniGroups: Record<string, AnimationGroup>; materials: Record<string, Material>; } | null; groundRef: AbstractMesh | null; canGoThroughWalls: boolean; }; };