lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
49 lines • 1.48 kB
JavaScript
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