diff --git a/examples/assets/scripts/annotation.mjs b/examples/assets/scripts/annotation.mjs index f096336..2112562 100644 --- a/examples/assets/scripts/annotation.mjs +++ b/examples/assets/scripts/annotation.mjs @@ -25,6 +25,8 @@ import { * - An annotation panel that shows title and description text. */ export class Annotation extends Script { + static scriptName = 'annotation'; + /** @type {HTMLDivElement | null} */ static _activeTooltip = null; diff --git a/examples/assets/scripts/camera-feed.mjs b/examples/assets/scripts/camera-feed.mjs index 279717c..f2a5cf7 100644 --- a/examples/assets/scripts/camera-feed.mjs +++ b/examples/assets/scripts/camera-feed.mjs @@ -7,6 +7,8 @@ import { Script } from 'playcanvas'; * It then streams the camera's video to the video element and plays it. */ export class CameraFeed extends Script { + static scriptName = 'cameraFeed'; + /** * Whether to flip the video stream horizontally to behave like a mirror. * diff --git a/examples/assets/scripts/choose-color.mjs b/examples/assets/scripts/choose-color.mjs index 3543f48..aa47082 100644 --- a/examples/assets/scripts/choose-color.mjs +++ b/examples/assets/scripts/choose-color.mjs @@ -1,6 +1,8 @@ import { math, Script, Color } from 'playcanvas'; export class ChooseColor extends Script { + static scriptName = 'chooseColor'; + // Define available colors as a static property static PAINT_OPTIONS = [ { name: 'Guards Red', color: new Color(0.902, 0.004, 0.086), metallic: false }, diff --git a/examples/assets/scripts/face-detection.mjs b/examples/assets/scripts/face-detection.mjs index bf7b820..5451d70 100644 --- a/examples/assets/scripts/face-detection.mjs +++ b/examples/assets/scripts/face-detection.mjs @@ -2,6 +2,8 @@ import { FaceLandmarker, FilesetResolver } from '@mediapipe/tasks-vision'; import { Mat4, Script } from 'playcanvas'; export class FaceDetection extends Script { + static scriptName = 'faceDetection'; + /** * @type {FaceLandmarker} * @private diff --git a/examples/assets/scripts/falling-blocks.mjs b/examples/assets/scripts/falling-blocks.mjs index 866b90b..f08d29f 100644 --- a/examples/assets/scripts/falling-blocks.mjs +++ b/examples/assets/scripts/falling-blocks.mjs @@ -2,6 +2,8 @@ import { Script, Entity, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_SPACE, KEY_P // Falling Blocks Game Controller export class FallingBlocksGame extends Script { + static scriptName = 'fallingBlocksGame'; + // Attributes boardWidth = 10; diff --git a/examples/assets/scripts/follow-pointer.mjs b/examples/assets/scripts/follow-pointer.mjs index b8b8bf4..5e6aa94 100644 --- a/examples/assets/scripts/follow-pointer.mjs +++ b/examples/assets/scripts/follow-pointer.mjs @@ -5,6 +5,8 @@ import { Script } from 'playcanvas'; */ export class FollowPointer extends Script { + static scriptName = 'followPointer'; + initialize() { const canvas = this.app.graphicsDevice.canvas; canvas.addEventListener('pointermove', (event) => { diff --git a/examples/assets/scripts/gravity.mjs b/examples/assets/scripts/gravity.mjs index e5a7752..2e21a50 100644 --- a/examples/assets/scripts/gravity.mjs +++ b/examples/assets/scripts/gravity.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class Gravity extends Script { + static scriptName = 'gravity'; + update(dt) { const { x, y, z } = this.entity.getPosition(); this.entity.rigidbody.applyForce(-x, -y, -z); diff --git a/examples/assets/scripts/hand-gestures.mjs b/examples/assets/scripts/hand-gestures.mjs index 456c868..dafd482 100644 --- a/examples/assets/scripts/hand-gestures.mjs +++ b/examples/assets/scripts/hand-gestures.mjs @@ -2,6 +2,8 @@ import { HandLandmarker, GestureRecognizer, FilesetResolver } from '@mediapipe/t import { Script, Vec3 } from 'playcanvas'; export class HandGestureController extends Script { + static scriptName = 'handGestureController'; + /** * Maximum number of hands to detect * @type {number} diff --git a/examples/assets/scripts/morph-update.mjs b/examples/assets/scripts/morph-update.mjs index 38d2b5e..973e369 100644 --- a/examples/assets/scripts/morph-update.mjs +++ b/examples/assets/scripts/morph-update.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class MorphUpdate extends Script { + static scriptName = 'morphUpdate'; + initialize() { this.app.on('face:blendshapes', (categories) => { const renders = this.entity.findComponents('render'); diff --git a/examples/assets/scripts/orbit.mjs b/examples/assets/scripts/orbit.mjs index 5899c38..f79de29 100644 --- a/examples/assets/scripts/orbit.mjs +++ b/examples/assets/scripts/orbit.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class Orbit extends Script { + static scriptName = 'orbit'; + radius = 4; speed = 0.4; diff --git a/examples/assets/scripts/rotate.mjs b/examples/assets/scripts/rotate.mjs index 3c47f5b..f24b618 100644 --- a/examples/assets/scripts/rotate.mjs +++ b/examples/assets/scripts/rotate.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class Rotate extends Script { + static scriptName = 'rotate'; + update(dt) { this.entity.rotate(10 * dt, 20 * dt, 30 * dt); } diff --git a/examples/assets/scripts/scroll.mjs b/examples/assets/scripts/scroll.mjs index ac49c19..c8afaed 100644 --- a/examples/assets/scripts/scroll.mjs +++ b/examples/assets/scripts/scroll.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class Scroll extends Script { + static scriptName = 'scroll'; + update(dt) { this.entity.translateLocal(0, dt * 0.5, 0); } diff --git a/examples/assets/scripts/solar-system.mjs b/examples/assets/scripts/solar-system.mjs index 8cc5785..6e5d77e 100644 --- a/examples/assets/scripts/solar-system.mjs +++ b/examples/assets/scripts/solar-system.mjs @@ -1,6 +1,8 @@ import { Script, Vec3 } from 'playcanvas'; export class PlanetaryCamera extends Script { + static scriptName = 'planetaryCamera'; + initialize() { // Camera offsets: X is sunward offset, Y and Z provide viewing angle this.cameraOffsets = new Map([ @@ -70,6 +72,8 @@ export class PlanetaryCamera extends Script { } export class PlanetaryMotion extends Script { + static scriptName = 'planetaryMotion'; + initialize() { // Planet radii (for scale reference) this.planetSizes = new Map([ diff --git a/examples/assets/scripts/static-body.mjs b/examples/assets/scripts/static-body.mjs index b047b32..ffaccf7 100644 --- a/examples/assets/scripts/static-body.mjs +++ b/examples/assets/scripts/static-body.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class StaticBody extends Script { + static scriptName = 'staticBody'; + initialize() { this.entity.findComponents('render').forEach((render) => { const entity = render.entity; diff --git a/examples/assets/scripts/text3d.mjs b/examples/assets/scripts/text3d.mjs index f36eecf..e59b257 100644 --- a/examples/assets/scripts/text3d.mjs +++ b/examples/assets/scripts/text3d.mjs @@ -98,6 +98,8 @@ class Polygon { } export class Text3D extends Script { + static scriptName = 'text3d'; + /** * TTF file used as the basis for this 3D text. * @type {Asset} diff --git a/examples/assets/scripts/tweener.mjs b/examples/assets/scripts/tweener.mjs index 426c413..3442446 100644 --- a/examples/assets/scripts/tweener.mjs +++ b/examples/assets/scripts/tweener.mjs @@ -132,6 +132,8 @@ class TweenDescriptor { /* eslint-disable-line no-unused-vars */ } export class Tweener extends Script { + static scriptName = 'tweener'; + /** * Array of tween configurations * @type {TweenDescriptor[]} diff --git a/examples/assets/scripts/video-recorder-ui.mjs b/examples/assets/scripts/video-recorder-ui.mjs index 62b576f..f726691 100644 --- a/examples/assets/scripts/video-recorder-ui.mjs +++ b/examples/assets/scripts/video-recorder-ui.mjs @@ -1,6 +1,8 @@ import { Script } from 'playcanvas'; export class VideoRecorderUI extends Script { + static scriptName = 'videoRecorderUI'; + initialize() { this.createUI(); // Listen to video recording progress events diff --git a/examples/assets/scripts/video-recorder.mjs b/examples/assets/scripts/video-recorder.mjs index 2547cc0..0650d07 100644 --- a/examples/assets/scripts/video-recorder.mjs +++ b/examples/assets/scripts/video-recorder.mjs @@ -15,6 +15,8 @@ const FrameRate = { }; export class VideoRecorder extends Script { + static scriptName = 'videoRecorder'; + /** * Whether to activate the recorder on initialization. * diff --git a/examples/assets/scripts/video-texture.mjs b/examples/assets/scripts/video-texture.mjs index 05b336d..c92105d 100644 --- a/examples/assets/scripts/video-texture.mjs +++ b/examples/assets/scripts/video-texture.mjs @@ -1,6 +1,8 @@ import { Color, Script, Texture, PIXELFORMAT_R8_G8_B8, FILTER_LINEAR_MIPMAP_LINEAR, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE } from 'playcanvas'; export class VideoTexture extends Script { + static scriptName = 'videoTexture'; + /** * URL to use if there is no video asset selected. * @type {string} diff --git a/examples/text3d.html b/examples/text3d.html index c767a72..0517a10 100644 --- a/examples/text3d.html +++ b/examples/text3d.html @@ -52,7 +52,7 @@ -