///
import { DepthRenderer, Effect, PostProcess, RenderTargetTexture, Scene, SolidParticleSystem, Texture } from "@babylonjs/core";
import { Point3D } from "chootils/dist/points3d";
import { MyTypes } from "../../declarations";
import { InRangeForDoll } from "../../helpers/prendyUtils/dolls";
export type PrendySaveState = {
global: {
nowCamName: string;
nowPlaceName: string;
nowSegmentName: string;
heldPickups: string[];
storyOverlayToggled: boolean;
alarmTextIsVisible: boolean;
alarmText: string;
aSpeechBubbleIsShowing: boolean;
aConvoIsHappening: boolean;
};
dolls: Record;
inRange: Record;
nowAnimation: string;
}>;
places: Record;
}>;
characters: Record;
player: {
animationNames: {
walking: string;
idle: string;
};
};
miniBubbles: Record;
speechBubbles: Record;
storyState: Record;
};
export declare const timeStatePath: readonly ["global", "main", "elapsedGameTime"];
export default function global(prendyAssets: T_MyTypes["Assets"]): {
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: 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: 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: Scene | null;
backdropTex: Texture | null;
backdropTexDepth: Texture | null;
depthRenderer: DepthRenderer | null;
depthRenderTarget: RenderTargetTexture | null;
backdropPostProcess: PostProcess | null;
backdropPostProcessEffect: Effect | null;
fxaaPostProcess: PostProcess | null;
stretchVideoSize: {
x: number;
y: number;
};
stretchVideoGoalSize: {
x: number;
y: number;
};
stretchSceneSize: {
x: number;
y: number;
};
};
};