diff --git a/multiscene/index-scene2.js b/multiscene/index-scene2.js index f318394..36dfb1f 100644 --- a/multiscene/index-scene2.js +++ b/multiscene/index-scene2.js @@ -13,15 +13,15 @@ import {SwitchScene} from './js/switch.js'; export default function registerSceneComponents(engine) { /* wle:auto-register:start */ - engine.registerComponent(Cursor); - engine.registerComponent(HandTracking); - engine.registerComponent(HowlerAudioListener); - engine.registerComponent(MouseLookComponent); - engine.registerComponent(PlayerHeight); - engine.registerComponent(TeleportComponent); - engine.registerComponent(VrModeActiveSwitch); - engine.registerComponent(WasdControlsComponent); - engine.registerComponent(Portal); - engine.registerComponent(SwitchScene); - /* wle:auto-register:end */ +engine.registerComponent(Cursor); +engine.registerComponent(HandTracking); +engine.registerComponent(HowlerAudioListener); +engine.registerComponent(MouseLookComponent); +engine.registerComponent(PlayerHeight); +engine.registerComponent(TeleportComponent); +engine.registerComponent(VrModeActiveSwitch); +engine.registerComponent(WasdControlsComponent); +engine.registerComponent(Portal); +engine.registerComponent(SwitchScene); +/* wle:auto-register:end */ } diff --git a/multiscene/js/portal.js b/multiscene/js/portal.js index 9476017..1592cc6 100644 --- a/multiscene/js/portal.js +++ b/multiscene/js/portal.js @@ -1,45 +1,41 @@ -import {Component, Property} from "@wonderlandengine/api"; -import { SwitchScene } from './switch'; -import { vec3 } from 'gl-matrix'; +import {Component, Property} from '@wonderlandengine/api'; +import {SwitchScene} from './switch'; +import {vec3} from 'gl-matrix'; /** * switch-scene */ export class Portal extends Component { - static TypeName = "portal"; - /* Properties that are configurable in the editor */ - static Properties = { - target: Property.object(), - translationDuration: Property.float(0.5), - initialTranslate: Property.float(15), - portalRotateSpeed: Property.float(1.0), - }; + static TypeName = 'portal'; + /* Properties that are configurable in the editor */ + static Properties = { + target: Property.object(), + translationDuration: Property.float(0.5), + initialTranslate: Property.float(15), + portalRotateSpeed: Property.float(1.0), + }; - onActivate() { - this.target.translateObject([0, 0, this.initialTranslate]); - } + onActivate() { + this.target.translateObject([0, 0, this.initialTranslate]); + } - update(dt) { - this.object.rotateAxisAngleDegObject( - [0, 0, 1], - dt * 10000 * this.portalRotateSpeed, - ); - const playerPosition = this.target.getPositionWorld([]); - const portalPosition = this.object.getPositionWorld([]); - const sqDist= vec3.squaredDistance(playerPosition, portalPosition) - if (sqDist > 0.1) { - const distanceRemaining = Math.abs( - portalPosition[0] - playerPosition[0], - ); - const alpha = - 1 - - Math.exp(-dt / (this.translationDuration * distanceRemaining)); - const newPosition= new Float32Array(3) - vec3.lerp(newPosition,playerPosition,portalPosition,alpha,) - this.target.setPositionWorld(newPosition); - } - else{ - this.object.getComponent(SwitchScene).switch(); - } - } + update(dt) { + this.object.rotateAxisAngleDegObject( + [0, 0, 1], + dt * 10000 * this.portalRotateSpeed + ); + const playerPosition = this.target.getPositionWorld([]); + const portalPosition = this.object.getPositionWorld([]); + const sqDist = vec3.squaredDistance(playerPosition, portalPosition); + if (sqDist > 0.1) { + const distanceRemaining = Math.abs(portalPosition[0] - playerPosition[0]); + const alpha = + 1 - Math.exp(-dt / (this.translationDuration * distanceRemaining)); + const newPosition = new Float32Array(3); + vec3.lerp(newPosition, playerPosition, portalPosition, alpha); + this.target.setPositionWorld(newPosition); + } else { + this.object.getComponent(SwitchScene).switch(); + } + } } diff --git a/multiscene/js/scenes.js b/multiscene/js/scenes.js index 4893630..90ae8dd 100644 --- a/multiscene/js/scenes.js +++ b/multiscene/js/scenes.js @@ -3,5 +3,5 @@ export const Scenes = { /** Main scene, loaded first. */ main: null, /** Magical scene, reached via the portal */ - second: null + second: null, }; diff --git a/multiscene/js/switch.js b/multiscene/js/switch.js index efd9ad3..aa45ca2 100644 --- a/multiscene/js/switch.js +++ b/multiscene/js/switch.js @@ -3,10 +3,10 @@ import {Scenes} from './scenes.js'; /** Component to switch between the main and second scene. */ export class SwitchScene extends Component { - static TypeName = 'switch-scene'; + static TypeName = 'switch-scene'; - switch() { - const nextScene = this.scene === Scenes.main ? Scenes.second : Scenes.main; - this.engine.switchTo(nextScene); - } + switch() { + const nextScene = this.scene === Scenes.main ? Scenes.second : Scenes.main; + this.engine.switchTo(nextScene); + } } diff --git a/multiscene/package-lock.json b/multiscene/package-lock.json index e85b167..7653b55 100644 --- a/multiscene/package-lock.json +++ b/multiscene/package-lock.json @@ -12,6 +12,10 @@ "@wonderlandengine/components": "^1.1.4", "@wonderlandengine/spatial-audio": "^1.1.2", "gl-matrix": "^3.4.3" + }, + "devDependencies": { + "@wonderlandengine/prettier-config": "^1.0.0", + "prettier": "^3.2.5" } }, "node_modules/@types/earcut": { @@ -48,6 +52,12 @@ "@wonderlandengine/api": "^1.1.0" } }, + "node_modules/@wonderlandengine/prettier-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@wonderlandengine/prettier-config/-/prettier-config-1.0.0.tgz", + "integrity": "sha512-XTnQX9Iqr5A6DK1a1qFuEpKOhmQ9VFp9dweggSlyEVmQtDig+dv73gb0ssA/hq7B9lSp3opl8KK1jOJKzXuMEw==", + "dev": true + }, "node_modules/@wonderlandengine/spatial-audio": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@wonderlandengine/spatial-audio/-/spatial-audio-1.2.0.tgz", @@ -73,6 +83,21 @@ "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz", "integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==" }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/wasm-feature-detect": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.6.1.tgz", @@ -111,6 +136,12 @@ "howler": "^2.2.1" } }, + "@wonderlandengine/prettier-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@wonderlandengine/prettier-config/-/prettier-config-1.0.0.tgz", + "integrity": "sha512-XTnQX9Iqr5A6DK1a1qFuEpKOhmQ9VFp9dweggSlyEVmQtDig+dv73gb0ssA/hq7B9lSp3opl8KK1jOJKzXuMEw==", + "dev": true + }, "@wonderlandengine/spatial-audio": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@wonderlandengine/spatial-audio/-/spatial-audio-1.2.0.tgz", @@ -132,6 +163,12 @@ "resolved": "https://registry.npmjs.org/howler/-/howler-2.2.4.tgz", "integrity": "sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==" }, + "prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true + }, "wasm-feature-detect": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.6.1.tgz", diff --git a/multiscene/package.json b/multiscene/package.json index bdfd03d..97ca55f 100644 --- a/multiscene/package.json +++ b/multiscene/package.json @@ -6,7 +6,8 @@ "type": "module", "module": "js/index.js", "scripts": { - "build": "echo \"The 'build' script is run by the editor and should produce your application bundle\"" + "build": "echo \"The 'build' script is run by the editor and should produce your application bundle\"", + "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\"" }, "keywords": [ "wonderland-engine" @@ -16,5 +17,9 @@ "@wonderlandengine/components": "^1.1.4", "@wonderlandengine/spatial-audio": "^1.1.2", "gl-matrix": "^3.4.3" + }, + "devDependencies": { + "@wonderlandengine/prettier-config": "^1.0.0", + "prettier": "^3.2.5" } }