import { GameState } from "../core/game_state";
import { cachebust } from "../core/cachebust";
import { globalConfig } from "../core/config";
import {
makeDiv,
formatSecondsToTimeAgo,
generateFileDownload,
waitNextFrame,
isSupportedBrowser,
} from "../core/utils";
import { ReadWriteProxy } from "../core/read_write_proxy";
import { HUDModalDialogs } from "../game/hud/parts/modal_dialogs";
import { T } from "../translations";
export class MainMenuState extends GameState {
constructor() {
super("MainMenuState");
}
getInnerHTML() {
const bannerHtml = `
${
G_IS_STANDALONE
? ""
: `
${bannerHtml}
`
}
${
isSupportedBrowser()
? ""
: `
${T.mainMenu.browserWarning}
`
}
${
G_IS_STANDALONE
? ""
: `
${bannerHtml}
`
}
`;
}
requestImportSavegame() {
var input = document.createElement("input");
input.type = "file";
input.accept = ".bin";
input.onchange = e => {
const file = input.files[0];
if (file) {
waitNextFrame().then(() => {
this.app.analytics.trackUiClick("import_savegame");
const closeLoader = this.dialogs.showLoadingDialog();
const reader = new FileReader();
reader.addEventListener("load", event => {
const contents = event.target.result;
let realContent;
try {
realContent = ReadWriteProxy.deserializeObject(contents);
} catch (err) {
closeLoader();
this.dialogs.showWarning(
T.dialogs.importSavegameError.title,
T.dialogs.importSavegameError.text + "