chromatic-lattice/src/typings/player.d.ts

69 lines
1.9 KiB
TypeScript

import { Themes } from "@/data/themes";
import { DecimalSource } from "@/lib/break_eternity";
import Decimal from "@/util/bignum";
import { BoardData } from "./features/board";
import { MilestoneDisplay } from "./features/milestone";
import { State } from "./state";
export interface ModSaveData {
active?: string;
saves?: string[];
}
export interface PlayerData {
id: string;
devSpeed?: DecimalSource;
points: Decimal;
oomps: Decimal;
oompsMag: number;
name: string;
tabs: Array<string>;
time: number;
autosave: boolean;
offlineProd: boolean;
offlineTime: Decimal | null;
timePlayed: Decimal;
keepGoing: boolean;
lastTenTicks: Array<number>;
showTPS: boolean;
msDisplay: MilestoneDisplay;
hideChallenges: boolean;
theme: Themes;
subtabs: {
[index: string]: {
mainTabs?: string;
[index: string]: string;
};
};
minimized: Record<string, boolean>;
modID: string;
modVersion: string;
justLoaded: boolean;
hasNaN: boolean;
NaNPath?: Array<string>;
NaNReceiver?: Record<string, unknown> | null;
importing: ImportingStatus;
saveToImport: string;
saveToExport: string;
layers: Record<string, LayerSaveData>;
[index: string]: unknown;
}
export interface LayerSaveData {
points: Decimal;
unlocked: boolean;
unlockOrder?: number;
forceTooltip?: boolean;
resetTime: Decimal;
upgrades: Array<string | number>;
achievements: Array<string | number>;
milestones: Array<string | number>;
infoboxes: Record<string, boolean>;
buyables: Record<string, Decimal>;
clickables: Record<string, State>;
challenges: Record<string, Decimal>;
grids: Record<string, Record<string, State>>;
boards: Record<string, BoardData>;
confirmRespecBuyables: boolean;
[index: string]: unknown;
}