///
///
import { MyTypes } from "../declarations";
export declare const prendyStepNames: readonly ["elapsedTimeUpdates", "eventUpdates", "moverUpdates", "updateBackdropFrameInfo", "respondToNewPlace", "respondToNewPlaceStory", "cameraChange", "input", "editPosition", "positionReaction", "checkCollisions", "collisionReaction", "story", "storyReaction", "slatePosition", "slatePositionDontGoOverEdges", "slatePositionStartMovers", "dollAnimation", "dollAnimation2", "dollCorrectRotationAndPosition", "dollAnimationStartMovers", "positionUi", "loadNewPlaceModels", "loadNewPlace", "moversGoal", "moversStart", "default", "rendering", "overlay"];
export type PrendyStepName = (typeof prendyStepNames)[number];
export declare function makePrendyStores(prendyAssets: T_MyTypes["Assets"]): {
keyboards: {
startStates: {
main: {
KeyW: boolean;
KeyA: boolean;
KeyS: boolean;
KeyD: boolean;
ArrowLeft: boolean;
ArrowRight: boolean;
ArrowUp: boolean;
ArrowDown: boolean;
KeyQ: boolean;
KeyE: boolean;
ShiftLeft: boolean;
ControlLeft: boolean;
Space: boolean;
Enter: boolean;
KeyZ: boolean;
KeyM: boolean;
KeyP: boolean;
};
};
getDefaultState: () => {
KeyW: boolean;
KeyA: boolean;
KeyS: boolean;
KeyD: boolean;
ArrowLeft: boolean;
ArrowRight: boolean;
ArrowUp: boolean;
ArrowDown: boolean;
KeyQ: boolean;
KeyE: boolean;
ShiftLeft: boolean;
ControlLeft: boolean;
Space: boolean;
Enter: boolean;
KeyZ: boolean;
KeyM: boolean;
KeyP: boolean;
};
getDefaultRefs: () => {};
};
miniBubbles: {
getDefaultState: (_itemId: T_ItemName, options?: {
character?: string | undefined;
} | undefined) => {
isVisible: boolean;
isFullyHidden: boolean;
text: string;
forCharacter: string | null;
position: import("chootils/dist/points2d").Point2D;
};
getDefaultRefs: () => {
bubbleRef: any;
textRef: any;
videoRef: HTMLVideoElement | null;
};
startStates: {
[x: string]: {
isVisible: boolean;
isFullyHidden: boolean;
text: string;
forCharacter: string | null;
position: import("chootils/dist/points2d").Point2D;
};
};
};
global: {
startStates: {
main: {
slatePosMoveConfigName: string;
isOnVerticalScreen: boolean;
zoomMultiplier: number;
timeScreenResized: number;
interactButtonPressTime: number;
heldPickups: string[];
storyOverlayToggled: boolean;
alarmTextIsVisible: boolean;
alarmText: string;
aSpeechBubbleIsShowing: boolean;
aConvoIsHappening: boolean;
backdropTime: number;
backdropFrame: number;
frameTick: number;
timeMode: "pause" | "game" | "miniGame";
elapsedGameTime: number;
elapsedPauseTime: number;
elapsedMiniGameTime: number;
isGamePaused: boolean;
gameTimeSpeed: number;
gameIsInBackground: boolean;
debugMessage: string;
latestSave: import("./global/global").PrendySaveState | null;
latestLoadTime: number;
slateZoom: number;
slateZoomGoal: number;
slateZoomIsMoving: boolean;
slateZoomMoveMode: import("repond-movers/src/types").MoveMode;
slateZoomMoveConfigName: string;
slateZoomMoveConfigs: Record;
slatePos: import("chootils/dist/points2d").Point2D;
slatePosGoal: import("chootils/dist/points2d").Point2D;
slatePosIsMoving: boolean;
slatePosMoveMode: import("repond-movers/src/types").MoveMode;
slatePosMoveConfigs: Record;
nowPlaceName: string;
goalPlaceName: string | null;
readyToSwapPlace: boolean;
isLoadingBetweenPlaces: boolean;
loadingOverlayToggled: boolean;
loadingOverlayFullyShowing: boolean;
goalCamWhenNextPlaceLoads: string | null;
goalCamNameAtLoop: string | null;
goalCamName: string | null;
nowCamName: string;
nowSegmentName: string;
goalSegmentName: string | null;
goalSegmentNameAtLoop: string | null;
goalSegmentWhenGoalPlaceLoads: string | null;
modelNamesLoaded: string[];
newPlaceModelLoaded: boolean;
newPlaceVideosLoaded: boolean;
newPlaceProbesLoaded: boolean;
playerCharacter: string;
gravityValue: number;
playerMovingPaused: boolean;
focusedDoll: any;
focusedDollIsInView: boolean;
};
};
getDefaultState: () => {
slatePosMoveConfigName: string;
isOnVerticalScreen: boolean;
zoomMultiplier: number;
timeScreenResized: number;
interactButtonPressTime: number;
heldPickups: string[];
storyOverlayToggled: boolean;
alarmTextIsVisible: boolean;
alarmText: string;
aSpeechBubbleIsShowing: boolean;
aConvoIsHappening: boolean;
backdropTime: number;
backdropFrame: number;
frameTick: number;
timeMode: "pause" | "game" | "miniGame";
elapsedGameTime: number;
elapsedPauseTime: number;
elapsedMiniGameTime: number;
isGamePaused: boolean;
gameTimeSpeed: number;
gameIsInBackground: boolean;
debugMessage: string;
latestSave: import("./global/global").PrendySaveState | null;
latestLoadTime: number;
slateZoom: number;
slateZoomGoal: number;
slateZoomIsMoving: boolean;
slateZoomMoveMode: import("repond-movers/src/types").MoveMode;
slateZoomMoveConfigName: string;
slateZoomMoveConfigs: Record;
slatePos: import("chootils/dist/points2d").Point2D;
slatePosGoal: import("chootils/dist/points2d").Point2D;
slatePosIsMoving: boolean;
slatePosMoveMode: import("repond-movers/src/types").MoveMode;
slatePosMoveConfigs: Record;
nowPlaceName: string;
goalPlaceName: string | null;
readyToSwapPlace: boolean;
isLoadingBetweenPlaces: boolean;
loadingOverlayToggled: boolean;
loadingOverlayFullyShowing: boolean;
goalCamWhenNextPlaceLoads: string | null;
goalCamNameAtLoop: string | null;
goalCamName: string | null;
nowCamName: string;
nowSegmentName: string;
goalSegmentName: string | null;
goalSegmentNameAtLoop: string | null;
goalSegmentWhenGoalPlaceLoads: string | null;
modelNamesLoaded: string[];
newPlaceModelLoaded: boolean;
newPlaceVideosLoaded: boolean;
newPlaceProbesLoaded: boolean;
playerCharacter: string;
gravityValue: number;
playerMovingPaused: boolean;
focusedDoll: any;
focusedDollIsInView: boolean;
};
getDefaultRefs: () => {
sounds: {
[x: string]: import("@babylonjs/core").Sound | null;
};
music: {
[x: string]: import("@babylonjs/core").Sound | null;
};
musicEffects: {
lowPass: BiquadFilterNode | null;
compress: DynamicsCompressorNode | null;
extraGain: GainNode | null;
};
solidParticleSystems: Record;
timerSpeed: number;
aConvoIsHappening_timeout: NodeJS.Timeout | null;
camSegmentRulesOptions: Partial<{
[x: string]: Partial<{
[x: string]: (usefulStuff: Record) => keyof string[];
}>;
}> | null;
onPickupButtonClick: ((pickupName: any) => void) | null;
slateZoomMoverRefs: {
velocity: number;
recentSpeeds: number[];
stateNames: {
value: "slateZoom";
valueGoal: "slateZoomGoal";
isMoving: "slateZoomIsMoving";
moveMode: "slateZoomMoveMode";
physicsConfigName: "slateZoomMoveConfigName" | undefined;
physicsConfigs: "slateZoomMoveConfigs" | undefined;
};
physicsConfigs: import("repond-movers/src/types").DefinedPhysicsConfig | undefined;
};
slatePosMoverRefs: {
velocity: import("chootils/dist/points2d").Point2D;
recentSpeeds: number[];
averageSpeed: number;
canRunOnSlow: boolean;
stateNames: {
value: "slatePos";
valueGoal: "slatePosGoal";
isMoving: "slatePosIsMoving";
moveMode: "slatePosMoveMode";
physicsConfigName: "slatePosMoveConfigName" | undefined;
physicsConfigs: "slatePosMoveConfigs" | undefined;
};
physicsConfigs: import("repond-movers/src/types").DefinedPhysicsConfig | undefined;
};
scene: import("@babylonjs/core").Scene | null;
backdropTex: import("@babylonjs/core").Texture | null;
backdropTexDepth: import("@babylonjs/core").Texture | null;
depthRenderer: import("@babylonjs/core").DepthRenderer | null;
depthRenderTarget: import("@babylonjs/core").RenderTargetTexture | null;
backdropPostProcess: import("@babylonjs/core").PostProcess | null;
backdropPostProcessEffect: import("@babylonjs/core").Effect | null;
fxaaPostProcess: import("@babylonjs/core").PostProcess | null;
stretchVideoSize: {
x: number;
y: number;
};
stretchVideoGoalSize: {
x: number;
y: number;
};
stretchSceneSize: {
x: number;
y: number;
};
};
};
models: {
startStates: { [K_ModelName in T_MyTypes["Types"]["ModelName"]]: {
wantToLoad: boolean;
isLoading: boolean;
isLoaded: boolean;
}; };
getDefaultState: (_modelName: T_ModelName) => {
wantToLoad: boolean;
isLoading: boolean;
isLoaded: boolean;
};
getDefaultRefs: (_modelName: T_ModelName_1) => {
container: import("@babylonjs/core").AssetContainer | null;
materialRef: import("@babylonjs/core").PBRMaterial | null;
materialRefs: import("@babylonjs/core").PBRMaterial[] | null;
};
};
dolls: {
startStates: {
[x: string]: {
toggledMeshes: Record;
nowAnimation: string;
animationLoops: boolean;
inRange: Record;
isVisible: boolean;
animWeights: Record;
animWeightsGoal: Record;
animWeightsIsMoving: boolean;
animWeightsMoveMode: import("repond-movers/src/types").MoveMode;
animWeightsMoveConfigName: string;
animWeightsMoveConfigs: Record;
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;
position: import("chootils/dist/points3d").Point3D;
positionGoal: import("chootils/dist/points3d").Point3D;
positionIsMoving: boolean;
positionMoveMode: import("repond-movers/src/types").MoveMode;
positionMoveConfigName: string;
positionMoveConfigs: Record;
modelName: any;
goalSpotNameAtNewPlace: string | null;
goalPositionAtNewPlace: import("chootils/dist/points3d").Point3D | null;
};
};
getDefaultState: (_dollName: T_DollName, modelName?: T_ModelName_2 | undefined) => {
toggledMeshes: Record;
nowAnimation: string;
animationLoops: boolean;
inRange: Record;
isVisible: boolean;
animWeights: Record;
animWeightsGoal: Record;
animWeightsIsMoving: boolean;
animWeightsMoveMode: import("repond-movers/src/types").MoveMode;
animWeightsMoveConfigName: string;
animWeightsMoveConfigs: Record;
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;
position: import("chootils/dist/points3d").Point3D;
positionGoal: import("chootils/dist/points3d").Point3D;
positionIsMoving: boolean;
positionMoveMode: import("repond-movers/src/types").MoveMode;
positionMoveConfigName: string;
positionMoveConfigs: Record;
modelName: T_ModelName_2;
goalSpotNameAtNewPlace: string | null;
goalPositionAtNewPlace: import("chootils/dist/points3d").Point3D | null;
};
getDefaultRefs: (dollName: T_DollName_1, itemState: {
toggledMeshes: Record;
nowAnimation: string;
animationLoops: boolean;
inRange: Record;
isVisible: boolean;
animWeights: Record;
animWeightsGoal: Record;
animWeightsIsMoving: boolean;
animWeightsMoveMode: import("repond-movers/src/types").MoveMode;
animWeightsMoveConfigName: string;
animWeightsMoveConfigs: Record;
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;
position: import("chootils/dist/points3d").Point3D;
positionGoal: import("chootils/dist/points3d").Point3D;
positionIsMoving: boolean;
positionMoveMode: import("repond-movers/src/types").MoveMode;
positionMoveConfigName: string;
positionMoveConfigs: Record;
modelName: any;
goalSpotNameAtNewPlace: string | null;
goalPositionAtNewPlace: import("chootils/dist/points3d").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;
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: import("chootils/dist/points3d").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: import("@babylonjs/core").AbstractMesh | null;
otherMeshes: Record;
entriesRef: import("@babylonjs/core").InstantiatedEntries | null;
aniGroupsRef: Record | null;
assetRefs: {
meshes: Record;
skeleton: import("@babylonjs/core").Skeleton;
bones: Record;
aniGroups: Record;
materials: Record;
} | null;
groundRef: import("@babylonjs/core").AbstractMesh | null;
canGoThroughWalls: boolean;
};
};
characters: {
startStates: {
[x: string]: {
dollName: any;
atTriggers: Partial>;
atCamCubes: Partial>;
hasLeftFirstTrigger: boolean;
};
};
getDefaultState: (_characterName: T_CharacterName, dollName?: T_DollName_2 | undefined) => {
dollName: T_DollName_2;
atTriggers: Partial>;
atCamCubes: Partial>;
hasLeftFirstTrigger: boolean;
};
getDefaultRefs: (_characterName: T_CharacterName_1) => {
testRef: null;
};
};
players: {
startStates: {
main: {
lastSafeInputAngle: number | null;
inputVelocity: import("chootils/dist/points2d").Point2D;
isJumping: boolean;
isOnGround: boolean;
canJump: boolean;
interactButtonPressTime: number;
jumpButtonPressTime: number;
jumpButtonReleaseTime: number;
pickupButtonPressTime: number;
virtualControlsPressTime: number;
virtualControlsReleaseTime: number;
canShowVirtualButtons: boolean;
animationNames: {
walking: T_MyTypes["Types"]["AnyAnimationName"];
idle: T_MyTypes["Types"]["AnyAnimationName"];
};
};
};
getDefaultState: () => {
lastSafeInputAngle: number | null;
inputVelocity: import("chootils/dist/points2d").Point2D;
isJumping: boolean;
isOnGround: boolean;
canJump: boolean;
interactButtonPressTime: number;
jumpButtonPressTime: number;
jumpButtonReleaseTime: number;
pickupButtonPressTime: number;
virtualControlsPressTime: number;
virtualControlsReleaseTime: number;
canShowVirtualButtons: boolean;
animationNames: {
walking: T_MyTypes["Types"]["AnyAnimationName"];
idle: T_MyTypes["Types"]["AnyAnimationName"];
};
};
getDefaultRefs: () => {
topWalkSpeed: number;
canJumpTimeout: NodeJS.Timeout | null;
canShowVirtualButtonsTimeout: NodeJS.Timeout | null;
canHideVirtualButtonsTimeout: NodeJS.Timeout | null;
};
};
speechBubbles: {
getDefaultState: (_itemId: T_ItemName_1, options?: {
font?: string | undefined;
character?: string | undefined;
} | undefined) => {
isVisible: boolean;
isFullyHidden: boolean;
goalText: string;
visibleLetterAmount: number;
typingSpeed: number;
stylesBySpecialText: Record;
_specialTextByLetterIndex: Record;
_goalTextWordLetterArrays: string[][];
forCharacter: string | null;
position: import("chootils/dist/points2d").Point2D;
typingFinished: boolean;
nowVideoName: string | null;
font: string;
zIndex: number;
};
getDefaultRefs: () => {
bubbleRef: any;
textRef: any;
currentTimeout: NodeJS.Timeout | null;
videoRef: HTMLVideoElement | null;
};
startStates: {
[x: string]: {
isVisible: boolean;
isFullyHidden: boolean;
goalText: string;
visibleLetterAmount: number;
typingSpeed: number;
stylesBySpecialText: Record;
_specialTextByLetterIndex: Record;
_goalTextWordLetterArrays: string[][];
forCharacter: string | null;
position: import("chootils/dist/points2d").Point2D;
typingFinished: boolean;
nowVideoName: string | null;
font: string;
zIndex: number;
};
};
};
places: {
startStates: {
[x: string]: {
toggledWalls: Record;
};
};
getDefaultState: (itemId: string | K_PlaceName) => {
toggledWalls: Record;
};
getDefaultRefs: (itemId: K_PlaceName_1) => {
rootMesh: import("@babylonjs/core").AbstractMesh | null;
spotPositions: import("src/types").SpotPositions;
spotRotations: import("src/types").SpotRotations;
soundspotSounds: import("src/types").SoundspotSounds;
triggerMeshes: import("src/types").TriggerMeshes;
wallMeshes: import("src/types").WallMeshes;
camsRefs: import("./places").CameraRefs;
};
};
liveEventsStore: {
getDefaultState: () => {
id: string;
chainId: string;
event: import("repond-events").EventNodeLoose;
isParallel: boolean;
addedBy: string | null;
runBy: string | null;
nowRunMode: import("repond-events").RunMode | null;
runModeOptionsWhenReady: import("repond-events").RunModeOptions | null;
runModeBeforePause: import("repond-events").RunMode | null;
runModeBeforeSuspend: import("repond-events").RunMode | null;
addTime: number | null;
readyTime: number | null;
startTime: number | null;
goalEndTime: number;
pauseTime: number | null;
suspendTime: number | null;
unpauseTime: number | null;
unsuspendTime: number | null;
elapsedTimePath: import("repond-events").TimePathArray | null;
};
getDefaultRefs: () => {};
startStates: import("repond").InitialItemsState<() => {
id: string;
chainId: string;
event: import("repond-events").EventNodeLoose;
isParallel: boolean;
addedBy: string | null;
runBy: string | null;
nowRunMode: import("repond-events").RunMode | null;
runModeOptionsWhenReady: import("repond-events").RunModeOptions | null;
runModeBeforePause: import("repond-events").RunMode | null;
runModeBeforeSuspend: import("repond-events").RunMode | null;
addTime: number | null;
readyTime: number | null;
startTime: number | null;
goalEndTime: number;
pauseTime: number | null;
suspendTime: number | null;
unpauseTime: number | null;
unsuspendTime: number | null;
elapsedTimePath: import("repond-events").TimePathArray | null;
}>;
};
chainsStore: {
getDefaultState: () => {
id: string;
liveEventIds: string[];
canAutoActivate: boolean;
duplicateEventsToAdd: Record;
};
getDefaultRefs: () => {};
startStates: import("repond").InitialItemsState<() => {
id: string;
liveEventIds: string[];
canAutoActivate: boolean;
duplicateEventsToAdd: Record;
}>;
};
};