From 6009d521395cfa1b64b0807664a017c8a0a75cad Mon Sep 17 00:00:00 2001 From: goynov Date: Sat, 4 Apr 2026 10:57:43 +0300 Subject: [PATCH] massive interactive objects refactoring --- .../{ => CharacterObject}/CharacterObject.js | 0 .../{ => CharacterObject}/CharacterObject.vue | 0 .../{ => ClassicPuzzle}/ClassicPuzzle.js | 0 .../{ => ClassicPuzzle}/ClassicPuzzle.vue | 0 .../{ => GenericObject}/GenericObject.js | 0 .../{ => GenericObject}/GenericObject.vue | 0 .../{ => ImageObject}/ImageObject.js | 4 +++ .../ImageObject/ImageObject.vue | 34 +++++++++++++++++++ .../InteractiveObjects/InteractiveObject.js | 26 +++++++------- .../MazeQuizGame/MazeQuizGame.vue | 2 +- .../PairMatchingGame.js | 0 .../PairMatchingGame.vue | 0 .../{ => Particles}/Particles.js | 0 .../{ => Particles}/Particles.vue | 0 .../{ => PuzzleGame1}/PuzzleGame1.js | 0 .../{ => PuzzleGame1}/PuzzleGame1.vue | 0 .../{ => PuzzleGame2}/PuzzleGame2.js | 0 .../{ => PuzzleGame2}/PuzzleGame2.vue | 0 .../{ => SceneSwitcher}/SceneSwitcher.js | 0 .../{ => SceneSwitcher}/SceneSwitcher.vue | 2 +- .../{ => SingleQuestion}/SingleQuestion.js | 2 +- .../{ => SingleQuestion}/SingleQuestion.vue | 0 .../{ => TextObject}/TextObject.js | 0 .../TextObject/TextObject.vue | 26 ++++++++++++++ .../{ => VideoPlayer}/VideoPlayer.js | 0 .../{ => VideoPlayer}/VideoPlayer.vue | 0 src/components/SceneDesigner/GameObject.vue | 24 +++++++------ src/lib/Dashboard.js | 2 +- src/lib/GameManager.js | 2 +- src/plugins/lang.js | 8 +++++ 30 files changed, 104 insertions(+), 28 deletions(-) rename src/components/InteractiveObjects/{ => CharacterObject}/CharacterObject.js (100%) rename src/components/InteractiveObjects/{ => CharacterObject}/CharacterObject.vue (100%) rename src/components/InteractiveObjects/{ => ClassicPuzzle}/ClassicPuzzle.js (100%) rename src/components/InteractiveObjects/{ => ClassicPuzzle}/ClassicPuzzle.vue (100%) rename src/components/InteractiveObjects/{ => GenericObject}/GenericObject.js (100%) rename src/components/InteractiveObjects/{ => GenericObject}/GenericObject.vue (100%) rename src/components/InteractiveObjects/{ => ImageObject}/ImageObject.js (89%) create mode 100644 src/components/InteractiveObjects/ImageObject/ImageObject.vue rename src/components/InteractiveObjects/{ => PairMatchingGame}/PairMatchingGame.js (100%) rename src/components/InteractiveObjects/{ => PairMatchingGame}/PairMatchingGame.vue (100%) rename src/components/InteractiveObjects/{ => Particles}/Particles.js (100%) rename src/components/InteractiveObjects/{ => Particles}/Particles.vue (100%) rename src/components/InteractiveObjects/{ => PuzzleGame1}/PuzzleGame1.js (100%) rename src/components/InteractiveObjects/{ => PuzzleGame1}/PuzzleGame1.vue (100%) rename src/components/InteractiveObjects/{ => PuzzleGame2}/PuzzleGame2.js (100%) rename src/components/InteractiveObjects/{ => PuzzleGame2}/PuzzleGame2.vue (100%) rename src/components/InteractiveObjects/{ => SceneSwitcher}/SceneSwitcher.js (100%) rename src/components/InteractiveObjects/{ => SceneSwitcher}/SceneSwitcher.vue (95%) rename src/components/InteractiveObjects/{ => SingleQuestion}/SingleQuestion.js (95%) rename src/components/InteractiveObjects/{ => SingleQuestion}/SingleQuestion.vue (100%) rename src/components/InteractiveObjects/{ => TextObject}/TextObject.js (100%) create mode 100644 src/components/InteractiveObjects/TextObject/TextObject.vue rename src/components/InteractiveObjects/{ => VideoPlayer}/VideoPlayer.js (100%) rename src/components/InteractiveObjects/{ => VideoPlayer}/VideoPlayer.vue (100%) diff --git a/src/components/InteractiveObjects/CharacterObject.js b/src/components/InteractiveObjects/CharacterObject/CharacterObject.js similarity index 100% rename from src/components/InteractiveObjects/CharacterObject.js rename to src/components/InteractiveObjects/CharacterObject/CharacterObject.js diff --git a/src/components/InteractiveObjects/CharacterObject.vue b/src/components/InteractiveObjects/CharacterObject/CharacterObject.vue similarity index 100% rename from src/components/InteractiveObjects/CharacterObject.vue rename to src/components/InteractiveObjects/CharacterObject/CharacterObject.vue diff --git a/src/components/InteractiveObjects/ClassicPuzzle.js b/src/components/InteractiveObjects/ClassicPuzzle/ClassicPuzzle.js similarity index 100% rename from src/components/InteractiveObjects/ClassicPuzzle.js rename to src/components/InteractiveObjects/ClassicPuzzle/ClassicPuzzle.js diff --git a/src/components/InteractiveObjects/ClassicPuzzle.vue b/src/components/InteractiveObjects/ClassicPuzzle/ClassicPuzzle.vue similarity index 100% rename from src/components/InteractiveObjects/ClassicPuzzle.vue rename to src/components/InteractiveObjects/ClassicPuzzle/ClassicPuzzle.vue diff --git a/src/components/InteractiveObjects/GenericObject.js b/src/components/InteractiveObjects/GenericObject/GenericObject.js similarity index 100% rename from src/components/InteractiveObjects/GenericObject.js rename to src/components/InteractiveObjects/GenericObject/GenericObject.js diff --git a/src/components/InteractiveObjects/GenericObject.vue b/src/components/InteractiveObjects/GenericObject/GenericObject.vue similarity index 100% rename from src/components/InteractiveObjects/GenericObject.vue rename to src/components/InteractiveObjects/GenericObject/GenericObject.vue diff --git a/src/components/InteractiveObjects/ImageObject.js b/src/components/InteractiveObjects/ImageObject/ImageObject.js similarity index 89% rename from src/components/InteractiveObjects/ImageObject.js rename to src/components/InteractiveObjects/ImageObject/ImageObject.js index 7c529d9..61cd49e 100644 --- a/src/components/InteractiveObjects/ImageObject.js +++ b/src/components/InteractiveObjects/ImageObject/ImageObject.js @@ -3,6 +3,10 @@ import { MeshStandardMaterial, MeshBasicMaterial, PlaneGeometry, Mesh, DoubleSid class ImageObject { constructor(engine, obj) { return new Promise(async(resolve, reject)=>{ + if (obj.$go){ + obj.path = engine.assetPath; + obj.value = obj.$go.asset.name; + } var t = await engine.loadTexture(obj.value, obj.path) var mp = { map: t, diff --git a/src/components/InteractiveObjects/ImageObject/ImageObject.vue b/src/components/InteractiveObjects/ImageObject/ImageObject.vue new file mode 100644 index 0000000..6bf33f8 --- /dev/null +++ b/src/components/InteractiveObjects/ImageObject/ImageObject.vue @@ -0,0 +1,34 @@ + + + \ No newline at end of file diff --git a/src/components/InteractiveObjects/InteractiveObject.js b/src/components/InteractiveObjects/InteractiveObject.js index 452bd4d..b9b4874 100644 --- a/src/components/InteractiveObjects/InteractiveObject.js +++ b/src/components/InteractiveObjects/InteractiveObject.js @@ -1,24 +1,24 @@ import { Group, MeshStandardMaterial, Mesh, SphereGeometry, Vector3 } from "three"; import { EventManager } from '@/lib/EventManager'; -import { GenericObject } from "./GenericObject"; -import { TextObject } from "./TextObject"; -import { ImageObject } from "./ImageObject"; +import { GenericObject } from "./GenericObject/GenericObject"; +import { TextObject } from "./TextObject/TextObject"; +import { ImageObject } from "./ImageObject/ImageObject"; import { GltfObject } from "./GltfObject"; -import { CharacterObject } from "./CharacterObject"; -import { VideoPlayer } from "./VideoPlayer"; -import { PuzzleGame1 } from "./PuzzleGame1"; -import { PuzzleGame2 } from "./PuzzleGame2"; +import { CharacterObject } from "./CharacterObject/CharacterObject"; +import { VideoPlayer } from "./VideoPlayer/VideoPlayer"; +import { PuzzleGame1 } from "./PuzzleGame1/PuzzleGame1"; +import { PuzzleGame2 } from "./PuzzleGame2/PuzzleGame2"; // import { Game3 } from "./games/Game3"; import { PuzzleGame4 } from "./PuzzleGame4"; -import { ClassicPuzzle } from "./ClassicPuzzle"; -import { PairMatchingGame } from "./PairMatchingGame"; -import { SingleQuestion } from "./SingleQuestion"; +import { ClassicPuzzle } from "./ClassicPuzzle/ClassicPuzzle"; +import { PairMatchingGame } from "./PairMatchingGame/PairMatchingGame"; +import { SingleQuestion } from "./SingleQuestion/SingleQuestion"; // import { Game5 } from "./games/Game5"; // import { Game6 } from "./games/Game6"; import { MazeQuizGame } from "./MazeQuizGame/MazeQuizGame"; -import { Particles } from "./Particles"; -import { SceneSwitcher } from "./SceneSwitcher"; +import { Particles } from "./Particles/Particles"; +import { SceneSwitcher } from "./SceneSwitcher/SceneSwitcher"; import { GameEngine } from "@/lib/GameEngine"; const InteractiveObjectsImports = { @@ -174,6 +174,8 @@ const InteractiveObjectTypes = [ 'VideoPlayer', 'Particles', 'SceneSwitcher', + 'TextObject', + 'ImageObject' ]; export { InteractiveObject, InteractiveObjectTypes, InteractiveObjectsImports } \ No newline at end of file diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue index 17845bd..346fb3c 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue @@ -47,7 +47,7 @@ \ No newline at end of file diff --git a/src/components/InteractiveObjects/VideoPlayer.js b/src/components/InteractiveObjects/VideoPlayer/VideoPlayer.js similarity index 100% rename from src/components/InteractiveObjects/VideoPlayer.js rename to src/components/InteractiveObjects/VideoPlayer/VideoPlayer.js diff --git a/src/components/InteractiveObjects/VideoPlayer.vue b/src/components/InteractiveObjects/VideoPlayer/VideoPlayer.vue similarity index 100% rename from src/components/InteractiveObjects/VideoPlayer.vue rename to src/components/InteractiveObjects/VideoPlayer/VideoPlayer.vue diff --git a/src/components/SceneDesigner/GameObject.vue b/src/components/SceneDesigner/GameObject.vue index e455711..9828b6c 100644 --- a/src/components/SceneDesigner/GameObject.vue +++ b/src/components/SceneDesigner/GameObject.vue @@ -46,23 +46,25 @@