@woosh/meep-engine 2.120.5 → 2.121.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/editor/view/node-graph/NodeGraphEditorView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeGraphView.d.ts.map +1 -1
- package/editor/view/node-graph/NodeView.d.ts.map +1 -1
- package/editor/view/node-graph/PortView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/codegen/LineBuilder.d.ts +2 -2
- package/src/core/codegen/LineBuilder.d.ts.map +1 -1
- package/src/core/codegen/LineBuilder.js +14 -9
- package/src/core/collection/array/array_set_diff_sorting.d.ts +1 -1
- package/src/core/collection/array/array_set_diff_sorting.js +1 -1
- package/src/core/color/oklab/find_cusp.d.ts.map +1 -1
- package/src/core/color/oklab/find_cusp.js +4 -1
- package/src/core/color/oklab/oklab_to_linear_srgb.d.ts.map +1 -1
- package/src/core/color/oklab/oklab_to_linear_srgb.js +1 -0
- package/src/core/color/operations/color_lighten.d.ts +1 -1
- package/src/core/color/operations/color_lighten.d.ts.map +1 -1
- package/src/core/color/operations/color_lighten.js +6 -1
- package/src/core/geom/Vector1.d.ts.map +1 -1
- package/src/core/geom/Vector1.js +15 -2
- package/src/core/process/action/AsynchronousDelayAction.js +1 -1
- package/src/engine/EntityCreator.js +1 -1
- package/src/engine/achievements/AchievementManager.js +1 -1
- package/src/engine/animation/AnimationUtils.js +1 -1
- package/src/engine/animation/async/prototypeAsyncAnimation.js +2 -2
- package/src/engine/animation/behavior/animateProperty.js +1 -1
- package/src/engine/animation/playTrackRealTime.js +1 -1
- package/src/engine/ecs/Entity.d.ts.map +1 -1
- package/src/engine/ecs/Entity.js +12 -7
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +14 -7
- package/src/engine/ecs/EntityReference.d.ts +4 -4
- package/src/engine/ecs/EntityReference.js +4 -4
- package/src/engine/ecs/dynamic_actions/DynamicActorSystem.js +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.d.ts +8 -2
- package/src/engine/ecs/speaker/VoiceSystem.d.ts.map +1 -1
- package/src/engine/ecs/speaker/VoiceSystem.js +1 -1
- package/src/engine/ecs/util/hideEntityGracefully.js +3 -3
- package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/filter/setup_filtered_camera_controller.js +6 -6
- package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +1 -1
- package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +1 -1
- package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +2 -2
- package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +1 -1
- package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +1 -1
- package/src/engine/graphics/ecs/trail2d/prototypeTrail2D.js +1 -1
- package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +1 -1
- package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +2 -2
- package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +4 -4
- package/src/engine/graphics/sh3/path_tracer/make_one_vector3.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/make_sky_hosek.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/make_sky_rtiw.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/make_zero_vector3.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.js +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts +79 -3
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +24 -8
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponentSerializationAdapter.js +2 -2
- package/src/engine/intelligence/behavior/ecs/BehaviorSystem.d.ts +33 -7
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts +3 -2
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/ActionBehavior.js +7 -5
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts +10 -9
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/primitive/SucceedingBehavior.js +19 -20
- package/src/engine/physics/fluid/prototype.js +1 -1
- package/src/engine/physics/inverse_kinematics/fabrik/prototype.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeGraphEditorView.d.ts","sourceRoot":"","sources":["NodeGraphEditorView.js"],"names":[],"mappings":"AAUA;IACI;;;;;;;OAOG;IACH,
|
|
1
|
+
{"version":3,"file":"NodeGraphEditorView.d.ts","sourceRoot":"","sources":["NodeGraphEditorView.js"],"names":[],"mappings":"AAUA;IACI;;;;;;;OAOG;IACH,8DANW,SAAS,EAqFnB;IA5EG;;;OAGG;IACH,QAFU,eAAe,CAEL;IACpB;;;OAGG;IACH,QAFU,mBAAmB,CAET;IAEpB;;;OAGG;IACH,OAFU,SAAS,CAED;IAElB,mBAAuC;IA6D3C,eAEC;IAED,yBAgEC;CACJ;iBAxKgB,2BAA2B;gCACG,oBAAoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeGraphView.d.ts","sourceRoot":"","sources":["NodeGraphView.js"],"names":[],"mappings":"AAeA;IAEQ,kBAA6B;IAC7B;;;OAGG;IACH,OAFU,OAAO,CAEU;CAElC;AAOD;IACI;;;;;;OAMG;IACH,
|
|
1
|
+
{"version":3,"file":"NodeGraphView.d.ts","sourceRoot":"","sources":["NodeGraphView.js"],"names":[],"mappings":"AAeA;IAEQ,kBAA6B;IAC7B;;;OAGG;IACH,OAFU,OAAO,CAEU;CAElC;AAOD;IACI;;;;;;OAMG;IACH,2DALW,SAAS,EAsOnB;IA9NG;;;OAGG;IACH,QAFU,eAAe,CAEL;IAEpB;;;OAGG;IACH,OAFU,SAAS,CAED;IAElB;;;OAGG;IACH,QAFU,mBAAmB,CAET;IAEpB;;;OAGG;IACH,WAFU,IAAI,CAAC,MAAM,CAAC,CAEK;IAE3B,mBAAuC;IAwM3C,qCA8DC;IAGD;;;;;;;OAOG;IACH,wDAFa,OAAO,CAcnB;IAED;;;;;;OAMG;IACH,oBALW,wBAAwB,UACxB,OAAO,UACP,OAAO,YACP,cAAc,QAyCxB;IAED;;;;OAIG;IACH,mCAHW,yBAAyB,UACzB,OAAO,QAiBjB;IAED;;;;OAIG;IACH,kCAHW,OAAO,UACP,OAAO,QAUjB;IAED;;;;OAIG;IACH,kCAHW,OAAO,UACP,OAAO,QAUjB;CACJ;oBA9bmB,mCAAmC;oBACnC,mCAAmC;iBAHtC,2BAA2B;iBAM3B,2CAA2C;0CAGlB,sEAAsE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeView.d.ts","sourceRoot":"","sources":["NodeView.js"],"names":[],"mappings":"AAWA;IACI;;;;;;;OAOG;IACH,
|
|
1
|
+
{"version":3,"file":"NodeView.d.ts","sourceRoot":"","sources":["NodeView.js"],"names":[],"mappings":"AAWA;IACI;;;;;;;OAOG;IACH,4EANW,YAAY,EAkHtB;IAzGG;;;OAGG;IACH,MAFU,YAAY,CAEN;IAChB;;;OAGG;IACH,QAFU,cAAc,CAEJ;IAEpB,mBAAuC;IAgG3C,eAGC;CACJ;iBA/HgB,2BAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortView.d.ts","sourceRoot":"","sources":["PortView.js"],"names":[],"mappings":"AAUA;IACI;;;;;OAKG;IACH,
|
|
1
|
+
{"version":3,"file":"PortView.d.ts","sourceRoot":"","sources":["PortView.js"],"names":[],"mappings":"AAUA;IACI;;;;;OAKG;IACH,0CAJW,IAAI,EAkDd;IA3CG;;;OAGG;IACH,MAFU,IAAI,CAEE;IAChB;;;OAGG;IACH,QAFU,cAAc,CAEJ;IAEpB,mBAAuC;IAkC3C,eAEC;CACJ;iBApEgB,2BAA2B"}
|
package/package.json
CHANGED
|
@@ -37,7 +37,7 @@ declare class LineBuilder {
|
|
|
37
37
|
*/
|
|
38
38
|
indent(): LineBuilder;
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* NOTE: clamps indentation to 0 (can't go negative)
|
|
41
41
|
* @returns {LineBuilder}
|
|
42
42
|
*/
|
|
43
43
|
dedent(): LineBuilder;
|
|
@@ -54,7 +54,7 @@ declare class LineBuilder {
|
|
|
54
54
|
addLines(lines: LineBuilder): void;
|
|
55
55
|
clear(): void;
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* Renders out an indented string of lines
|
|
58
58
|
* @returns {string}
|
|
59
59
|
*/
|
|
60
60
|
build(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/LineBuilder.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"LineBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/LineBuilder.js"],"names":[],"mappings":";AAgCA;;GAEG;AACH;IAuJI;;;;OAIG;IACH,sBAJW,MAAM,mBACN,MAAM,GACJ,WAAW,CAuBvB;IAnKD;;;;OAIG;IACH,mBAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,cAFU,MAAM,CAEqB;IAErC;;;OAGG;IACH,aAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,wBAFW,MAAM,GADL,OAAO,CAoBlB;IAED;;;OAGG;IACH,UAFa,WAAW,CAKvB;IAED;;;OAGG;IACH,UAFa,WAAW,CAQvB;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,WAAW,CASvB;IAED;;;OAGG;IACH,gBAFW,WAAW,QAiBrB;IAED,cAGC;IAED;;;OAGG;IACH,SAFa,MAAM,CAyBlB;IA8BD,mBAEC;;CACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assert } from "../assert.js";
|
|
2
|
+
import { string_repeat } from "../primitives/strings/string_repeat.js";
|
|
2
3
|
|
|
3
4
|
class Line {
|
|
4
5
|
/**
|
|
@@ -103,13 +104,14 @@ class LineBuilder {
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
/**
|
|
106
|
-
*
|
|
107
|
+
* NOTE: clamps indentation to 0 (can't go negative)
|
|
107
108
|
* @returns {LineBuilder}
|
|
108
109
|
*/
|
|
109
110
|
dedent() {
|
|
110
|
-
assert.greaterThan(this.#indentation, 0, 'indentation is already at 0');
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
// clamp to 0
|
|
113
|
+
this.#indentation = Math.max(0, this.#indentation - 1);
|
|
114
|
+
|
|
113
115
|
return this;
|
|
114
116
|
}
|
|
115
117
|
|
|
@@ -154,23 +156,26 @@ class LineBuilder {
|
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
/**
|
|
157
|
-
*
|
|
159
|
+
* Renders out an indented string of lines
|
|
158
160
|
* @returns {string}
|
|
159
161
|
*/
|
|
160
162
|
build() {
|
|
161
163
|
const result = [];
|
|
162
164
|
|
|
163
|
-
let i, j, l;
|
|
164
|
-
|
|
165
165
|
const lines = this.#lines;
|
|
166
|
+
const line_count = lines.length;
|
|
167
|
+
|
|
168
|
+
const indent_string = string_repeat(' ', this.indentSpaces);
|
|
166
169
|
|
|
167
|
-
for (i = 0
|
|
170
|
+
for (let i = 0; i < line_count; i++) {
|
|
168
171
|
const line = lines[i];
|
|
169
172
|
|
|
170
173
|
let indentString = '';
|
|
171
174
|
|
|
172
|
-
|
|
173
|
-
|
|
175
|
+
const indent_count = line.indentation;
|
|
176
|
+
|
|
177
|
+
for (let j = 0; j < indent_count; j++) {
|
|
178
|
+
indentString += indent_string;
|
|
174
179
|
}
|
|
175
180
|
|
|
176
181
|
result.push(indentString + line.text);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @template T
|
|
4
4
|
* @param {T[]} a
|
|
5
5
|
* @param {T[]} b
|
|
6
|
-
* @param {function(a:T,b:T):number}
|
|
6
|
+
* @param {function(a:T,b:T):number} compare
|
|
7
7
|
* @returns {{uniqueA:T[], uniqueB:T[], common:T[]}}
|
|
8
8
|
*/
|
|
9
9
|
export function array_set_diff_sorting<T>(a: T[], b: T[], compare: any): {
|
|
@@ -7,7 +7,7 @@ import { assert } from "../../assert.js";
|
|
|
7
7
|
* @template T
|
|
8
8
|
* @param {T[]} a
|
|
9
9
|
* @param {T[]} b
|
|
10
|
-
* @param {function(a:T,b:T):number}
|
|
10
|
+
* @param {function(a:T,b:T):number} compare
|
|
11
11
|
* @returns {{uniqueA:T[], uniqueB:T[], common:T[]}}
|
|
12
12
|
*/
|
|
13
13
|
export function array_set_diff_sorting(a, b, compare) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find_cusp.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/find_cusp.js"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,kCAJW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,
|
|
1
|
+
{"version":3,"file":"find_cusp.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/find_cusp.js"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,kCAJW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,QAgBhB"}
|
|
@@ -19,7 +19,10 @@ export function find_cusp(output, a, b) {
|
|
|
19
19
|
|
|
20
20
|
// Convert to linear sRGB to find the first point where at least one of r,g or b >= 1:
|
|
21
21
|
oklab_to_linear_srgb(rgb_at_max, 1, S_cusp * a, S_cusp * b);
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
const max_component = max3(rgb_at_max[0], rgb_at_max[1], rgb_at_max[2]);
|
|
24
|
+
|
|
25
|
+
const L_cusp = Math.cbrt(1. / max_component);
|
|
23
26
|
const C_cusp = L_cusp * S_cusp;
|
|
24
27
|
|
|
25
28
|
output[0] = L_cusp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oklab_to_linear_srgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/oklab_to_linear_srgb.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,
|
|
1
|
+
{"version":3,"file":"oklab_to_linear_srgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/oklab_to_linear_srgb.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,QAehB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color_lighten.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/operations/color_lighten.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,qCAJW,KAAK,WACL,MAAM,GACJ,KAAK,
|
|
1
|
+
{"version":3,"file":"color_lighten.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/operations/color_lighten.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,qCAJW,KAAK,WACL,MAAM,GACJ,KAAK,CAoBjB;sBA9BqB,aAAa"}
|
|
@@ -9,13 +9,18 @@ const hsv = [0, 0, 0];
|
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
11
11
|
* @param {Color} input
|
|
12
|
-
* @param {number} amount
|
|
12
|
+
* @param {number} [amount]
|
|
13
13
|
* @returns {Color}
|
|
14
14
|
*/
|
|
15
15
|
export function color_lighten(input, amount = 1) {
|
|
16
16
|
assert.isNumber(amount, 'amount');
|
|
17
17
|
assert.greaterThanOrEqual(amount, 0, 'amount');
|
|
18
18
|
|
|
19
|
+
if (amount === 0) {
|
|
20
|
+
// skip allocation, no change
|
|
21
|
+
return input;
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
const r = new Color();
|
|
20
25
|
|
|
21
26
|
linear_srgb_to_okhsv(hsv, input.r, input.g, input.b);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector1.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector1.js"],"names":[],"mappings":";AAWA;
|
|
1
|
+
{"version":3,"file":"Vector1.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector1.js"],"names":[],"mappings":";AAWA;IA4QI;;;;;OAKG;IACH,kBAJW,OAAO,KACP,OAAO,GACN,MAAM,CAIjB;IAnRD;;;;;;OAMG;IACH,gBALW,MAAM,EAchB;IAHG,UAAU;IAEV,0DAA6B;IAWjC;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,iBAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;OAIG;IACH,OAHW,MAAM,GACJ,OAAO,CAgBnB;IAED;;;OAGG;IACH,aAFW,MAAM,QAOhB;IAED;;;OAGG;IACH,UAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,kBAEC;IAED;;;OAGG;IACH,kBAEC;IAED;;;;OAIG;IACH,iBAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,WAFW,OAAO,GAAC,OAAO,GAAC,OAAO,GAAC,OAAO,WAKzC;IAED;;;;OAIG;IACH,iBAFY,OAAO,CAIlB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;OAIG;IACH,gBAHW,OAAO,GACL,OAAO,CAInB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAIhB;IAED;;;;;OAKG;IACH,WAJW,MAAM,QACN,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,eAEC;IAED;;;OAGG;IACH,YAFW,OAAO,GAAC,OAAO,GAAC,OAAO,GAAC,OAAO,QAIzC;IAED;;;OAGG;IACH,SAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,OAAO,CAInB;IAED;;OAEG;IACH,QAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,4BAGC;IAED,iBAEC;IAED,yBAEC;IAED;;;;OAIG;IACH,qBAHW,MAAM,EAAE,WACR,MAAM,QAIhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,EAAE,WACR,MAAM,QAIhB;IAED,oBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAMtB;IAkBD,iBAEC;IAND,gBAEC;IAaL;;;OAGG;IACH,oBAFU,OAAO,CAEU;IAXvB,sDAIC;CACJ;;;cAaS,OAAO;aAOP,OAAO;;mBA9TE,4BAA4B"}
|
package/src/core/geom/Vector1.js
CHANGED
|
@@ -45,7 +45,7 @@ class Vector1 extends Number {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Currently held value
|
|
49
49
|
* @returns {number}
|
|
50
50
|
*/
|
|
51
51
|
getValue() {
|
|
@@ -53,7 +53,7 @@ class Vector1 extends Number {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
56
|
+
* Useful for sorting
|
|
57
57
|
* @param {Vector1} other
|
|
58
58
|
* @returns {number}
|
|
59
59
|
*/
|
|
@@ -101,10 +101,18 @@ class Vector1 extends Number {
|
|
|
101
101
|
return this.x === 0;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Increase value by 1.
|
|
106
|
+
* `value++`
|
|
107
|
+
*/
|
|
104
108
|
increment() {
|
|
105
109
|
this._add(1);
|
|
106
110
|
}
|
|
107
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Decrease value by 1.
|
|
114
|
+
* `value--`
|
|
115
|
+
*/
|
|
108
116
|
decrement() {
|
|
109
117
|
this._add(-1);
|
|
110
118
|
}
|
|
@@ -123,6 +131,7 @@ class Vector1 extends Number {
|
|
|
123
131
|
* @param {Vector1|Vector2|Vector3|Vector4} other
|
|
124
132
|
*/
|
|
125
133
|
add(other) {
|
|
134
|
+
assert.isObject(other,"other");
|
|
126
135
|
return this._add(other.x);
|
|
127
136
|
}
|
|
128
137
|
|
|
@@ -278,6 +287,8 @@ class Vector1 extends Number {
|
|
|
278
287
|
return a.x - b.x;
|
|
279
288
|
}
|
|
280
289
|
|
|
290
|
+
// pretending to be an array
|
|
291
|
+
|
|
281
292
|
get 0() {
|
|
282
293
|
return this.x;
|
|
283
294
|
}
|
|
@@ -302,12 +313,14 @@ Vector1.prototype.isVector1 = true;
|
|
|
302
313
|
Vector1.typeName = "Vector1";
|
|
303
314
|
|
|
304
315
|
/**
|
|
316
|
+
* Utility singleton
|
|
305
317
|
* @readonly
|
|
306
318
|
* @type {Vector1}
|
|
307
319
|
*/
|
|
308
320
|
Vector1.zero = Object.freeze(new Vector1(0));
|
|
309
321
|
|
|
310
322
|
/**
|
|
323
|
+
* Utility singleton
|
|
311
324
|
* @readonly
|
|
312
325
|
* @type {Vector1}
|
|
313
326
|
*/
|
|
@@ -25,7 +25,7 @@ export class AsynchronousDelayAction extends AsynchronousAction {
|
|
|
25
25
|
|
|
26
26
|
this.__entity = new Entity();
|
|
27
27
|
|
|
28
|
-
this.__entity.add(BehaviorComponent.
|
|
28
|
+
this.__entity.add(BehaviorComponent.from(
|
|
29
29
|
SequenceBehavior.from([
|
|
30
30
|
DelayBehavior.from(time),
|
|
31
31
|
new ActionBehavior(() => {
|
|
@@ -61,7 +61,7 @@ export function createSound(
|
|
|
61
61
|
|
|
62
62
|
builder
|
|
63
63
|
.add(SerializationMetadata.Transient) //make sound transient
|
|
64
|
-
.add(BehaviorComponent.
|
|
64
|
+
.add(BehaviorComponent.from(SequenceBehavior.from([
|
|
65
65
|
DelayBehavior.from(timeout),
|
|
66
66
|
DieBehavior.create()
|
|
67
67
|
])))
|
|
@@ -317,7 +317,7 @@ export class AchievementManager extends EnginePlugin {
|
|
|
317
317
|
DieBehavior.create()
|
|
318
318
|
]);
|
|
319
319
|
|
|
320
|
-
const cBehavior = BehaviorComponent.
|
|
320
|
+
const cBehavior = BehaviorComponent.from(sequenceBehavior);
|
|
321
321
|
|
|
322
322
|
//use system clock for behavior
|
|
323
323
|
cBehavior.clock = ClockChannelType.Simulation;
|
|
@@ -43,7 +43,7 @@ export function stopTrailAndNotifyOnceFinished(entity, ecd) {
|
|
|
43
43
|
trail.clearFlag(Trail2DFlags.Spawning);
|
|
44
44
|
|
|
45
45
|
new Entity()
|
|
46
|
-
.add(BehaviorComponent.
|
|
46
|
+
.add(BehaviorComponent.from(SequenceBehavior.from([
|
|
47
47
|
DelayBehavior.fromJSON({ value: trail.maxAge }),
|
|
48
48
|
new ActionBehavior(resolve)
|
|
49
49
|
])))
|
|
@@ -179,7 +179,7 @@ async function main(engine) {
|
|
|
179
179
|
// simulate data arriving from the network
|
|
180
180
|
const sample_delay = RandomDelayBehavior.from(0.5, 1);
|
|
181
181
|
new Entity()
|
|
182
|
-
.add(BehaviorComponent.
|
|
182
|
+
.add(BehaviorComponent.from(RepeatBehavior.from(
|
|
183
183
|
SequenceBehavior.from([
|
|
184
184
|
sample_delay,
|
|
185
185
|
new ActionBehavior(addSample)
|
|
@@ -219,7 +219,7 @@ async function main(engine) {
|
|
|
219
219
|
width: 0.2
|
|
220
220
|
}))
|
|
221
221
|
.add(ShadedGeometry.from(new OctahedronBufferGeometry(1, 5), new MeshStandardMaterial()))
|
|
222
|
-
.add(BehaviorComponent.
|
|
222
|
+
.add(BehaviorComponent.from(RepeatBehavior.from(
|
|
223
223
|
new ActionBehavior((delta) => {
|
|
224
224
|
if (sim_parameters.playing) {
|
|
225
225
|
sim_parameters.play_time += delta;
|
|
@@ -25,7 +25,7 @@ export async function animateProperty(ecd, entity, component, property, target,
|
|
|
25
25
|
|
|
26
26
|
const builder = new Entity()
|
|
27
27
|
.add(SerializationMetadata.Transient)
|
|
28
|
-
.add(BehaviorComponent.
|
|
28
|
+
.add(BehaviorComponent.from(SequenceBehavior.from([
|
|
29
29
|
TransitionPropertyVectorXBehavior.from({
|
|
30
30
|
component,
|
|
31
31
|
path: property,
|
|
@@ -15,7 +15,7 @@ export function playTrackRealTime(track, ecd) {
|
|
|
15
15
|
|
|
16
16
|
const entity = new Entity();
|
|
17
17
|
|
|
18
|
-
const behaviorComponent = BehaviorComponent.
|
|
18
|
+
const behaviorComponent = BehaviorComponent.from(new AnimationBehavior(track));
|
|
19
19
|
|
|
20
20
|
behaviorComponent.clock = ClockChannelType.System;
|
|
21
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/Entity.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/Entity.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH;IA2aI;;;;;OAKG;IACH,+BAJW,MAAM,WACN,sBAAsB,GACpB,MAAM,CAgBlB;IA7bD;;;OAGG;IACH,oBAFU,eAAe,CAES;IAWlC;;;OAGG;IACH,UAFW,MAAM,EAIhB;IAdD;;;OAGG;IACH,UAFa,MAAM,CAIlB;IAmBD;;;OAGG;IACH,kBAFW,MAAM,EAIhB;IAfD;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAWD;;;;OAIG;IACH,2BAAgB;IAQhB;;;;OAIG;IACH,SAFU,sBAAsB,CAEjB;IAEf;;;OAGG;IACH,OAFU,WAAW,GAAC,MAAM,CAEN;IAEtB;;;;OAIG;IACH,yBAAgB;IAEhB;;OAEG;IACH;QACI;;WAEG;;MAEL;IAUF;;;OAGG;IACH,eAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,WAAW,GAChB,OAAO,CAMnB;IAED;;;OAGG;IACH,gBAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;OAGG;IACH,eAFa,OAAO,CAInB;IAED;;OAEG;IACH,4BAQC;IAED;;;OAGG;IACH,aAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,IAJa,CAAC,qBACH,CAAC,GACC,MAAM,CAuBlB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,CAAC,GACC,OAAO,CAInB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,GAAC,IAAI,CAclB;IAED;;;;;OAKG;IACH,iBAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,CAUb;IAED;;;;OAIG;IACH,kCAFa,GAAC,GAAC,IAAI,CA0BlB;IAED;;;;OAIG;IACH,qBAHW,MAAM,UACN,GAAC,QAQX;IAED;;;OAGG;IACH,wBAFW,MAAM,gBAiBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAalB;IAED;;;;;;OAMG;IACH,+BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAyBlB;IAED;;;OAGG;IACH,WAFa,OAAO,CAwBnB;IAED;;;;OAIG;IACH,eAFW,sBAAsB,GADpB,MAAM,CAyDlB;IAyBL;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;;CAPxB;;gCAxf+B,sBAAsB;4BAD1B,kBAAkB;mBAF3B,oCAAoC"}
|
package/src/engine/ecs/Entity.js
CHANGED
|
@@ -58,7 +58,7 @@ const DEFAULT_FLAGS =
|
|
|
58
58
|
* entity.destroy();
|
|
59
59
|
*
|
|
60
60
|
*/
|
|
61
|
-
class Entity {
|
|
61
|
+
export class Entity {
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* @readonly
|
|
@@ -80,7 +80,7 @@ class Entity {
|
|
|
80
80
|
* @param {number} v
|
|
81
81
|
*/
|
|
82
82
|
set id(v) {
|
|
83
|
-
|
|
83
|
+
throw new Error(`Deprecated, use .reference or static construction method`);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/**
|
|
@@ -97,11 +97,11 @@ class Entity {
|
|
|
97
97
|
* @param {number} v
|
|
98
98
|
*/
|
|
99
99
|
set generation(v) {
|
|
100
|
-
|
|
100
|
+
throw new Error(`Deprecated, use .reference or static construction method`);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
* Components associated with the entity
|
|
104
|
+
* Components associated with the entity. Do not modify directly
|
|
105
105
|
* @readonly
|
|
106
106
|
* @type {Array}
|
|
107
107
|
*/
|
|
@@ -114,7 +114,8 @@ class Entity {
|
|
|
114
114
|
#deferredListeners = [];
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
117
|
+
* Dataset in which this entity exists, if built. If not built - null.
|
|
118
|
+
* Do not modify directly
|
|
118
119
|
* @type {EntityComponentDataset}
|
|
119
120
|
*/
|
|
120
121
|
dataset = null;
|
|
@@ -127,6 +128,7 @@ class Entity {
|
|
|
127
128
|
|
|
128
129
|
/**
|
|
129
130
|
* Arbitrary metadata, add anything you want here
|
|
131
|
+
* @readonly
|
|
130
132
|
* @type {Object}
|
|
131
133
|
*/
|
|
132
134
|
properties = {};
|
|
@@ -135,6 +137,9 @@ class Entity {
|
|
|
135
137
|
* @readonly
|
|
136
138
|
*/
|
|
137
139
|
on = {
|
|
140
|
+
/**
|
|
141
|
+
* Fired when {@link build} is called
|
|
142
|
+
*/
|
|
138
143
|
built: new Signal()
|
|
139
144
|
};
|
|
140
145
|
|
|
@@ -430,10 +435,10 @@ class Entity {
|
|
|
430
435
|
|
|
431
436
|
if (
|
|
432
437
|
this.getFlag(EntityFlags.Built)
|
|
433
|
-
&& checkExistingComponents(this.id, this.components, dataset)
|
|
438
|
+
&& checkExistingComponents(this.reference.id, this.components, dataset)
|
|
434
439
|
) {
|
|
435
440
|
//already built
|
|
436
|
-
return this.id;
|
|
441
|
+
return this.reference.id;
|
|
437
442
|
}
|
|
438
443
|
|
|
439
444
|
const entity = dataset.createEntity();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"AA4GA;;;;;;;;;;;;;;;;;GAiBG;AACH;IAEI;;;OAGG;IACH,wBAA+B;IAE/B;;;;;OAKG;IACH,yBAAsC;IAEtC;;;OAGG;IACH,2BAAkC;IAElC;;;OAGG;IACH,yBAAsB;IAEtB;;;;OAIG;IACH,4BAAgC;IAEhC;;;;OAIG;IACH,2BAAuB;IAEvB;;;OAGG;IACH,mBAAgB;IAEhB;;;;OAIG;IACH,oBAAgB;IAEhB;;;;;;;OAOG;IACH,mBAAe;IAEf;;;OAGG;IACH,0BAFU,MAAM,CAAC,MAAM,CAAC,CAEO;IAE/B;;;OAGG;IACH,0BAFU,MAAM,CAEe;IAG/B;;;;OAIG;IACH,+BAA4B;IAE5B;;;;OAIG;IACH,kCAA+B;IAE/B;;;OAGG;IACH,kBAAe;IAGf;;;;;;OAMG;IACH,iBALa,CAAC,EAAE,CAAC,UACN,GAAG,iBACH,CAAC,GACC,OAAO,CAAC,CAAC,CAAC,CAoCtB;IAED;;;;;OAKG;IACH,sBAJW,cAAc,cACd,OAAO,GACL,OAAO,CAqDnB;IAED;;;;;OAKG;IACH,yBAJW,cAAc,cACd,OAAO,GACL,OAAO,CAuDnB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,yBAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,kCAoChB;IAED;;;;OAIG;IACH,4BAHW,MAAM,GACJ,EAAE,CAyBd;IAED;;;;OAIG;IACH,yBAHW,KAAK,EAAE,QAwLjB;IAED;;;;OAIG;IACH,mCAHW,KAAK,EAAE,GACL,OAAO,CAYnB;IAED
|
|
1
|
+
{"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"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"}
|
|
@@ -678,6 +678,8 @@ export class EntityComponentDataset {
|
|
|
678
678
|
}
|
|
679
679
|
|
|
680
680
|
/**
|
|
681
|
+
* Does this dataset have a given component registered?
|
|
682
|
+
* Use {@link registerComponentType}/{@link unregisterComponentType} to alter registered set
|
|
681
683
|
* @param {Class|Function} type
|
|
682
684
|
* @return {boolean}
|
|
683
685
|
*/
|
|
@@ -719,11 +721,11 @@ export class EntityComponentDataset {
|
|
|
719
721
|
/**
|
|
720
722
|
* Attempt to add a component class to dataset registry
|
|
721
723
|
* @param {Class|Function} type
|
|
722
|
-
* @returns {boolean} true if component successfully added, false
|
|
724
|
+
* @returns {boolean} true if component successfully added, false if component is already registered
|
|
723
725
|
*/
|
|
724
726
|
registerComponentType(type) {
|
|
725
727
|
if (this.isComponentTypeRegistered(type)) {
|
|
726
|
-
//already registered
|
|
728
|
+
// already registered
|
|
727
729
|
return false;
|
|
728
730
|
}
|
|
729
731
|
|
|
@@ -737,11 +739,11 @@ export class EntityComponentDataset {
|
|
|
737
739
|
/**
|
|
738
740
|
* Attempt to remove a component class from the registry
|
|
739
741
|
* @param {Class} type
|
|
740
|
-
* @returns {boolean}
|
|
742
|
+
* @returns {boolean} true iff component is removed, false if it was not registered
|
|
741
743
|
*/
|
|
742
744
|
unregisterComponentType(type) {
|
|
743
745
|
if (this.isComponentTypeRegistered(type)) {
|
|
744
|
-
//not registered
|
|
746
|
+
// not registered
|
|
745
747
|
return false;
|
|
746
748
|
}
|
|
747
749
|
|
|
@@ -771,6 +773,7 @@ export class EntityComponentDataset {
|
|
|
771
773
|
|
|
772
774
|
const new_generation_table = new Uint32Array(new_size);
|
|
773
775
|
|
|
776
|
+
// copy over old data
|
|
774
777
|
new_generation_table.set(this.entityGeneration);
|
|
775
778
|
|
|
776
779
|
this.entityGeneration = new_generation_table
|
|
@@ -783,6 +786,7 @@ export class EntityComponentDataset {
|
|
|
783
786
|
*/
|
|
784
787
|
getEntityGeneration(entity_id) {
|
|
785
788
|
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
789
|
+
assert.ok(this.entityExists(entity_id),`Entity ${entity_id} does not exist`);
|
|
786
790
|
|
|
787
791
|
return this.entityGeneration[entity_id];
|
|
788
792
|
}
|
|
@@ -863,6 +867,8 @@ export class EntityComponentDataset {
|
|
|
863
867
|
* @returns {boolean} true if entity was removed, false if it doesn't exist
|
|
864
868
|
*/
|
|
865
869
|
removeEntity(entity_id) {
|
|
870
|
+
assert.isNonNegativeInteger(entity_id, 'entity_id');
|
|
871
|
+
|
|
866
872
|
if (!this.entityExists(entity_id)) {
|
|
867
873
|
// entity doesn't exist
|
|
868
874
|
return false;
|
|
@@ -902,6 +908,7 @@ export class EntityComponentDataset {
|
|
|
902
908
|
|
|
903
909
|
/**
|
|
904
910
|
* Convenience method for removal of multiple entities
|
|
911
|
+
* Works the same as {@link removeEntity} but for multiple elements
|
|
905
912
|
* @param {number[]} entityIndices
|
|
906
913
|
*/
|
|
907
914
|
removeEntities(entityIndices) {
|
|
@@ -1030,10 +1037,10 @@ export class EntityComponentDataset {
|
|
|
1030
1037
|
*
|
|
1031
1038
|
* Associate a component with a particular entity
|
|
1032
1039
|
* @template C
|
|
1033
|
-
* @param {number}
|
|
1040
|
+
* @param {number} entity_id
|
|
1034
1041
|
* @param {C} componentInstance
|
|
1035
1042
|
*/
|
|
1036
|
-
addComponentToEntity(
|
|
1043
|
+
addComponentToEntity(entity_id, componentInstance) {
|
|
1037
1044
|
|
|
1038
1045
|
assert.notNull(componentInstance, "componentInstance");
|
|
1039
1046
|
|
|
@@ -1053,7 +1060,7 @@ export class EntityComponentDataset {
|
|
|
1053
1060
|
throw new Error(`Component class not found in this dataset for componentInstance ${stringifyComponent(componentInstance)}`);
|
|
1054
1061
|
}
|
|
1055
1062
|
|
|
1056
|
-
this.addComponentToEntityByIndex(
|
|
1063
|
+
this.addComponentToEntityByIndex(entity_id, componentTypeIndex, componentInstance);
|
|
1057
1064
|
}
|
|
1058
1065
|
|
|
1059
1066
|
/**
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Uniquely identifies an entity by both its ID and generation.
|
|
3
|
-
* Lets us distinguish between two entities with the same ID that were created at different times
|
|
3
|
+
* Lets us uniquely distinguish between two entities, even those with the same ID that were created at different times
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* // 1. Get your EntityComponentDataset to where you manager entities.
|
|
7
|
-
* const ecd = ... ; //EntityComponentDataset
|
|
7
|
+
* const ecd = ... ; // EntityComponentDataset
|
|
8
8
|
*
|
|
9
|
-
* // 2. Create an entity (we'll get an ID).
|
|
10
|
-
* const entityId = ecd.createEntity();
|
|
9
|
+
* // 2. Create an entity (we'll get an ID).
|
|
10
|
+
* const entityId = ecd.createEntity();
|
|
11
11
|
*
|
|
12
12
|
* // 3. Create an EntityReference and bind it to the entity.
|
|
13
13
|
* const entityRef = EntityReference.bind(ecd, entityId);
|
|
@@ -2,14 +2,14 @@ import { assert } from "../../core/assert.js";
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Uniquely identifies an entity by both its ID and generation.
|
|
5
|
-
* Lets us distinguish between two entities with the same ID that were created at different times
|
|
5
|
+
* Lets us uniquely distinguish between two entities, even those with the same ID that were created at different times
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* // 1. Get your EntityComponentDataset to where you manager entities.
|
|
9
|
-
* const ecd = ... ; //EntityComponentDataset
|
|
9
|
+
* const ecd = ... ; // EntityComponentDataset
|
|
10
10
|
*
|
|
11
|
-
* // 2. Create an entity (we'll get an ID).
|
|
12
|
-
* const entityId = ecd.createEntity();
|
|
11
|
+
* // 2. Create an entity (we'll get an ID).
|
|
12
|
+
* const entityId = ecd.createEntity();
|
|
13
13
|
*
|
|
14
14
|
* // 3. Create an EntityReference and bind it to the entity.
|
|
15
15
|
* const entityRef = EntityReference.bind(ecd, entityId);
|
|
@@ -264,7 +264,7 @@ export class DynamicActorSystem extends AbstractContextSystem {
|
|
|
264
264
|
const behavior = rule.action.execute(entity, ecd, context, this);
|
|
265
265
|
|
|
266
266
|
const entity_builder = new Entity()
|
|
267
|
-
.add(BehaviorComponent.
|
|
267
|
+
.add(BehaviorComponent.from(SequenceBehavior.from([
|
|
268
268
|
OverrideContextBehavior.from(
|
|
269
269
|
{
|
|
270
270
|
entity
|
|
@@ -9,7 +9,7 @@ export class VoiceSystem extends AbstractContextSystem<any> {
|
|
|
9
9
|
font_size: number;
|
|
10
10
|
});
|
|
11
11
|
dependencies: (typeof Voice)[];
|
|
12
|
-
components_used: ResourceAccessSpecification<typeof BehaviorComponent>[];
|
|
12
|
+
components_used: (ResourceAccessSpecification<typeof GUIElement> | ResourceAccessSpecification<typeof Transform> | ResourceAccessSpecification<typeof ViewportPosition> | ResourceAccessSpecification<typeof HeadsUpDisplay> | ResourceAccessSpecification<typeof Attachment> | ResourceAccessSpecification<typeof SerializationMetadata> | ResourceAccessSpecification<typeof BehaviorComponent>)[];
|
|
13
13
|
/**
|
|
14
14
|
*
|
|
15
15
|
* @type {Localization}
|
|
@@ -100,6 +100,12 @@ export class VoiceSystem extends AbstractContextSystem<any> {
|
|
|
100
100
|
}
|
|
101
101
|
import { AbstractContextSystem } from "../system/AbstractContextSystem.js";
|
|
102
102
|
import { Voice } from "./Voice.js";
|
|
103
|
-
import
|
|
103
|
+
import GUIElement from "../gui/GUIElement.js";
|
|
104
104
|
import { ResourceAccessSpecification } from "../../../core/model/ResourceAccessSpecification.js";
|
|
105
|
+
import { Transform } from "../transform/Transform.js";
|
|
106
|
+
import ViewportPosition from "../gui/position/ViewportPosition.js";
|
|
107
|
+
import HeadsUpDisplay from "../gui/hud/HeadsUpDisplay.js";
|
|
108
|
+
import { Attachment } from "../attachment/Attachment.js";
|
|
109
|
+
import { SerializationMetadata } from "../components/SerializationMetadata.js";
|
|
110
|
+
import { BehaviorComponent } from "../../intelligence/behavior/ecs/BehaviorComponent.js";
|
|
105
111
|
//# sourceMappingURL=VoiceSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VoiceSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/speaker/VoiceSystem.js"],"names":[],"mappings":"AA2JA;IACI;;;;OAIG;IACH,oBAHW,MAAM;;;OA8FhB;IArFG,+BAA2B;IAE3B,
|
|
1
|
+
{"version":3,"file":"VoiceSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/speaker/VoiceSystem.js"],"names":[],"mappings":"AA2JA;IACI;;;;OAIG;IACH,oBAHW,MAAM;;;OA8FhB;IArFG,+BAA2B;IAE3B,qYAQC;IAGD;;;OAGG;IACH,aAFU,YAAY,CAEC;IAEvB;;;OAGG;IACH,KAFU,SAAS,CAEJ;IAEf;;;OAGG;IACH,OAFU,oBAAoB,CAEb;IAEjB;;;OAGG;IACH,MAFU,uBAAuB,CAEjB;IAEhB;;;OAGG;IACH,QAFU,MAAM,CAEI;IAEpB;;;;OAIG;IACH,iCAAyC;IAEzC;;;;OAIG;IACH,kBAAkC;IAIlC;;;;OAIG;IACH,eAAkB;IAElB;;;;OAIG;IACH,oBAAgC;IAEhC;;;OAGG;IACH,oBAAqC;IAErC;;;;OAIG;IACH,gBAAoB;IAGxB;;;OAGG;IACH,kBAFY,MAAM,CAIjB;IAED,0EAuBC;IAED;;;;;OAKG;IACH,uBAJW,MAAM,UACN,MAAM,SACN,KAAK,QAsBf;IAED;;;;;OAKG;IACH,wBAoBC;IAED;;;;;OAKG;IACH,gBAJW,MAAM,WACN,MAAM,SACN,KAAK,QAuHf;CACJ;sCAxbqC,oCAAoC;sBAIpD,YAAY;uBAPX,sBAAsB;4CAnBD,oDAAoD;0BAwBtE,2BAA2B;6BAHxB,qCAAqC;2BADvC,8BAA8B;2BAL9B,6BAA6B;sCAClB,wCAAwC;kCAR5C,sDAAsD"}
|