UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

49 lines 1.48 kB
import { Reactive } from "@lincode/reactivity"; import { merge } from "@lincode/utils"; import Appendable from "../display/core/Appendable"; import { gameGraphDefaults, gameGraphSchema } from "../interface/IGameGraph"; class GameGraph extends Appendable { static componentName = "gameGraph"; static defaults = gameGraphDefaults; static schema = gameGraphSchema; constructor() { super(); this.createEffect(() => { const paused = this.pausedState.get(); if (paused) return; }, [this.pausedState.get]); } gameGraphDataState = new Reactive([{}]); get data() { return this.gameGraphDataState.get()[0]; } set data(val) { this.gameGraphDataState.set([val]); } mergeData(data) { const [prevData] = this.gameGraphDataState.get(); if (!prevData) { this.gameGraphDataState.set([data]); return; } merge(prevData, data); this.gameGraphDataState.set([prevData]); } deleteData(uuid) { const [prevData] = this.gameGraphDataState.get(); if (!prevData) return; delete prevData[uuid]; this.gameGraphDataState.set([prevData]); } pausedState = new Reactive(false); get paused() { return this.pausedState.get(); } set paused(val) { this.pausedState.set(val); } } export default GameGraph; //# sourceMappingURL=GameGraph.js.map