From 50d7d44f1690e4a3286b2dddba4fbdf416f72ef0 Mon Sep 17 00:00:00 2001 From: wil Date: Wed, 27 Mar 2024 12:44:31 -0400 Subject: [PATCH 1/2] preliminarily, this should work --- .../comps/ControlsTopButtons/ControlsTopButtons.tsx | 4 ++-- app/pages/PageEnigma/contexts/EngineProvider.tsx | 13 ++++++++++--- app/pages/PageEnigma/js/editor.js | 13 ++++++++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx b/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx index 65af5650f3..5828f7075b 100644 --- a/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx +++ b/app/pages/PageEnigma/comps/ControlsTopButtons/ControlsTopButtons.tsx @@ -9,7 +9,7 @@ export const ControlsTopButtons = () => { const handleButtonSave = () => { console.log(`SceneName is ${sceneName}`); - // editorEngine?.save(); + editorEngine?.save(); }; const handleButtonCameraView = () => { @@ -24,7 +24,7 @@ export const ControlsTopButtons = () => { }; const handleButtonRender = () => { console.log("Saving GLB to server for reference"); - editorEngine._upload_for_testing(); + editorEngine?._upload_for_testing(); //editorEngine?.togglePlayback(); }; const handleButtonPlay = () => {}; diff --git a/app/pages/PageEnigma/contexts/EngineProvider.tsx b/app/pages/PageEnigma/contexts/EngineProvider.tsx index 7f40dc4976..1ddcfffec2 100644 --- a/app/pages/PageEnigma/contexts/EngineProvider.tsx +++ b/app/pages/PageEnigma/contexts/EngineProvider.tsx @@ -1,13 +1,18 @@ -import { ReactNode, useEffect, useRef, useState } from "react"; -import { EngineContext } from "./EngineContext"; +import { ReactNode, useContext, useEffect, useState } from "react"; + import Editor from "~/pages/PageEnigma/js/editor"; +import { EngineContext } from "./EngineContext"; +import { AppUiContext } from "./AppUiContext"; + + interface Props { children: ReactNode; } export const EngineProvider = ({ children }: Props) => { const [editor, setEditor] = useState(null); + const [appUiState, dispatchAppUiState] = useContext(AppUiContext); useEffect(() => { //componentDidMount @@ -19,7 +24,9 @@ export const EngineProvider = ({ children }: Props) => { ); } else { const editor = new Editor(); - editor.initialize(); + editor.initialize({ + dispatchAppUiState + }); setEditor(editor); } }, []); diff --git a/app/pages/PageEnigma/js/editor.js b/app/pages/PageEnigma/js/editor.js index c8b2b04515..73fe2e7f25 100644 --- a/app/pages/PageEnigma/js/editor.js +++ b/app/pages/PageEnigma/js/editor.js @@ -22,6 +22,7 @@ import { LipSync } from "./lipsync.js"; import { LipSyncEngine } from "./lip_sync_engine.ts"; import { AnimationEngine } from "./animation_engine.ts"; import { faL } from "@fortawesome/pro-solid-svg-icons"; +import { ACTION_TYPES } from "../reducer/types.js"; if (typeof window !== "undefined") { import("ccapture.js") @@ -117,7 +118,12 @@ class Editor { } // Initializes the main scene and ThreeJS essentials. - initialize() { + /* + config :{ + appUiDispatcher: dispatch function to react app + } + */ + initialize(config) { if (this.can_initailize == false) { return; } @@ -164,6 +170,8 @@ class Editor { this.timeline.scene = this.activeScene; + // setup Callbacks to ReactLand + this.appUiDispatcher = config.appUiDispatcher; this._test_demo() } @@ -377,6 +385,9 @@ class Editor { //this.audio_engine.playClip("m_f7jnwt3d1ddchatdk5vaqt0n4mb1hg"); //console.log(this.selected); + this.appUiDispatcher({ + type: ACTION_TYPES.SHOW_EDITOR_LOADER + }); if (this.selected == null) { return; } From d2dd08aec496cbf4987b53ff932b6a2182a30260 Mon Sep 17 00:00:00 2001 From: wil Date: Wed, 27 Mar 2024 13:43:39 -0400 Subject: [PATCH 2/2] hide loader comment --- app/pages/PageEnigma/js/editor.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/pages/PageEnigma/js/editor.js b/app/pages/PageEnigma/js/editor.js index d0a0412246..055eff14a6 100644 --- a/app/pages/PageEnigma/js/editor.js +++ b/app/pages/PageEnigma/js/editor.js @@ -131,6 +131,7 @@ class Editor { return; } this.can_initailize == false; + // Gets the canvas. this.canvReference = document.getElementById("video-scene"); // Base width and height. @@ -393,6 +394,11 @@ class Editor { type: ACTION_TYPES.SHOW_EDITOR_LOADER }); + + // this.dispatchAppUiState({ + // type: ACTION_TYPES.HIDE_EDITOR_LOADER + // }); + if (this.selected == null) { return; }