@@ -2,9 +2,11 @@ import { Button, Stack } from "@mui/material"
22import type React from "react"
33import { useLayoutEffect } from "react"
44import { globalAddToast } from "@/components/GlobalUIControls.ts"
5+ import MirabufCachingService , { MiraType } from "@/mirabuf/MirabufLoader"
56import type { ModalImplProps } from "../components/Modal"
67import { useStateContext } from "../helpers/StateProviderHelpers"
78import { CloseType , useUIContext } from "../helpers/UIProviderHelpers"
9+ import { spawnCachedMira } from "../panels/mirabuf/ImportMirabufPanel"
810
911interface MainMenuCustomProps {
1012 startSingleplayerCallback : ( ) => void
@@ -36,6 +38,24 @@ const MainMenuModal: React.FC<ModalImplProps<void, MainMenuCustomProps>> = ({ mo
3638 >
3739 Singleplayer
3840 </ Button >
41+ < Button
42+ onClick = { ( ) => {
43+ closeModal ( CloseType . Accept )
44+ startSingleplayerCallback ( )
45+ Promise . all ( [
46+ MirabufCachingService . cacheRemote ( "/api/mira/fields/FRC Field 2023_v7.mira" , MiraType . FIELD ) ,
47+ MirabufCachingService . cacheRemote ( "/api/mira/robots/Dozer_v9.mira" , MiraType . ROBOT ) ,
48+ ] ) . then ( ( [ cachedField , cachedRobot ] ) => {
49+ if ( cachedField && cachedRobot ) {
50+ spawnCachedMira ( cachedField , MiraType . FIELD )
51+ spawnCachedMira ( cachedRobot , MiraType . ROBOT )
52+ }
53+ } )
54+ } }
55+ className = "my-1"
56+ >
57+ Load Default
58+ </ Button >
3959 < Button
4060 onClick = { ( ) => {
4161 globalAddToast ( "error" , "Not Supported" , "Multiplayer is not yet supported. Come back soon!" )
0 commit comments