diff --git a/src/controllers/base.ts b/src/controllers/base.ts index 7cebda7..a25a680 100644 --- a/src/controllers/base.ts +++ b/src/controllers/base.ts @@ -167,14 +167,13 @@ export class Base { } private toolboxHandleWasGrabbed(mesh: AbstractMesh): boolean { - if (isDiagramEntity(mesh) - && mesh?.metadata?.handle == true) { + if (isDiagramEntity(mesh)) { this.grabbedMesh = null; this.previousParentId = null; mesh.setParent(null); - return true; - } else { return false; + } else { + return (mesh?.metadata?.handle == true); } } private drop() { diff --git a/src/diagram/functions/diagramEventHandler.ts b/src/diagram/functions/diagramEventHandler.ts index 390338d..ccf3d0e 100644 --- a/src/diagram/functions/diagramEventHandler.ts +++ b/src/diagram/functions/diagramEventHandler.ts @@ -39,10 +39,9 @@ export function diagramEventHandler(event: DiagramEvent, switch (event.type) { case DiagramEventType.RESET: - - scene.getNodes().forEach((m) => { - if (m?.metadata?.template && !m?.metadata?.tool) { - m.dispose(); + scene.getNodes().forEach((node) => { + if (node?.metadata?.template && !node?.metadata?.tool) { + node.dispose(); } }); break; diff --git a/src/menus/diagramListingMenu.ts b/src/menus/diagramListingMenu.ts index 534e269..c436c95 100644 --- a/src/menus/diagramListingMenu.ts +++ b/src/menus/diagramListingMenu.ts @@ -16,12 +16,9 @@ export class DiagramListingMenu extends AbstractMenu { constructor(scene: Scene, xr: WebXRDefaultExperience, controllers: Controllers, diagramManager: DiagramManager) { super(scene, xr, controllers); this.diagramManager = diagramManager; - - this.buildMenu(); this.controllers.controllerObserver.add((event) => { if (event.type == ControllerEventType.B_BUTTON) { - this.toggle(); } }); @@ -47,6 +44,8 @@ export class DiagramListingMenu extends AbstractMenu { height: .5 }, this.scene); this.mesh = configPlane; + this.createHandle(this.mesh); + this.mesh.position = new Vector3(0, .32, 0); const configTexture = AdvancedDynamicTexture.CreateForMesh(configPlane, 2048, 1024); configTexture.background = "white"; @@ -55,8 +54,7 @@ export class DiagramListingMenu extends AbstractMenu { this.panel = new StackPanel('diagramListingStack'); scrollViewer.addControl(this.panel); - this.createHandle(configPlane); - configPlane.position.y = .5; + //configPlane.position.y = .5; setMenuPosition(this.handle.mesh, this.scene, new Vector3(0, .4, 0)); this.mesh.isVisible = false; (this.mesh.parent as AbstractMesh).isVisible = false; diff --git a/src/util/customEnvironment.ts b/src/util/customEnvironment.ts index 12f353e..cef53ca 100644 --- a/src/util/customEnvironment.ts +++ b/src/util/customEnvironment.ts @@ -48,15 +48,18 @@ export class CustomEnvironment { sound.play() }, 2000, sounds.background); const effects: Array = sounds.backgroundEffects; + window.setInterval((sounds: Array) => { if (Math.random() < .5) { return; } + const MAX_DISTANCE = 40; const sound = Math.floor(Math.random() * sounds.length); - const x = Math.floor(Math.random() * 20) - 10; - const z = Math.floor(Math.random() * 20) - 10; + const x = (Math.random() * MAX_DISTANCE) - (MAX_DISTANCE / 2); + const y = Math.random() * (MAX_DISTANCE / 2); + const z = (Math.random() * MAX_DISTANCE) - (MAX_DISTANCE / 2); - const position = new Vector3(x, 0, z); + const position = new Vector3(x, y, z); if (sounds[sound].isPlaying) { } else {