custom-pixi-particles 8.7.8 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/behaviour/BehaviourRegistry.d.ts +44 -0
- package/dist/lib/behaviour/BehaviourRegistry.js +50 -0
- package/dist/lib/behaviour/BehaviourRegistry.js.map +1 -0
- package/dist/lib/behaviour/EmitterBehaviours.d.ts +10 -8
- package/dist/lib/behaviour/EmitterBehaviours.js +11 -9
- package/dist/lib/behaviour/EmitterBehaviours.js.map +1 -1
- package/dist/lib/behaviour/IBehaviour.d.ts +41 -0
- package/dist/lib/behaviour/IBehaviour.js +2 -0
- package/dist/lib/behaviour/IBehaviour.js.map +1 -0
- package/dist/lib/behaviour/MoveToPointBehaviour.d.ts +1 -9
- package/dist/lib/behaviour/MoveToPointBehaviour.js +4 -12
- package/dist/lib/behaviour/MoveToPointBehaviour.js.map +1 -1
- package/dist/lib/behaviour/PlaceholderBehaviour.d.ts +21 -0
- package/dist/lib/behaviour/PlaceholderBehaviour.js +36 -0
- package/dist/lib/behaviour/PlaceholderBehaviour.js.map +1 -0
- package/dist/lib/behaviour/SoundReactiveBehaviour.js +1 -2
- package/dist/lib/behaviour/SoundReactiveBehaviour.js.map +1 -1
- package/dist/lib/behaviour/SpawnBehaviour.d.ts +4 -0
- package/dist/lib/behaviour/SpawnBehaviour.js +7 -2
- package/dist/lib/behaviour/SpawnBehaviour.js.map +1 -1
- package/dist/lib/behaviour/index.d.ts +2 -0
- package/dist/lib/behaviour/index.js +1 -0
- package/dist/lib/behaviour/index.js.map +1 -1
- package/dist/lib/effects/DissolveEffect.d.ts +2 -2
- package/dist/lib/effects/DissolveEffect.js +44 -47
- package/dist/lib/effects/DissolveEffect.js.map +1 -1
- package/dist/lib/effects/GhostEffect.d.ts +1 -1
- package/dist/lib/effects/GhostEffect.js +5 -15
- package/dist/lib/effects/GhostEffect.js.map +1 -1
- package/dist/lib/effects/GlitchEffect.d.ts +2 -2
- package/dist/lib/effects/GlitchEffect.js +15 -8
- package/dist/lib/effects/GlitchEffect.js.map +1 -1
- package/dist/lib/effects/MagneticAssemblyEffect.d.ts +2 -2
- package/dist/lib/effects/MagneticAssemblyEffect.js +13 -7
- package/dist/lib/effects/MagneticAssemblyEffect.js.map +1 -1
- package/dist/lib/effects/MeltEffect.d.ts +1 -8
- package/dist/lib/effects/MeltEffect.js +82 -151
- package/dist/lib/effects/MeltEffect.js.map +1 -1
- package/dist/lib/effects/ShatterEffect.d.ts +2 -2
- package/dist/lib/effects/ShatterEffect.js +33 -24
- package/dist/lib/effects/ShatterEffect.js.map +1 -1
- package/dist/lib/emitter/Emitter.d.ts +1 -1
- package/dist/lib/emitter/Emitter.js +2 -2
- package/dist/lib/emitter/Emitter.js.map +1 -1
- package/dist/lib/parser/EmitterParser.d.ts +4 -2
- package/dist/lib/parser/EmitterParser.js +24 -6
- package/dist/lib/parser/EmitterParser.js.map +1 -1
- package/dist/lib/pixi/Renderer.d.ts +4 -3
- package/dist/lib/pixi/Renderer.js +38 -14
- package/dist/lib/pixi/Renderer.js.map +1 -1
- package/dist/lib/pixi/TestRenderer.d.ts +3 -2
- package/dist/lib/pixi/TestRenderer.js +30 -12
- package/dist/lib/pixi/TestRenderer.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -552,6 +552,43 @@ emitController: {
|
|
|
552
552
|
|
|
553
553
|
Behaviours define how particles behave throughout their lifetime. Each behaviour has a `priority` (higher = processed first) and can be `enabled` or disabled.
|
|
554
554
|
|
|
555
|
+
#### Custom behaviours (IBehaviour)
|
|
556
|
+
|
|
557
|
+
You can add your own behaviours by implementing the **IBehaviour** interface (or extending the base **Behaviour** class) and registering them with **BehaviourRegistry**. Custom behaviours can then be used by name in your emitter config (e.g. from JSON or the editor).
|
|
558
|
+
|
|
559
|
+
```javascript
|
|
560
|
+
import { Behaviour, BehaviourRegistry, customPixiParticles } from 'custom-pixi-particles'
|
|
561
|
+
|
|
562
|
+
// Extend Behaviour and implement required methods
|
|
563
|
+
class MyCustomBehaviour extends Behaviour {
|
|
564
|
+
enabled = true
|
|
565
|
+
priority = 0
|
|
566
|
+
getName() { return 'MyCustomBehaviour' }
|
|
567
|
+
getProps() { return { enabled: this.enabled, priority: this.priority, name: this.getName() } }
|
|
568
|
+
init(particle, model, turbulencePool) { /* ... */ }
|
|
569
|
+
apply(particle, deltaTime, model) { /* ... */ }
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
// Register so config can create it by name
|
|
573
|
+
BehaviourRegistry.register('MyCustomBehaviour', MyCustomBehaviour)
|
|
574
|
+
|
|
575
|
+
// Your emitter config can now include: { behaviours: [{ name: 'MyCustomBehaviour', ... }] }
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
You can also add a custom behaviour instance at runtime: get the emitter from your renderer and call `emitter.behaviours.add(myCustomBehaviour)`.
|
|
579
|
+
|
|
580
|
+
```javascript
|
|
581
|
+
// After creating the particle emitter
|
|
582
|
+
const particles = customPixiParticles.create({ textures, emitterConfig })
|
|
583
|
+
app.stage.addChild(particles)
|
|
584
|
+
particles.play()
|
|
585
|
+
|
|
586
|
+
// Add a custom behaviour at runtime
|
|
587
|
+
const myCustomBehaviour = new MyCustomBehaviour()
|
|
588
|
+
particles.emitter.behaviours.add(myCustomBehaviour)
|
|
589
|
+
// New and existing particles will use the new behaviour on the next update
|
|
590
|
+
```
|
|
591
|
+
|
|
555
592
|
#### Life Behaviour
|
|
556
593
|
Controls particle lifetime.
|
|
557
594
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Renderer from './lib/pixi/Renderer';
|
|
2
2
|
import { ICustomPixiParticlesSettings } from './lib/customPixiParticlesSettingsInterface';
|
|
3
3
|
import TestRenderer from './lib/pixi/TestRenderer';
|
|
4
|
-
import { DissolveEffect, GhostEffect, GlitchEffect,
|
|
5
|
-
export type { IShatterEffectOptions, ShatterMode, IDissolveEffectOptions, DissolveDirection, IMagneticAssemblyOptions, AssemblyMode, IGhostEffectOptions, IGlitchEffectOptions, IMeltEffectOptions
|
|
4
|
+
import { ShatterEffect, DissolveEffect, MagneticAssemblyEffect, GhostEffect, GlitchEffect, MeltEffect } from './lib/effects';
|
|
5
|
+
export type { IShatterEffectOptions, ShatterMode, IDissolveEffectOptions, DissolveDirection, IMagneticAssemblyOptions, AssemblyMode, IGhostEffectOptions, IGlitchEffectOptions, IMeltEffectOptions } from './lib/effects';
|
|
6
6
|
/**
|
|
7
7
|
* Constructs a renderer for custom pixi particles
|
|
8
8
|
* @class Renderer
|
|
@@ -14,4 +14,7 @@ declare const customPixiParticles: {
|
|
|
14
14
|
declare const _customPixiParticlesEditorOnly: {
|
|
15
15
|
create(settings: ICustomPixiParticlesSettings): TestRenderer;
|
|
16
16
|
};
|
|
17
|
+
export type { IBehaviour } from './lib/behaviour';
|
|
18
|
+
export { Behaviour, BehaviourRegistry } from './lib/behaviour';
|
|
19
|
+
export { Application, Loader } from 'pixi.js';
|
|
17
20
|
export { Renderer, customPixiParticles, _customPixiParticlesEditorOnly, ICustomPixiParticlesSettings, ShatterEffect, DissolveEffect, MagneticAssemblyEffect, GhostEffect, GlitchEffect, MeltEffect, };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Renderer from './lib/pixi/Renderer';
|
|
2
2
|
import TestRenderer from './lib/pixi/TestRenderer';
|
|
3
|
-
import { DissolveEffect, GhostEffect, GlitchEffect,
|
|
3
|
+
import { ShatterEffect, DissolveEffect, MagneticAssemblyEffect, GhostEffect, GlitchEffect, MeltEffect } from './lib/effects';
|
|
4
4
|
/**
|
|
5
5
|
* Constructs a renderer for custom pixi particles
|
|
6
6
|
* @class Renderer
|
|
@@ -42,5 +42,8 @@ const _customPixiParticlesEditorOnly = {
|
|
|
42
42
|
});
|
|
43
43
|
},
|
|
44
44
|
};
|
|
45
|
+
export { Behaviour, BehaviourRegistry } from './lib/behaviour';
|
|
46
|
+
// Re-export so demos can use one import (avoids loading Pixi twice)
|
|
47
|
+
export { Application, Loader } from 'pixi.js';
|
|
45
48
|
export { Renderer, customPixiParticles, _customPixiParticlesEditorOnly, ShatterEffect, DissolveEffect, MagneticAssemblyEffect, GhostEffect, GlitchEffect, MeltEffect, };
|
|
46
49
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAE1C,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAE1C,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI5H;;;;GAIG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM,CAAC,QAAsC;QAC3C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,GAAG,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,QAAQ,CAAC;YAClB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,MAAM,8BAA8B,GAAG;IACrC,MAAM,CAAC,QAAsC;QAC3C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,YAAY,CAAC;YACtB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,MAAM;YACN,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE9D,oEAAoE;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,8BAA8B,EAE9B,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,UAAU,GACX,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { IBehaviour } from './IBehaviour';
|
|
2
|
+
type BehaviourConstructor = new () => IBehaviour;
|
|
3
|
+
/**
|
|
4
|
+
* Registry for custom behaviour classes. Register a class here so it can be
|
|
5
|
+
* created by name when loading emitter config (e.g. from JSON or the editor).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* import { Behaviour, BehaviourRegistry } from 'custom-pixi-particles'
|
|
9
|
+
*
|
|
10
|
+
* class MyCustomBehaviour extends Behaviour {
|
|
11
|
+
* enabled = true
|
|
12
|
+
* priority = 0
|
|
13
|
+
* getName() { return 'MyCustomBehaviour' }
|
|
14
|
+
* getProps() { return { enabled: this.enabled, priority: this.priority, name: this.getName() } }
|
|
15
|
+
* init(particle, model, turbulencePool) { ... }
|
|
16
|
+
* apply(particle, deltaTime, model) { ... }
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* BehaviourRegistry.register('MyCustomBehaviour', MyCustomBehaviour)
|
|
20
|
+
*
|
|
21
|
+
* // Now config can use: { behaviours: [{ name: 'MyCustomBehaviour', ... }] }
|
|
22
|
+
*/
|
|
23
|
+
export declare const BehaviourRegistry: {
|
|
24
|
+
_behaviours: Map<string, BehaviourConstructor>;
|
|
25
|
+
/**
|
|
26
|
+
* Register a custom behaviour class by name. This name must match the string
|
|
27
|
+
* used in your emitter config (config.behaviours[].name).
|
|
28
|
+
*/
|
|
29
|
+
register(name: string, BehaviourClass: BehaviourConstructor): void;
|
|
30
|
+
/**
|
|
31
|
+
* Unregister a custom behaviour by name.
|
|
32
|
+
*/
|
|
33
|
+
unregister(name: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get a registered behaviour constructor by name, or undefined if not registered.
|
|
36
|
+
* Used internally by EmitterParser when creating behaviours from config.
|
|
37
|
+
*/
|
|
38
|
+
get(name: string): BehaviourConstructor | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a name is registered (custom or built-in is not checked here).
|
|
41
|
+
*/
|
|
42
|
+
has(name: string): boolean;
|
|
43
|
+
};
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for custom behaviour classes. Register a class here so it can be
|
|
3
|
+
* created by name when loading emitter config (e.g. from JSON or the editor).
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { Behaviour, BehaviourRegistry } from 'custom-pixi-particles'
|
|
7
|
+
*
|
|
8
|
+
* class MyCustomBehaviour extends Behaviour {
|
|
9
|
+
* enabled = true
|
|
10
|
+
* priority = 0
|
|
11
|
+
* getName() { return 'MyCustomBehaviour' }
|
|
12
|
+
* getProps() { return { enabled: this.enabled, priority: this.priority, name: this.getName() } }
|
|
13
|
+
* init(particle, model, turbulencePool) { ... }
|
|
14
|
+
* apply(particle, deltaTime, model) { ... }
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* BehaviourRegistry.register('MyCustomBehaviour', MyCustomBehaviour)
|
|
18
|
+
*
|
|
19
|
+
* // Now config can use: { behaviours: [{ name: 'MyCustomBehaviour', ... }] }
|
|
20
|
+
*/
|
|
21
|
+
export const BehaviourRegistry = {
|
|
22
|
+
_behaviours: new Map(),
|
|
23
|
+
/**
|
|
24
|
+
* Register a custom behaviour class by name. This name must match the string
|
|
25
|
+
* used in your emitter config (config.behaviours[].name).
|
|
26
|
+
*/
|
|
27
|
+
register(name, BehaviourClass) {
|
|
28
|
+
this._behaviours.set(name, BehaviourClass);
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Unregister a custom behaviour by name.
|
|
32
|
+
*/
|
|
33
|
+
unregister(name) {
|
|
34
|
+
return this._behaviours.delete(name);
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Get a registered behaviour constructor by name, or undefined if not registered.
|
|
38
|
+
* Used internally by EmitterParser when creating behaviours from config.
|
|
39
|
+
*/
|
|
40
|
+
get(name) {
|
|
41
|
+
return this._behaviours.get(name);
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Check if a name is registered (custom or built-in is not checked here).
|
|
45
|
+
*/
|
|
46
|
+
has(name) {
|
|
47
|
+
return this._behaviours.has(name);
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=BehaviourRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BehaviourRegistry.js","sourceRoot":"","sources":["../../../src/lib/behaviour/BehaviourRegistry.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,IAAI,GAAG,EAAgC;IAEpD;;;OAGG;IACH,QAAQ,CAAC,IAAY,EAAE,cAAoC;QACzD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF,CAAA"}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
+
import type { IBehaviour } from './IBehaviour';
|
|
1
2
|
import Particle from '../Particle';
|
|
2
3
|
import Model from '../Model';
|
|
3
4
|
import TurbulencePool from '../util/turbulencePool';
|
|
4
5
|
/**
|
|
5
|
-
* EmitterBehaviours class manages the behaviour of particles
|
|
6
|
+
* EmitterBehaviours class manages the behaviour of particles.
|
|
7
|
+
* Accepts built-in behaviours and custom behaviours that implement IBehaviour.
|
|
6
8
|
*/
|
|
7
9
|
export default class EmitterBehaviours {
|
|
8
|
-
behaviours:
|
|
10
|
+
behaviours: IBehaviour[];
|
|
9
11
|
/**
|
|
10
12
|
* Gets all the enabled behaviours
|
|
11
13
|
*
|
|
12
14
|
* @return {any[]} The enabled behaviours
|
|
13
15
|
*/
|
|
14
|
-
getAll: () =>
|
|
16
|
+
getAll: () => IBehaviour[];
|
|
15
17
|
/**
|
|
16
18
|
* Clears all the stored behaviours
|
|
17
19
|
*/
|
|
18
20
|
clear: () => void;
|
|
19
21
|
/**
|
|
20
|
-
* Adds a behaviour
|
|
22
|
+
* Adds a behaviour (built-in or custom implementing IBehaviour).
|
|
21
23
|
*
|
|
22
|
-
* @param {
|
|
24
|
+
* @param {IBehaviour} behaviour The behaviour to add
|
|
23
25
|
*
|
|
24
|
-
* @return {
|
|
26
|
+
* @return {IBehaviour} The added behaviour
|
|
25
27
|
*/
|
|
26
|
-
add: (behaviour:
|
|
28
|
+
add: (behaviour: IBehaviour) => IBehaviour;
|
|
27
29
|
/**
|
|
28
30
|
* Checks if there are no behaviours stored
|
|
29
31
|
*
|
|
@@ -37,7 +39,7 @@ export default class EmitterBehaviours {
|
|
|
37
39
|
*
|
|
38
40
|
* @return {any | null} The behaviour with the given name or null if not found
|
|
39
41
|
*/
|
|
40
|
-
getByName: (name: string) =>
|
|
42
|
+
getByName: (name: string) => IBehaviour | null;
|
|
41
43
|
/**
|
|
42
44
|
* Removes a behaviour by name
|
|
43
45
|
*
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// src/lib/behaviour/EmitterBehaviours.ts
|
|
2
2
|
// tslint:disable:prefer-for-of
|
|
3
3
|
/**
|
|
4
|
-
* EmitterBehaviours class manages the behaviour of particles
|
|
4
|
+
* EmitterBehaviours class manages the behaviour of particles.
|
|
5
|
+
* Accepts built-in behaviours and custom behaviours that implement IBehaviour.
|
|
5
6
|
*/
|
|
6
7
|
export default class EmitterBehaviours {
|
|
7
8
|
constructor() {
|
|
@@ -23,11 +24,11 @@ export default class EmitterBehaviours {
|
|
|
23
24
|
this.behaviours = [];
|
|
24
25
|
};
|
|
25
26
|
/**
|
|
26
|
-
* Adds a behaviour
|
|
27
|
+
* Adds a behaviour (built-in or custom implementing IBehaviour).
|
|
27
28
|
*
|
|
28
|
-
* @param {
|
|
29
|
+
* @param {IBehaviour} behaviour The behaviour to add
|
|
29
30
|
*
|
|
30
|
-
* @return {
|
|
31
|
+
* @return {IBehaviour} The added behaviour
|
|
31
32
|
*/
|
|
32
33
|
this.add = (behaviour) => {
|
|
33
34
|
if (this.getByName(behaviour.getName()) !== null) {
|
|
@@ -108,8 +109,9 @@ export default class EmitterBehaviours {
|
|
|
108
109
|
*/
|
|
109
110
|
this.update = (deltaTime) => {
|
|
110
111
|
for (let i = 0; i < this.behaviours.length; ++i) {
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
const updateFn = this.behaviours[i].update;
|
|
113
|
+
if (updateFn)
|
|
114
|
+
updateFn(deltaTime);
|
|
113
115
|
}
|
|
114
116
|
};
|
|
115
117
|
/**
|
|
@@ -119,9 +121,9 @@ export default class EmitterBehaviours {
|
|
|
119
121
|
*/
|
|
120
122
|
this.onParticleRemoved = (particle) => {
|
|
121
123
|
for (let i = 0; i < this.behaviours.length; ++i) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
const onRemoved = this.behaviours[i].onParticleRemoved;
|
|
125
|
+
if (onRemoved)
|
|
126
|
+
onRemoved(particle);
|
|
125
127
|
}
|
|
126
128
|
};
|
|
127
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type Particle from '../Particle';
|
|
2
|
+
import type Model from '../Model';
|
|
3
|
+
import type TurbulencePool from '../util/turbulencePool';
|
|
4
|
+
import type BehaviourParser from '../parser/BehaviourParser';
|
|
5
|
+
/**
|
|
6
|
+
* Interface that any behaviour must implement to work with the particle emitter.
|
|
7
|
+
* Use this for custom behaviours: implement IBehaviour (or extend Behaviour) and
|
|
8
|
+
* register your class with BehaviourRegistry so it can be used by name in config.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // Custom behaviour implementing the interface
|
|
12
|
+
* class MyCustomBehaviour extends Behaviour {
|
|
13
|
+
* enabled = true
|
|
14
|
+
* priority = 0
|
|
15
|
+
* getName() { return 'MyCustomBehaviour' }
|
|
16
|
+
* getProps() { return { enabled: this.enabled, priority: this.priority, name: this.getName() } }
|
|
17
|
+
* init(particle, model, turbulencePool) { ... }
|
|
18
|
+
* apply(particle, deltaTime, model) { ... }
|
|
19
|
+
* }
|
|
20
|
+
* BehaviourRegistry.register('MyCustomBehaviour', MyCustomBehaviour)
|
|
21
|
+
*/
|
|
22
|
+
export interface IBehaviour {
|
|
23
|
+
/** Whether this behaviour is active */
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
/** Higher priority behaviours run first (default 0) */
|
|
26
|
+
priority: number;
|
|
27
|
+
/** Unique name used in config and registry (e.g. 'MyCustomBehaviour') */
|
|
28
|
+
getName(): string;
|
|
29
|
+
/** Parser for serializing/deserializing this behaviour (default: new BehaviourParser(this)) */
|
|
30
|
+
getParser(): BehaviourParser;
|
|
31
|
+
/** Plain object of configurable properties for save/load (must include enabled, priority, name) */
|
|
32
|
+
getProps(): Record<string, unknown>;
|
|
33
|
+
/** Called once per particle when it is created */
|
|
34
|
+
init(particle: Particle, model: Model, turbulencePool: TurbulencePool): void;
|
|
35
|
+
/** Called every frame per particle */
|
|
36
|
+
apply(particle: Particle, deltaTime: number, model: Model): void;
|
|
37
|
+
/** Optional: called once per frame (not per particle) */
|
|
38
|
+
update?(deltaTime: number): void;
|
|
39
|
+
/** Optional: called when a particle is removed */
|
|
40
|
+
onParticleRemoved?(particle: Particle): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/IBehaviour.ts"],"names":[],"mappings":""}
|
|
@@ -62,10 +62,6 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
62
62
|
init: (particle: Particle) => void;
|
|
63
63
|
private _initializeParticleForMove;
|
|
64
64
|
apply: (particle: Particle, deltaTime: number) => void;
|
|
65
|
-
/**
|
|
66
|
-
* Gets the name of the behaviour.
|
|
67
|
-
* @returns {string} - The name of the behaviour.
|
|
68
|
-
*/
|
|
69
65
|
onParticleRemoved: (particle: Particle) => void;
|
|
70
66
|
private _applyEasing;
|
|
71
67
|
private _easeBackInOut;
|
|
@@ -82,10 +78,6 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
82
78
|
private _easeElasticInOut;
|
|
83
79
|
private _easeSteps;
|
|
84
80
|
getName(): string;
|
|
85
|
-
/**
|
|
86
|
-
* Gets the properties of the behaviour for configuration.
|
|
87
|
-
* @returns {object} - The properties of the behaviour.
|
|
88
|
-
*/
|
|
89
81
|
getProps(): {
|
|
90
82
|
enabled: boolean;
|
|
91
83
|
active: boolean;
|
|
@@ -94,10 +86,10 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
94
86
|
y: number;
|
|
95
87
|
};
|
|
96
88
|
speed: number;
|
|
97
|
-
priority: number;
|
|
98
89
|
killOnArrival: boolean;
|
|
99
90
|
resetMaxLifeTime: boolean;
|
|
100
91
|
arrivalThreshold: number;
|
|
92
|
+
priority: number;
|
|
101
93
|
pathType: "linear" | "sinusoidal";
|
|
102
94
|
sinusoidalAmplitude: number;
|
|
103
95
|
sinusoidalFrequency: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// src/lib/behaviour/MoveToPointBehaviour.ts
|
|
1
2
|
import { Behaviour, BehaviourNames } from './index';
|
|
2
3
|
import { Point } from '../util';
|
|
3
4
|
/**
|
|
@@ -117,8 +118,8 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
117
118
|
normalizedProgress = Math.min(1.0, normalizedProgress);
|
|
118
119
|
const easedProgress = this._applyEasing(normalizedProgress, this.pathEasing);
|
|
119
120
|
// Calculate the position on the straight line path based on eased progress
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
let currentXOnLine = particle.moveToPointInitialX + (this.targetPoint.x - particle.moveToPointInitialX) * easedProgress;
|
|
122
|
+
let currentYOnLine = particle.moveToPointInitialY + (this.targetPoint.y - particle.moveToPointInitialY) * easedProgress;
|
|
122
123
|
// Apply sinusoidal offset if applicable and the linear journey is not yet complete
|
|
123
124
|
if (this.pathType === 'sinusoidal' && normalizedProgress < 1.0) {
|
|
124
125
|
const dirToTargetX = (this.targetPoint.x - particle.moveToPointInitialX) / particle.moveToPointTotalDistance;
|
|
@@ -159,10 +160,6 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
159
160
|
particle.movement.x = particle.x;
|
|
160
161
|
particle.movement.y = particle.y;
|
|
161
162
|
};
|
|
162
|
-
/**
|
|
163
|
-
* Gets the name of the behaviour.
|
|
164
|
-
* @returns {string} - The name of the behaviour.
|
|
165
|
-
*/
|
|
166
163
|
this.onParticleRemoved = (particle) => {
|
|
167
164
|
this._wasActiveLastFrame.delete(particle.uid);
|
|
168
165
|
};
|
|
@@ -278,7 +275,6 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
278
275
|
if (t === 1)
|
|
279
276
|
return 1;
|
|
280
277
|
const s = (period / (2 * Math.PI)) * Math.asin(1 / amplitude);
|
|
281
|
-
// tslint:disable-next-line:no-conditional-assignment
|
|
282
278
|
if ((t *= 2) < 1) {
|
|
283
279
|
return -0.5 * (amplitude * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t - s) * (2 * Math.PI)) / period));
|
|
284
280
|
}
|
|
@@ -292,20 +288,16 @@ export default class MoveToPointBehaviour extends Behaviour {
|
|
|
292
288
|
getName() {
|
|
293
289
|
return BehaviourNames.MOVE_TO_POINT_BEHAVIOUR;
|
|
294
290
|
}
|
|
295
|
-
/**
|
|
296
|
-
* Gets the properties of the behaviour for configuration.
|
|
297
|
-
* @returns {object} - The properties of the behaviour.
|
|
298
|
-
*/
|
|
299
291
|
getProps() {
|
|
300
292
|
return {
|
|
301
293
|
enabled: this.enabled,
|
|
302
294
|
active: this.active,
|
|
303
295
|
targetPoint: { x: this.targetPoint.x, y: this.targetPoint.y },
|
|
304
296
|
speed: this.speed,
|
|
305
|
-
priority: this.priority,
|
|
306
297
|
killOnArrival: this.killOnArrival,
|
|
307
298
|
resetMaxLifeTime: this.resetMaxLifeTime,
|
|
308
299
|
arrivalThreshold: this.arrivalThreshold,
|
|
300
|
+
priority: this.priority,
|
|
309
301
|
pathType: this.pathType,
|
|
310
302
|
sinusoidalAmplitude: this.sinusoidalAmplitude,
|
|
311
303
|
sinusoidalFrequency: this.sinusoidalFrequency,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveToPointBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/MoveToPointBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;IAwDzD;QACE,KAAK,EAAE,CAAA;QAxDT,YAAO,GAAY,IAAI,CAAA;QACvB;;WAEG;QACH,WAAM,GAAY,KAAK,CAAA;QACvB;;WAEG;QACH,gBAAW,GAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC;;WAEG;QACH,UAAK,GAAW,GAAG,CAAA;QACnB;;;WAGG;QACH,kBAAa,GAAY,KAAK,CAAA;QAC9B,qBAAgB,GAAY,KAAK,CAAA;QACjC;;WAEG;QACH,qBAAgB,GAAW,GAAG,CAAA;QAC9B;;;;WAIG;QACH,aAAQ,GAAW,CAAC,EAAE,CAAA;QAEtB;;;;WAIG;QACH,aAAQ,GAA4B,QAAQ,CAAA;QAC5C;;WAEG;QACH,wBAAmB,GAAW,EAAE,CAAA;QAChC;;WAEG;QACH,wBAAmB,GAAW,CAAC,CAAA;QAC/B;;;;WAIG;QACH,eAAU,GAAW,QAAQ,CAAA,CAAC,oBAAoB;QAElD,iBAAiB;QACT,wBAAmB,GAAyB,IAAI,GAAG,EAAE,CAAA;QACrD,qBAAgB,GAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAQjD,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,oDAAoD;QACtD,CAAC,CAAA;QAYD,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAC/C,CAAC;gBACD,OAAM;YACR,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAA;YACrC,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAI,KAAK,CAAA;YAC/E,MAAM,aAAa,GACjB,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAElG,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAClD,CAAC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,IAAI,mBAAmB,EAAE,CAAC;oBACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;oBACjD,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;oBACjD,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAA;oBACrC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,CAAC,mBAAmB,IAAI,CAAC,iBAAiB,IAAI,aAAa,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAEhD,kGAAkG;YAClG,yDAAyD;YACzD,IAAI,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC/B,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBACxC,IAAI,IAAI,CAAC,gBAAgB;4BAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;oBACrD,CAAC;gBACH,CAAC;gBACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;gBAChC,OAAM,CAAC,0CAA0C;YACnD,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACzC,QAAQ,CAAC,oCAAoC,IAAI,UAAU,CAAA;YAE3D,IAAI,kBAAkB,GACpB,QAAQ,CAAC,wBAAwB,GAAG,CAAC;gBACnC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,GAAG,QAAQ,CAAC,wBAAwB;gBACnF,CAAC,CAAC,CAAC,CAAA;YAEP,uGAAuG;YACvG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;YAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAE5E,2EAA2E;YAC3E,MAAM,cAAc,GAClB,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAA;YACpG,MAAM,cAAc,GAClB,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAA;YAEpG,mFAAmF;YACnF,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,kBAAkB,GAAG,GAAG,EAAE,CAAC;gBAC/D,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAA;gBAC5G,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAA;gBAE5G,MAAM,MAAM,GAAG,CAAC,YAAY,CAAA,CAAC,iCAAiC;gBAC9D,MAAM,MAAM,GAAG,YAAY,CAAA,CAAC,iCAAiC;gBAE7D,oEAAoE;gBACpE,gFAAgF;gBAChF,qFAAqF;gBACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAA,CAAC,gCAAgC;gBAC9F,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAA;gBAErE,MAAM,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAA;gBAE9F,QAAQ,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAAA;gBACnD,QAAQ,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAAA;gBAEnD,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAA,CAAC,+BAA+B;YAChE,CAAC;iBAAM,CAAC;gBACN,8EAA8E;gBAC9E,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAA;gBAC3B,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAA;YAC7B,CAAC;YAED,qCAAqC;YACrC,8CAA8C;YAC9C,IAAI,kBAAkB,IAAI,GAAG,EAAE,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA,CAAC,2BAA2B;gBAC3D,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAE/B,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;gBACjD,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAA;gBACrC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;gBAErB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBACxC,IAAI,IAAI,CAAC,gBAAgB;4BAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;QAClC,CAAC,CAAA;QAED;;;WAGG;QACH,sBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/C,CAAC,CAAA;QA9IC,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClD,CAAC;IAMO,0BAA0B,CAAC,QAAkB;QACnD,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAA;QACzC,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAA;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAA;QAC5D,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;QACjD,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA,CAAC,oCAAoC;IAC5D,CAAC;IAgIO,YAAY,CAAC,CAAS,EAAE,QAAgB;QAC9C,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5C,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACnC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACpC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACrC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACxC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACrC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACxC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YACvC,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YACzC,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAClC,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,QAAQ,CAAA;QACnB,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK;QAC7D,OAAO,CAAC,GAAG,GAAG;YACZ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACtE,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,CAAC;IAEO,YAAY,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO;QAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,OAAO,CAAC,CAAA;IACV,CAAC;IAEO,cAAc,CAAC,CAAS;QAC9B,OAAO,CAAC,CAAA,CAAC,SAAS;IACpB,CAAC;IAEO,gBAAgB,CAAC,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9D,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC;IAEO,cAAc,CAAC,CAAS;QAC9B,MAAM,EAAE,GAAG,MAAM,CAAA;QACjB,MAAM,EAAE,GAAG,IAAI,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACxC,CAAC;aAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;YACxB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;QAC9C,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACtG,CAAC;IAEO,cAAc,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;QAC3D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IACjG,CAAC;IAEO,eAAe,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;QAC5D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5F,CAAC;IAEO,iBAAiB,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;QAC/D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,qDAAqD;QACrD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACzG,CAAC;IAEO,UAAU,CAAC,CAAS,EAAE,QAAQ,GAAG,EAAE;QACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO;QACL,OAAO,cAAc,CAAC,uBAAuB,CAAA;IAC/C,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;YAC7D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"MoveToPointBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/MoveToPointBehaviour.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;IAwDzD;QACE,KAAK,EAAE,CAAA;QAxDT,YAAO,GAAY,IAAI,CAAA;QACvB;;WAEG;QACH,WAAM,GAAY,KAAK,CAAA;QACvB;;WAEG;QACH,gBAAW,GAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC;;WAEG;QACH,UAAK,GAAW,GAAG,CAAA;QACnB;;;WAGG;QACH,kBAAa,GAAY,KAAK,CAAA;QAC9B,qBAAgB,GAAY,KAAK,CAAA;QACjC;;WAEG;QACH,qBAAgB,GAAW,GAAG,CAAA;QAC9B;;;;WAIG;QACH,aAAQ,GAAW,CAAC,EAAE,CAAA;QAEtB;;;;WAIG;QACH,aAAQ,GAA4B,QAAQ,CAAA;QAC5C;;WAEG;QACH,wBAAmB,GAAW,EAAE,CAAA;QAChC;;WAEG;QACH,wBAAmB,GAAW,CAAC,CAAA;QAC/B;;;;WAIG;QACH,eAAU,GAAW,QAAQ,CAAA,CAAC,oBAAoB;QAElD,iBAAiB;QACT,wBAAmB,GAAyB,IAAI,GAAG,EAAE,CAAA;QACrD,qBAAgB,GAAU,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAQjD,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,oDAAoD;QACtD,CAAC,CAAA;QAYD,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAC/C,CAAC;gBACD,OAAM;YACR,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAA;YACrC,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAI,KAAK,CAAA;YAC/E,MAAM,aAAa,GACjB,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAElG,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAClD,CAAC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,IAAI,mBAAmB,EAAE,CAAC;oBACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;oBACjD,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;oBACjD,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAA;oBACrC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,CAAC,mBAAmB,IAAI,CAAC,iBAAiB,IAAI,aAAa,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAEhD,kGAAkG;YAClG,yDAAyD;YACzD,IAAI,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC/B,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBACxC,IAAI,IAAI,CAAC,gBAAgB;4BAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;oBACrD,CAAC;gBACH,CAAC;gBACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;gBAChC,OAAM,CAAC,0CAA0C;YACnD,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACzC,QAAQ,CAAC,oCAAoC,IAAI,UAAU,CAAA;YAE3D,IAAI,kBAAkB,GACpB,QAAQ,CAAC,wBAAwB,GAAG,CAAC;gBACnC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,GAAG,QAAQ,CAAC,wBAAwB;gBACnF,CAAC,CAAC,CAAC,CAAA;YAEP,uGAAuG;YACvG,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;YAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAE5E,2EAA2E;YAC3E,IAAI,cAAc,GAChB,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAA;YACpG,IAAI,cAAc,GAChB,QAAQ,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAA;YAEpG,mFAAmF;YACnF,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,kBAAkB,GAAG,GAAG,EAAE,CAAC;gBAC/D,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAA;gBAC5G,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAA;gBAE5G,MAAM,MAAM,GAAG,CAAC,YAAY,CAAA,CAAC,iCAAiC;gBAC9D,MAAM,MAAM,GAAG,YAAY,CAAA,CAAC,iCAAiC;gBAE7D,oEAAoE;gBACpE,gFAAgF;gBAChF,qFAAqF;gBACrF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAA,CAAC,gCAAgC;gBAC9F,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAA;gBAErE,MAAM,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAA;gBAE9F,QAAQ,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAAA;gBACnD,QAAQ,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,YAAY,CAAA;gBAEnD,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAA,CAAC,+BAA+B;YAChE,CAAC;iBAAM,CAAC;gBACN,8EAA8E;gBAC9E,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAA;gBAC3B,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAA;YAC7B,CAAC;YAED,qCAAqC;YACrC,8CAA8C;YAC9C,IAAI,kBAAkB,IAAI,GAAG,EAAE,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA,CAAC,2BAA2B;gBAC3D,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;gBAE/B,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;gBACjD,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAA;gBACrC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;gBAErB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBACxC,IAAI,IAAI,CAAC,gBAAgB;4BAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAA;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;YAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;QAClC,CAAC,CAAA;QAED,sBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/C,CAAC,CAAA;QA1IC,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClD,CAAC;IAMO,0BAA0B,CAAC,QAAkB;QACnD,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAA;QACzC,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAA;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAA;QAC5D,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,QAAQ,CAAC,oCAAoC,GAAG,CAAC,CAAA;QACjD,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA,CAAC,oCAAoC;IAC5D,CAAC;IA4HO,YAAY,CAAC,CAAS,EAAE,QAAgB;QAC9C,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5C,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACnC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACpC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACrC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACxC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACrC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YACxC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACtC,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YACvC,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YACzC,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAClC,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,QAAQ,CAAA;QACnB,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK;QAC7D,OAAO,CAAC,GAAG,GAAG;YACZ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACtE,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,CAAC;IAEO,YAAY,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO;QAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,OAAO,CAAC,CAAA;IACV,CAAC;IAEO,cAAc,CAAC,CAAS;QAC9B,OAAO,CAAC,CAAA,CAAC,SAAS;IACpB,CAAC;IAEO,gBAAgB,CAAC,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9D,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC;IAEO,cAAc,CAAC,CAAS;QAC9B,MAAM,EAAE,GAAG,MAAM,CAAA;QACjB,MAAM,EAAE,GAAG,IAAI,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACxC,CAAC;aAAM,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC;YACxB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;QAC9C,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,CAAS;QAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACtG,CAAC;IAEO,cAAc,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;QAC3D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IACjG,CAAC;IAEO,eAAe,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;QAC5D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5F,CAAC;IAEO,iBAAiB,CAAC,CAAS,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;QAC/D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACzG,CAAC;IAEO,UAAU,CAAC,CAAS,EAAE,QAAQ,GAAG,EAAE;QACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO;QACL,OAAO,cAAc,CAAC,uBAAuB,CAAA;IAC/C,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;YAC7D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IBehaviour } from './IBehaviour';
|
|
2
|
+
import type Particle from '../Particle';
|
|
3
|
+
import type Model from '../Model';
|
|
4
|
+
import type TurbulencePool from '../util/turbulencePool';
|
|
5
|
+
import BehaviourParser from '../parser/BehaviourParser';
|
|
6
|
+
/**
|
|
7
|
+
* Placeholder for unknown/custom behaviour names (e.g. when the editor loads
|
|
8
|
+
* a config that references a behaviour not registered in this context).
|
|
9
|
+
* No-ops in init/apply but preserves config for save/load.
|
|
10
|
+
*/
|
|
11
|
+
export default class PlaceholderBehaviour implements IBehaviour {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
priority: number;
|
|
14
|
+
name: string;
|
|
15
|
+
constructor(name: string);
|
|
16
|
+
getName(): string;
|
|
17
|
+
getParser(): BehaviourParser;
|
|
18
|
+
getProps(): Record<string, unknown>;
|
|
19
|
+
init(_particle: Particle, _model: Model, _turbulencePool: TurbulencePool): void;
|
|
20
|
+
apply(_particle: Particle, _deltaTime: number, _model: Model): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import BehaviourParser from '../parser/BehaviourParser';
|
|
2
|
+
/**
|
|
3
|
+
* Placeholder for unknown/custom behaviour names (e.g. when the editor loads
|
|
4
|
+
* a config that references a behaviour not registered in this context).
|
|
5
|
+
* No-ops in init/apply but preserves config for save/load.
|
|
6
|
+
*/
|
|
7
|
+
export default class PlaceholderBehaviour {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
this.enabled = true;
|
|
10
|
+
this.priority = 0;
|
|
11
|
+
this.name = '';
|
|
12
|
+
this.name = name;
|
|
13
|
+
}
|
|
14
|
+
getName() {
|
|
15
|
+
return this.name;
|
|
16
|
+
}
|
|
17
|
+
getParser() {
|
|
18
|
+
return new BehaviourParser(this);
|
|
19
|
+
}
|
|
20
|
+
getProps() {
|
|
21
|
+
const props = {};
|
|
22
|
+
for (const key of Object.keys(this)) {
|
|
23
|
+
if (typeof this[key] !== 'function') {
|
|
24
|
+
props[key] = this[key];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return props;
|
|
28
|
+
}
|
|
29
|
+
init(_particle, _model, _turbulencePool) {
|
|
30
|
+
// no-op
|
|
31
|
+
}
|
|
32
|
+
apply(_particle, _deltaTime, _model) {
|
|
33
|
+
// no-op
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=PlaceholderBehaviour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaceholderBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PlaceholderBehaviour.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,MAAM,2BAA2B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAKvC,YAAY,IAAY;QAJxB,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,SAAI,GAAG,EAAE,CAAA;QAGP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAA4B,EAAE,CAAA;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,OAAQ,IAAY,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC7C,KAAK,CAAC,GAAG,CAAC,GAAI,IAAY,CAAC,GAAG,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,SAAmB,EAAE,MAAa,EAAE,eAA+B;QACtE,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,SAAmB,EAAE,UAAkB,EAAE,MAAa;QAC1D,QAAQ;IACV,CAAC;CACF"}
|
|
@@ -27,8 +27,7 @@ export default class SoundReactiveBehaviour extends Behaviour {
|
|
|
27
27
|
apply(particle, deltaTime) {
|
|
28
28
|
if (!this.enabled || !this.analyser || !this.frequencyData || !this.isPlaying)
|
|
29
29
|
return;
|
|
30
|
-
// Update frequency data
|
|
31
|
-
// @ts-ignore
|
|
30
|
+
// Update frequency data (cast for Web Audio API: expects Uint8Array<ArrayBuffer>, not ArrayBufferLike)
|
|
32
31
|
this.analyser.getByteFrequencyData(this.frequencyData);
|
|
33
32
|
// Compute amplitude and frequency effects
|
|
34
33
|
const amplitude = this.getAmplitude();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoundReactiveBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/SoundReactiveBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QAEZ,cAAS,GAAY,KAAK,CAAA;QAC1B,aAAQ,GAAY,IAAI,CAAA;QACxB,YAAO,GAAY,IAAI,CAAA;QACvB,gBAAW,GAAY,IAAI,CAAA;QAC3B,gBAAW,GAAY,IAAI,CAAA,CAAC,4BAA4B;QACxD,mBAAc,GAAY,IAAI,CAAA,CAAC,iCAAiC;QAChE,cAAS,GAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,2CAA2C;QACtF,iBAAY,GAAwB,IAAI,CAAA,CAAC,6BAA6B;QACtE,aAAQ,GAAwB,IAAI,CAAA,CAAC,sBAAsB;QAC3D,kBAAa,GAAsB,IAAI,CAAA,CAAC,uBAAuB;QAC/D,oBAAe,GAAG,GAAG,CAAA,CAAC,qCAAqC;QAC3D,oBAAe,GAAG,CAAC,CAAA,CAAC,qCAAqC;QACzD,mBAAc,GAAG,IAAI,CAAA,CAAC,oCAAoC;QAC1D,oBAAe,GAAG,CAAC,CAAA,CAAC,8BAA8B;QAClD,mBAAc,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,8BAA8B;
|
|
1
|
+
{"version":3,"file":"SoundReactiveBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/SoundReactiveBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QAEZ,cAAS,GAAY,KAAK,CAAA;QAC1B,aAAQ,GAAY,IAAI,CAAA;QACxB,YAAO,GAAY,IAAI,CAAA;QACvB,gBAAW,GAAY,IAAI,CAAA;QAC3B,gBAAW,GAAY,IAAI,CAAA,CAAC,4BAA4B;QACxD,mBAAc,GAAY,IAAI,CAAA,CAAC,iCAAiC;QAChE,cAAS,GAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,2CAA2C;QACtF,iBAAY,GAAwB,IAAI,CAAA,CAAC,6BAA6B;QACtE,aAAQ,GAAwB,IAAI,CAAA,CAAC,sBAAsB;QAC3D,kBAAa,GAAsB,IAAI,CAAA,CAAC,uBAAuB;QAC/D,oBAAe,GAAG,GAAG,CAAA,CAAC,qCAAqC;QAC3D,oBAAe,GAAG,CAAC,CAAA,CAAC,qCAAqC;QACzD,mBAAc,GAAG,IAAI,CAAA,CAAC,oCAAoC;QAC1D,oBAAe,GAAG,CAAC,CAAA,CAAC,8BAA8B;QAClD,mBAAc,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,8BAA8B;IAwHjE,CAAC;IAtHC,IAAI;QACF,EAAE;IACJ,CAAC;IAED,KAAK,CAAC,QAAkB,EAAE,SAAiB;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAM;QAErF,uGAAuG;QACvG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAmD,CAAC,CAAA;QAE5F,0CAA0C;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAErD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,iCAAiC;YACjC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;YAC/D,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QACjE,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,iDAAiD;YACjD,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;YACnG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,iBAAiB,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;QACrG,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,oDAAoD;YACpD,QAAQ,CAAC,QAAQ,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QAC1E,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,+CAA+C;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;gBAC1E,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC1B,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA,CAAC,0BAA0B;YAC/D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,sBAAsB;gBAC3E,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACpD,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACpD,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA,CAAC,2BAA2B;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,CAAA;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACzD,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,oBAAoB;;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,CAAA;QAEjC,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC;gBACzC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;gBACpC,aAAa,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,aAAa,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,mCAAI,CAAC,CAAC,CAAA;IACnG,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB;QAC9B,OAAO,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA,CAAC,+BAA+B;IAC/E,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,sDAAsD;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,iCAAiC;QAC7C,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,cAAc,CAAC,wBAAwB,CAAA;IAChD,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,uCAAuC;YAC5E,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,yCAAyC;YACpE,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -10,6 +10,8 @@ export default class SpawnBehaviour extends Behaviour {
|
|
|
10
10
|
trailSpeed: number;
|
|
11
11
|
trailRepeat: boolean;
|
|
12
12
|
trailStart: number;
|
|
13
|
+
trailRangeSegments: number;
|
|
14
|
+
trailRangeWeightFactor: number;
|
|
13
15
|
currentProgress: number;
|
|
14
16
|
customPoints: any[];
|
|
15
17
|
lastWordSettings: any;
|
|
@@ -81,6 +83,8 @@ export default class SpawnBehaviour extends Behaviour {
|
|
|
81
83
|
trailSpeed: number;
|
|
82
84
|
trailRepeat: boolean;
|
|
83
85
|
trailStart: number;
|
|
86
|
+
trailRangeSegments: number;
|
|
87
|
+
trailRangeWeightFactor: number;
|
|
84
88
|
customPoints: any[];
|
|
85
89
|
name: string;
|
|
86
90
|
};
|