diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15fb588d..176ec855 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,7 +63,7 @@ importers: version: 4.18.2 flying-squid: specifier: github:zardoy/space-squid#everything - version: github.com/zardoy/space-squid/acf7b6f8cbcc204007eed767eb52a527a85b3ab0 + version: github.com/zardoy/space-squid/bdf1e0859ad435bf722e5b7794b84a50b84c5c7f fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -211,7 +211,7 @@ importers: version: github.com/zardoy/minecraft-inventory-gui/c1331c91fb39bd562dc48eeb33321240d4870edd(@types/react@18.2.20)(react@18.2.0) mineflayer: specifier: github:zardoy/mineflayer#custom - version: github.com/zardoy/mineflayer/66e34da4a02381a6a45582afe0d3bfab6dba60c6 + version: github.com/zardoy/mineflayer/e828c161aab120f2d926fba48de3b4d57c361710 mineflayer-pathfinder: specifier: ^2.4.4 version: 2.4.4 @@ -14391,8 +14391,8 @@ packages: - encoding - supports-color - github.com/zardoy/mineflayer/66e34da4a02381a6a45582afe0d3bfab6dba60c6: - resolution: {tarball: https://codeload.github.com/zardoy/mineflayer/tar.gz/66e34da4a02381a6a45582afe0d3bfab6dba60c6} + github.com/zardoy/mineflayer/e828c161aab120f2d926fba48de3b4d57c361710: + resolution: {tarball: https://codeload.github.com/zardoy/mineflayer/tar.gz/e828c161aab120f2d926fba48de3b4d57c361710} name: mineflayer version: 4.14.0 engines: {node: '>=14'} @@ -14467,8 +14467,8 @@ packages: - utf-8-validate dev: false - github.com/zardoy/space-squid/acf7b6f8cbcc204007eed767eb52a527a85b3ab0: - resolution: {tarball: https://codeload.github.com/zardoy/space-squid/tar.gz/acf7b6f8cbcc204007eed767eb52a527a85b3ab0} + github.com/zardoy/space-squid/bdf1e0859ad435bf722e5b7794b84a50b84c5c7f: + resolution: {tarball: https://codeload.github.com/zardoy/space-squid/tar.gz/bdf1e0859ad435bf722e5b7794b84a50b84c5c7f} name: flying-squid version: 1.5.0 engines: {node: '>=8'} diff --git a/src/controls.ts b/src/controls.ts index 7ae63b43..c4278882 100644 --- a/src/controls.ts +++ b/src/controls.ts @@ -232,11 +232,12 @@ document.addEventListener('keydown', (e) => { if (localServer) { localServer.players[0].world.columns = {} } - reloadChunks() + void reloadChunks() } if (e.code === 'KeyG') { // todo make it work without reload options.showChunkBorders = !options.showChunkBorders + void reloadChunks() } return } diff --git a/src/globalState.ts b/src/globalState.ts index e6183bd8..0feb91b9 100644 --- a/src/globalState.ts +++ b/src/globalState.ts @@ -2,7 +2,8 @@ import { proxy, ref, subscribe } from 'valtio' import { pointerLock } from './utils' -import { OptionsGroupType, options } from './optionsStorage' +import { options } from './optionsStorage' +import type { OptionsGroupType } from './optionsGuiScheme' // todo: refactor structure with support of hideNext=false diff --git a/src/globals.d.ts b/src/globals.d.ts index 770020c6..dd6bf4d1 100644 --- a/src/globals.d.ts +++ b/src/globals.d.ts @@ -7,6 +7,9 @@ declare const __type_bot: typeof bot declare const viewer: import('prismarine-viewer/viewer/lib/viewer').Viewer | undefined declare const worldView: import('prismarine-viewer/viewer/lib/worldDataEmitter').WorldDataEmitter | undefined declare const localServer: any +/** all currently loaded mc data */ +declare const mcData: Record +declare const loadedData: import('minecraft-data').IndexedData declare interface Document { getElementById (id): any diff --git a/src/optionsStorage.tsx b/src/optionsGuiScheme.tsx similarity index 56% rename from src/optionsStorage.tsx rename to src/optionsGuiScheme.tsx index cf58b676..f43be7b8 100644 --- a/src/optionsStorage.tsx +++ b/src/optionsGuiScheme.tsx @@ -1,73 +1,19 @@ -// todo implement async options storage - -import { proxy, subscribe } from 'valtio/vanilla' -// weird webpack configuration bug: it cant import valtio/utils in this file -import { subscribeKey } from 'valtio/utils' import { useState } from 'react' import { useSnapshot } from 'valtio' -import { OptionMeta, OptionSlider } from './react/OptionsItems' -import Button from './react/Button' -import { openOptionsMenu } from './globalState' +import { isGameActive, openOptionsMenu } from './globalState' import { openURL } from './menus/components/common' +import { AppOptions, options } from './optionsStorage' +import Button from './react/Button' +import { OptionMeta } from './react/OptionsItems' import Slider from './react/Slider' -import { getScreenRefreshRate } from './utils' +import { getScreenRefreshRate, openFilePicker, setLoadingScreenStatus } from './utils' +import { getResourcePackName, resourcePackState, uninstallTexturePack } from './texturePack' +import { fsState } from './loadSave' -const mergeAny: (arg1: T, arg2: any) => T = Object.assign - -const defaultOptions = { - renderDistance: 4, - closeConfirmation: true, - autoFullScreen: false, - mouseRawInput: false, - autoExitFullscreen: false, - localUsername: 'wanderer', - mouseSensX: 50, - mouseSensY: 50 as number | true, - // mouseInvertX: false, - chatWidth: 320, - chatHeight: 180, - chatScale: 100, - volume: 50, - // fov: 70, - fov: 75, - guiScale: 3, - autoRequestCompletions: true, - touchButtonsSize: 40, - highPerformanceGpu: false, - - showChunkBorders: false, - frameLimit: false as number | false, - alwaysBackupWorldBeforeLoading: undefined as boolean | undefined | null, - alwaysShowMobileControls: false, - maxMultiplayerRenderDistance: null as number | null, - excludeCommunicationDebugEvents: [], - preventDevReloadWhilePlaying: false, - numWorkers: 4, - localServerOptions: {} as any, - preferLoadReadonly: false, - disableLoadPrompts: false, - guestUsername: 'guest', - askGuestName: true, - - // advanced bot options - autoRespawn: false -} - -export type AppOptions = typeof defaultOptions - -export type OptionsGroupType = 'main' | 'render' | 'interface' | 'controls' | 'sound' | 'advanced' -// todo refactor to separate file like optionsGUI.tsx export const guiOptionsScheme: { [t in OptionsGroupType]: Array<{ [k in keyof AppOptions]?: Partial } & { custom?}> } = { render: [ - { - renderDistance: { - unit: '', - min: 2, - max: 16 - }, - }, { custom () { const frameLimitValue = useSnapshot(options).frameLimit @@ -106,8 +52,10 @@ export const guiOptionsScheme: { } }, { - custom () { - return