UNPKG

lingo3d

Version:

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

52 lines 1.87 kB
import scene from "../../engine/scene"; import { getEditorHelper } from "../../states/useEditorHelper"; import HelperSprite from "./utils/HelperSprite"; import ObjectManager from "./ObjectManager"; import { ssrExcludeSet } from "../../collections/ssrExcludeSet"; import { renderCheckExcludeSet } from "../../collections/renderCheckExcludeSet"; import { updateSystem } from "../../systems/updateSystem"; export default class LightBase extends ObjectManager { constructor(light, Helper) { super(light); this.createEffect(() => { if (!getEditorHelper() || this.$disableSceneGraph) return; const sprite = new HelperSprite("light", this); if (Helper) { const helper = new Helper(light); ssrExcludeSet.add(helper); renderCheckExcludeSet.add(helper); scene.add(helper); helper.add(sprite.outerObject3d); "update" in helper && updateSystem.add(helper); sprite.then(() => { helper.dispose(); ssrExcludeSet.delete(helper); renderCheckExcludeSet.delete(helper); scene.remove(helper); "update" in helper && updateSystem.delete(helper); }); } return () => { sprite.dispose(); }; }, [getEditorHelper]); } disposeNode() { super.disposeNode(); this.object3d.dispose(); } get color() { return ("#" + this.object3d.color.getHexString()); } set color(val) { this.object3d.color.set(val); } get intensity() { return this.object3d.intensity; } set intensity(val) { this.object3d.intensity = val; } } //# sourceMappingURL=LightBase.js.map