custom-pixi-particles 4.31.0 → 4.32.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 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
@@ -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
@@ -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,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;AAED,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,8BAA8B,EAE9B,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,UAAU,GACX,CAAA"}
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: any;
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: () => any;
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 {any} behaviour The behaviour to add
24
+ * @param {IBehaviour} behaviour The behaviour to add
23
25
  *
24
- * @return {any} The added behaviour
26
+ * @return {IBehaviour} The added behaviour
25
27
  */
26
- add: (behaviour: any) => any;
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) => any;
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 {any} behaviour The behaviour to add
29
+ * @param {IBehaviour} behaviour The behaviour to add
29
30
  *
30
- * @return {any} The added behaviour
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
- if (this.behaviours[i].update)
112
- this.behaviours[i].update(deltaTime);
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
- if (typeof this.behaviours[i].onParticleRemoved === 'function') {
123
- this.behaviours[i].onParticleRemoved(particle);
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":"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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IBehaviour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/IBehaviour.ts"],"names":[],"mappings":""}
@@ -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"}
@@ -21,4 +21,6 @@ import LightEffectBehaviour from './LightEffectBehaviour';
21
21
  import StretchBehaviour from './StretchBehaviour';
22
22
  import TemperatureBehaviour from './TemperatureBehaviour';
23
23
  import MoveToPointBehaviour from './MoveToPointBehaviour';
24
+ export type { IBehaviour } from './IBehaviour';
25
+ export { BehaviourRegistry } from './BehaviourRegistry';
24
26
  export { EmitterBehaviours, Behaviour, SpawnBehaviour, LifeBehaviour, PositionBehaviour, ColorBehaviour, SizeBehaviour, AngularVelocityBehaviour, EmitDirectionBehaviour, RotationBehaviour, TurbulenceBehaviour, CollisionBehaviour, AttractionRepulsionBehaviour, NoiseBasedMotionBehaviour, ForceFieldsBehaviour, TimelineBehaviour, GroupingBehaviour, SoundReactiveBehaviour, LightEffectBehaviour, StretchBehaviour, TemperatureBehaviour, BehaviourNames, MoveToPointBehaviour, };
@@ -21,5 +21,6 @@ import LightEffectBehaviour from './LightEffectBehaviour';
21
21
  import StretchBehaviour from './StretchBehaviour';
22
22
  import TemperatureBehaviour from './TemperatureBehaviour';
23
23
  import MoveToPointBehaviour from './MoveToPointBehaviour';
24
+ export { BehaviourRegistry } from './BehaviourRegistry';
24
25
  export { EmitterBehaviours, Behaviour, SpawnBehaviour, LifeBehaviour, PositionBehaviour, ColorBehaviour, SizeBehaviour, AngularVelocityBehaviour, EmitDirectionBehaviour, RotationBehaviour, TurbulenceBehaviour, CollisionBehaviour, AttractionRepulsionBehaviour, NoiseBasedMotionBehaviour, ForceFieldsBehaviour, TimelineBehaviour, GroupingBehaviour, SoundReactiveBehaviour, LightEffectBehaviour, StretchBehaviour, TemperatureBehaviour, BehaviourNames, MoveToPointBehaviour, };
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/behaviour/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,4BAA4B,MAAM,gCAAgC,CAAA;AACzE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,yBAAyB,MAAM,6BAA6B,CAAA;AACnE,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/behaviour/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,4BAA4B,MAAM,gCAAgC,CAAA;AACzE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,yBAAyB,MAAM,6BAA6B,CAAA;AACnE,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AACjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AACzD,OAAO,oBAAoB,MAAM,wBAAwB,CAAA;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,CAAA"}
@@ -47,13 +47,15 @@ export default class EmitterParser {
47
47
  */
48
48
  getExistingOrCreate: (name: string, existingBehaviours: any) => any;
49
49
  /**
50
- * Creates a new behaviour
50
+ * Creates a new behaviour by name. Uses BehaviourRegistry first (custom behaviours),
51
+ * then falls back to built-in behaviours.
51
52
  * @param {string} name - The name of the behaviour to create
52
53
  * @return {any} The new behaviour
53
54
  */
54
55
  createBehaviour: (name: string) => any;
55
56
  /**
56
- * Creates a new behaviour properties
57
+ * Creates a new behaviour properties (for config schema / editor).
58
+ * Uses BehaviourRegistry first for custom behaviours.
57
59
  * @param {string} name - The name of the behaviour to create
58
60
  * @return {any} The new behaviour properties
59
61
  */
@@ -2,6 +2,8 @@
2
2
  import CompatibilityHelper from './CompatibilityHelper';
3
3
  import * as emissions from '../emission';
4
4
  import * as behaviours from '../behaviour';
5
+ import { BehaviourRegistry } from '../behaviour/BehaviourRegistry';
6
+ import PlaceholderBehaviour from '../behaviour/PlaceholderBehaviour';
5
7
  /**
6
8
  * @class EmitterParser
7
9
  * @description This class parses an Emitter object
@@ -136,22 +138,38 @@ export default class EmitterParser {
136
138
  return this.createBehaviour(name);
137
139
  };
138
140
  /**
139
- * Creates a new behaviour
141
+ * Creates a new behaviour by name. Uses BehaviourRegistry first (custom behaviours),
142
+ * then falls back to built-in behaviours.
140
143
  * @param {string} name - The name of the behaviour to create
141
144
  * @return {any} The new behaviour
142
145
  */
143
146
  this.createBehaviour = (name) => {
144
- // @ts-ignore
145
- return new behaviours[name]();
147
+ const CustomBehaviour = BehaviourRegistry.get(name);
148
+ if (CustomBehaviour) {
149
+ return new CustomBehaviour();
150
+ }
151
+ const BuiltIn = behaviours[name];
152
+ if (BuiltIn && typeof BuiltIn === 'function') {
153
+ return new BuiltIn();
154
+ }
155
+ return new PlaceholderBehaviour(name);
146
156
  };
147
157
  /**
148
- * Creates a new behaviour properties
158
+ * Creates a new behaviour properties (for config schema / editor).
159
+ * Uses BehaviourRegistry first for custom behaviours.
149
160
  * @param {string} name - The name of the behaviour to create
150
161
  * @return {any} The new behaviour properties
151
162
  */
152
163
  this.createBehaviourProps = (name) => {
153
- // @ts-ignore
154
- return new behaviours[name]().getProps();
164
+ const CustomBehaviour = BehaviourRegistry.get(name);
165
+ if (CustomBehaviour) {
166
+ return new CustomBehaviour().getProps();
167
+ }
168
+ const BuiltIn = behaviours[name];
169
+ if (BuiltIn && typeof BuiltIn === 'function') {
170
+ return new BuiltIn().getProps();
171
+ }
172
+ return new PlaceholderBehaviour(name).getProps();
155
173
  };
156
174
  /**
157
175
  * Creates a new emission controller
@@ -1 +1 @@
1
- {"version":3,"file":"EmitterParser.js","sourceRoot":"","sources":["../../../src/lib/parser/EmitterParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmitterParser.js","sourceRoot":"","sources":["../../../src/lib/parser/EmitterParser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -41,9 +41,12 @@
41
41
  },
42
42
  "scripts": {
43
43
  "build": "npm run clean-dist && tsc && node copy.js",
44
+ "build:browser:v6": "npm install pixi.js-legacy@6.5.10 --no-save && npx esbuild dist/index.js --bundle --format=esm --outfile=dist/browser-bundle-v6.js --platform=browser --target=es2020 --sourcemap && npm install pixi.js-legacy@6.5.10 --no-save",
45
+ "build:browser:v7": "npm install pixi.js@7.3.2 --no-save && npx esbuild dist/index.js --bundle --format=esm --outfile=dist/browser-bundle-v7.js --platform=browser --target=es2020 --sourcemap && npm install pixi.js@7.3.2 --no-save",
46
+ "build:browser:v8": "npm install pixi.js@8.13.2 --no-save && npx esbuild dist/index.js --bundle --format=esm --outfile=dist/browser-bundle-v8.js --platform=browser --target=es2020 --sourcemap && npm install pixi.js@8.13.2 --no-save",
44
47
  "clean-dist": "rimraf dist/*",
45
48
  "lint": "tslint 'src/**/*.ts'",
46
49
  "lint:fix": "tslint --fix 'src/**/*.ts'"
47
50
  },
48
- "version": "4.31.0"
51
+ "version": "4.32.0"
49
52
  }