mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
43 lines (39 loc) • 1.14 kB
text/typescript
import setupStruct from "../engine/setupStruct"
import ISetup, { setupSchema } from "../interface/ISetup"
import { AutoMount, getAutoMount, setAutoMount } from "../states/useAutoMount"
import {
getFirstLoadBeforeRender,
setFirstLoadBeforeRender
} from "../states/useFirstLoadBeforeRender"
import { refreshSetupStack } from "../states/useSetupStack"
const settings: Partial<ISetup> & {
autoMount: AutoMount
firstLoadBeforeRender: boolean
} = {
get autoMount() {
return getAutoMount()
},
set autoMount(value) {
setAutoMount(value)
},
get firstLoadBeforeRender() {
return getFirstLoadBeforeRender()
},
set firstLoadBeforeRender(value) {
setFirstLoadBeforeRender(value)
}
}
export default settings
export const finalSetup: Record<string, any> = {}
for (const key of Object.keys(setupSchema))
Object.defineProperty(settings, key, {
get() {
// @ts-ignore
return setupStruct[key]
},
set(value) {
finalSetup[key] = value
refreshSetupStack()
},
enumerable: true
})