@dcl/ecs 7.10.3-17918694201.commit-b983b3b → 7.10.3-18106625709.commit-1bcaa4a
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/dist/components/extended/TriggerArea.d.ts +22 -0
- package/dist/components/extended/TriggerArea.js +27 -0
- package/dist/components/generated/TriggerArea.gen.d.ts +1 -0
- package/dist/components/generated/TriggerArea.gen.js +25 -0
- package/dist/components/generated/TriggerAreaResult.gen.d.ts +1 -0
- package/dist/components/generated/TriggerAreaResult.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +2 -0
- package/dist/components/generated/global.gen.d.ts +4 -0
- package/dist/components/generated/global.gen.js +2 -0
- package/dist/components/generated/index.gen.d.ts +8 -0
- package/dist/components/generated/index.gen.js +12 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +2 -1
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +2 -1
- package/dist/components/generated/pb/decentraland/sdk/components/trigger_area.gen.d.ts +32 -0
- package/dist/components/generated/pb/decentraland/sdk/components/trigger_area.gen.js +58 -0
- package/dist/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.d.ts +60 -0
- package/dist/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.js +177 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +3 -0
- package/dist/components/types.d.ts +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -0
- package/dist/runtime/initialization/index.d.ts +7 -0
- package/dist/runtime/initialization/index.js +6 -0
- package/dist/systems/triggerArea.d.ts +50 -0
- package/dist/systems/triggerArea.js +113 -0
- package/dist-cjs/components/extended/TriggerArea.d.ts +22 -0
- package/dist-cjs/components/extended/TriggerArea.js +31 -0
- package/dist-cjs/components/generated/TriggerArea.gen.d.ts +1 -0
- package/dist-cjs/components/generated/TriggerArea.gen.js +28 -0
- package/dist-cjs/components/generated/TriggerAreaResult.gen.d.ts +1 -0
- package/dist-cjs/components/generated/TriggerAreaResult.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +2 -0
- package/dist-cjs/components/generated/global.gen.d.ts +4 -0
- package/dist-cjs/components/generated/global.gen.js +3 -1
- package/dist-cjs/components/generated/index.gen.d.ts +8 -0
- package/dist-cjs/components/generated/index.gen.js +16 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +2 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +2 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area.gen.d.ts +32 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area.gen.js +64 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.d.ts +60 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.js +183 -0
- package/dist-cjs/components/index.d.ts +2 -0
- package/dist-cjs/components/index.js +5 -1
- package/dist-cjs/components/types.d.ts +1 -0
- package/dist-cjs/index.d.ts +3 -1
- package/dist-cjs/index.js +3 -1
- package/dist-cjs/runtime/initialization/index.d.ts +7 -0
- package/dist-cjs/runtime/initialization/index.js +7 -1
- package/dist-cjs/systems/triggerArea.d.ts +50 -0
- package/dist-cjs/systems/triggerArea.js +140 -0
- package/package.json +2 -2
package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _m0 from "protobufjs/minimal";
|
|
2
|
+
import { Quaternion, Vector3 } from "../../common/vectors.gen";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare const enum TriggerAreaEventType {
|
|
7
|
+
TAET_ENTER = 0,
|
|
8
|
+
TAET_STAY = 1,
|
|
9
|
+
TAET_EXIT = 2
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The PBTriggerAreaResult component is used to transport the trigger collision event data for the PBTriggerArea component.
|
|
13
|
+
* ADR: https://github.com/decentraland/adr/blob/2b30a5e2b4f359a7c22a68fb827db282f6e5f887/content/ADR-258-trigger-areas.md
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export interface PBTriggerAreaResult {
|
|
19
|
+
/** The entity that was triggered (this is the entity that owns the trigger area) */
|
|
20
|
+
triggeredEntity: number;
|
|
21
|
+
/** The position of the triggered entity at the time of the trigger */
|
|
22
|
+
triggeredEntityPosition: Vector3 | undefined;
|
|
23
|
+
/** The rotation of the triggered entity at the time of the trigger */
|
|
24
|
+
triggeredEntityRotation: Quaternion | undefined;
|
|
25
|
+
/** The state of the trigger event (ENTER, STAY, EXIT) */
|
|
26
|
+
eventType: TriggerAreaEventType;
|
|
27
|
+
/** The timestamp of the trigger event */
|
|
28
|
+
timestamp: number;
|
|
29
|
+
trigger: PBTriggerAreaResult_Trigger | undefined;
|
|
30
|
+
}
|
|
31
|
+
/** Trigger data object */
|
|
32
|
+
/**
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
export interface PBTriggerAreaResult_Trigger {
|
|
36
|
+
/** The entity that triggered the Trigger Area */
|
|
37
|
+
entity: number;
|
|
38
|
+
/** The collision layermask of the entity that triggered the Trigger Area */
|
|
39
|
+
layers: number;
|
|
40
|
+
/** The position of the entity that triggered the trigger */
|
|
41
|
+
position: Vector3 | undefined;
|
|
42
|
+
/** The rotation of the entity that triggered the trigger */
|
|
43
|
+
rotation: Quaternion | undefined;
|
|
44
|
+
/** The scale of the entity that triggered the trigger */
|
|
45
|
+
scale: Vector3 | undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
export declare namespace PBTriggerAreaResult {
|
|
51
|
+
function encode(message: PBTriggerAreaResult, writer?: _m0.Writer): _m0.Writer;
|
|
52
|
+
function decode(input: _m0.Reader | Uint8Array, length?: number): PBTriggerAreaResult;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export declare namespace PBTriggerAreaResult_Trigger {
|
|
58
|
+
function encode(message: PBTriggerAreaResult_Trigger, writer?: _m0.Writer): _m0.Writer;
|
|
59
|
+
function decode(input: _m0.Reader | Uint8Array, length?: number): PBTriggerAreaResult_Trigger;
|
|
60
|
+
}
|
package/dist-cjs/components/generated/pb/decentraland/sdk/components/trigger_area_result.gen.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PBTriggerAreaResult_Trigger = exports.PBTriggerAreaResult = exports.TriggerAreaEventType = void 0;
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
9
|
+
const vectors_gen_1 = require("../../common/vectors.gen");
|
|
10
|
+
const protobufPackageSarasa = "decentraland.sdk.components";
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
var TriggerAreaEventType;
|
|
15
|
+
(function (TriggerAreaEventType) {
|
|
16
|
+
TriggerAreaEventType[TriggerAreaEventType["TAET_ENTER"] = 0] = "TAET_ENTER";
|
|
17
|
+
TriggerAreaEventType[TriggerAreaEventType["TAET_STAY"] = 1] = "TAET_STAY";
|
|
18
|
+
TriggerAreaEventType[TriggerAreaEventType["TAET_EXIT"] = 2] = "TAET_EXIT";
|
|
19
|
+
})(TriggerAreaEventType = exports.TriggerAreaEventType || (exports.TriggerAreaEventType = {}));
|
|
20
|
+
function createBasePBTriggerAreaResult() {
|
|
21
|
+
return {
|
|
22
|
+
triggeredEntity: 0,
|
|
23
|
+
triggeredEntityPosition: undefined,
|
|
24
|
+
triggeredEntityRotation: undefined,
|
|
25
|
+
eventType: 0,
|
|
26
|
+
timestamp: 0,
|
|
27
|
+
trigger: undefined,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
var PBTriggerAreaResult;
|
|
34
|
+
(function (PBTriggerAreaResult) {
|
|
35
|
+
function encode(message, writer = minimal_1.default.Writer.create()) {
|
|
36
|
+
if (message.triggeredEntity !== 0) {
|
|
37
|
+
writer.uint32(8).uint32(message.triggeredEntity);
|
|
38
|
+
}
|
|
39
|
+
if (message.triggeredEntityPosition !== undefined) {
|
|
40
|
+
vectors_gen_1.Vector3.encode(message.triggeredEntityPosition, writer.uint32(18).fork()).ldelim();
|
|
41
|
+
}
|
|
42
|
+
if (message.triggeredEntityRotation !== undefined) {
|
|
43
|
+
vectors_gen_1.Quaternion.encode(message.triggeredEntityRotation, writer.uint32(26).fork()).ldelim();
|
|
44
|
+
}
|
|
45
|
+
if (message.eventType !== 0) {
|
|
46
|
+
writer.uint32(32).int32(message.eventType);
|
|
47
|
+
}
|
|
48
|
+
if (message.timestamp !== 0) {
|
|
49
|
+
writer.uint32(40).uint32(message.timestamp);
|
|
50
|
+
}
|
|
51
|
+
if (message.trigger !== undefined) {
|
|
52
|
+
PBTriggerAreaResult_Trigger.encode(message.trigger, writer.uint32(50).fork()).ldelim();
|
|
53
|
+
}
|
|
54
|
+
return writer;
|
|
55
|
+
}
|
|
56
|
+
PBTriggerAreaResult.encode = encode;
|
|
57
|
+
function decode(input, length) {
|
|
58
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
59
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
60
|
+
const message = createBasePBTriggerAreaResult();
|
|
61
|
+
while (reader.pos < end) {
|
|
62
|
+
const tag = reader.uint32();
|
|
63
|
+
switch (tag >>> 3) {
|
|
64
|
+
case 1:
|
|
65
|
+
if (tag !== 8) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
message.triggeredEntity = reader.uint32();
|
|
69
|
+
continue;
|
|
70
|
+
case 2:
|
|
71
|
+
if (tag !== 18) {
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
message.triggeredEntityPosition = vectors_gen_1.Vector3.decode(reader, reader.uint32());
|
|
75
|
+
continue;
|
|
76
|
+
case 3:
|
|
77
|
+
if (tag !== 26) {
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
message.triggeredEntityRotation = vectors_gen_1.Quaternion.decode(reader, reader.uint32());
|
|
81
|
+
continue;
|
|
82
|
+
case 4:
|
|
83
|
+
if (tag !== 32) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
message.eventType = reader.int32();
|
|
87
|
+
continue;
|
|
88
|
+
case 5:
|
|
89
|
+
if (tag !== 40) {
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
message.timestamp = reader.uint32();
|
|
93
|
+
continue;
|
|
94
|
+
case 6:
|
|
95
|
+
if (tag !== 50) {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
message.trigger = PBTriggerAreaResult_Trigger.decode(reader, reader.uint32());
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
reader.skipType(tag & 7);
|
|
105
|
+
}
|
|
106
|
+
return message;
|
|
107
|
+
}
|
|
108
|
+
PBTriggerAreaResult.decode = decode;
|
|
109
|
+
})(PBTriggerAreaResult = exports.PBTriggerAreaResult || (exports.PBTriggerAreaResult = {}));
|
|
110
|
+
function createBasePBTriggerAreaResult_Trigger() {
|
|
111
|
+
return { entity: 0, layers: 0, position: undefined, rotation: undefined, scale: undefined };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @public
|
|
115
|
+
*/
|
|
116
|
+
var PBTriggerAreaResult_Trigger;
|
|
117
|
+
(function (PBTriggerAreaResult_Trigger) {
|
|
118
|
+
function encode(message, writer = minimal_1.default.Writer.create()) {
|
|
119
|
+
if (message.entity !== 0) {
|
|
120
|
+
writer.uint32(8).uint32(message.entity);
|
|
121
|
+
}
|
|
122
|
+
if (message.layers !== 0) {
|
|
123
|
+
writer.uint32(16).uint32(message.layers);
|
|
124
|
+
}
|
|
125
|
+
if (message.position !== undefined) {
|
|
126
|
+
vectors_gen_1.Vector3.encode(message.position, writer.uint32(26).fork()).ldelim();
|
|
127
|
+
}
|
|
128
|
+
if (message.rotation !== undefined) {
|
|
129
|
+
vectors_gen_1.Quaternion.encode(message.rotation, writer.uint32(34).fork()).ldelim();
|
|
130
|
+
}
|
|
131
|
+
if (message.scale !== undefined) {
|
|
132
|
+
vectors_gen_1.Vector3.encode(message.scale, writer.uint32(42).fork()).ldelim();
|
|
133
|
+
}
|
|
134
|
+
return writer;
|
|
135
|
+
}
|
|
136
|
+
PBTriggerAreaResult_Trigger.encode = encode;
|
|
137
|
+
function decode(input, length) {
|
|
138
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
139
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
140
|
+
const message = createBasePBTriggerAreaResult_Trigger();
|
|
141
|
+
while (reader.pos < end) {
|
|
142
|
+
const tag = reader.uint32();
|
|
143
|
+
switch (tag >>> 3) {
|
|
144
|
+
case 1:
|
|
145
|
+
if (tag !== 8) {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
message.entity = reader.uint32();
|
|
149
|
+
continue;
|
|
150
|
+
case 2:
|
|
151
|
+
if (tag !== 16) {
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
message.layers = reader.uint32();
|
|
155
|
+
continue;
|
|
156
|
+
case 3:
|
|
157
|
+
if (tag !== 26) {
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
message.position = vectors_gen_1.Vector3.decode(reader, reader.uint32());
|
|
161
|
+
continue;
|
|
162
|
+
case 4:
|
|
163
|
+
if (tag !== 34) {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
message.rotation = vectors_gen_1.Quaternion.decode(reader, reader.uint32());
|
|
167
|
+
continue;
|
|
168
|
+
case 5:
|
|
169
|
+
if (tag !== 42) {
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
message.scale = vectors_gen_1.Vector3.decode(reader, reader.uint32());
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
reader.skipType(tag & 7);
|
|
179
|
+
}
|
|
180
|
+
return message;
|
|
181
|
+
}
|
|
182
|
+
PBTriggerAreaResult_Trigger.decode = decode;
|
|
183
|
+
})(PBTriggerAreaResult_Trigger = exports.PBTriggerAreaResult_Trigger || (exports.PBTriggerAreaResult_Trigger = {}));
|
|
@@ -17,6 +17,7 @@ import { MediaState } from './generated/pb/decentraland/sdk/components/common/me
|
|
|
17
17
|
import { VirtualCameraComponentDefinitionExtended } from './extended/VirtualCamera';
|
|
18
18
|
import { InputModifierComponentDefinitionExtended } from './extended/InputModifier';
|
|
19
19
|
import { LightSourceComponentDefinitionExtended } from './extended/LightSource';
|
|
20
|
+
import { TriggerAreaComponentDefinitionExtended } from './extended/TriggerArea';
|
|
20
21
|
import { TagsComponentDefinitionExtended } from './manual/Tags';
|
|
21
22
|
export * from './generated/index.gen';
|
|
22
23
|
export type { GrowOnlyValueSetComponentDefinition, LastWriteWinElementSetComponentDefinition, LwwComponentGetter, GSetComponentGetter };
|
|
@@ -31,6 +32,7 @@ export declare const Tween: LwwComponentGetter<TweenComponentDefinitionExtended>
|
|
|
31
32
|
export declare const VirtualCamera: LwwComponentGetter<VirtualCameraComponentDefinitionExtended>;
|
|
32
33
|
export declare const InputModifier: LwwComponentGetter<InputModifierComponentDefinitionExtended>;
|
|
33
34
|
export declare const LightSource: LwwComponentGetter<LightSourceComponentDefinitionExtended>;
|
|
35
|
+
export declare const TriggerArea: LwwComponentGetter<TriggerAreaComponentDefinitionExtended>;
|
|
34
36
|
/**
|
|
35
37
|
* @alpha
|
|
36
38
|
*/
|
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
20
|
+
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
21
21
|
const Animator_1 = require("./extended/Animator");
|
|
22
22
|
const AudioSource_1 = require("./extended/AudioSource");
|
|
23
23
|
const Material_1 = require("./extended/Material");
|
|
@@ -35,6 +35,7 @@ Object.defineProperty(exports, "MediaState", { enumerable: true, get: function (
|
|
|
35
35
|
const VirtualCamera_1 = require("./extended/VirtualCamera");
|
|
36
36
|
const InputModifier_1 = require("./extended/InputModifier");
|
|
37
37
|
const LightSource_1 = require("./extended/LightSource");
|
|
38
|
+
const TriggerArea_1 = require("./extended/TriggerArea");
|
|
38
39
|
const Tags_1 = __importDefault(require("./manual/Tags"));
|
|
39
40
|
__exportStar(require("./generated/index.gen"), exports);
|
|
40
41
|
/* @__PURE__ */
|
|
@@ -70,6 +71,9 @@ exports.InputModifier = InputModifier;
|
|
|
70
71
|
/* @__PURE__ */
|
|
71
72
|
const LightSource = (engine) => (0, LightSource_1.defineLightSourceComponent)(engine);
|
|
72
73
|
exports.LightSource = LightSource;
|
|
74
|
+
/* @__PURE__ */
|
|
75
|
+
const TriggerArea = (engine) => (0, TriggerArea_1.defineTriggerAreaComponent)(engine);
|
|
76
|
+
exports.TriggerArea = TriggerArea;
|
|
73
77
|
/**
|
|
74
78
|
* @alpha
|
|
75
79
|
*/
|
|
@@ -14,3 +14,4 @@ export type { INetowrkEntity, INetowrkEntityType } from './manual/NetworkEntity'
|
|
|
14
14
|
export type { INetowrkParent, INetowrkParentType } from './manual/NetworkParent';
|
|
15
15
|
export type { InputModifierHelper, InputModifierComponentDefinitionExtended } from './extended/InputModifier';
|
|
16
16
|
export type { LightSourceHelper, LightSourceComponentDefinitionExtended } from './extended/LightSource';
|
|
17
|
+
export type { TriggerAreaComponentDefinitionExtended } from './extended/TriggerArea';
|
package/dist-cjs/index.d.ts
CHANGED
|
@@ -9,9 +9,10 @@ export * from './systems/raycast';
|
|
|
9
9
|
export * from './systems/videoEvents';
|
|
10
10
|
export * from './systems/async-task';
|
|
11
11
|
export * from './systems/tween';
|
|
12
|
+
export * from './systems/triggerArea';
|
|
12
13
|
export * from './engine/entity';
|
|
13
14
|
export * from './components/types';
|
|
14
|
-
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended } from './components/types';
|
|
15
|
+
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended } from './components/types';
|
|
15
16
|
import { NameComponent } from './components/manual/Name';
|
|
16
17
|
import { TagsComponentDefinitionExtended } from './components/manual/Tags';
|
|
17
18
|
export declare const Transform: TransformComponentExtended;
|
|
@@ -27,6 +28,7 @@ export declare const Tween: TweenComponentDefinitionExtended;
|
|
|
27
28
|
export declare const VirtualCamera: VirtualCameraComponentDefinitionExtended;
|
|
28
29
|
export declare const InputModifier: InputModifierComponentDefinitionExtended;
|
|
29
30
|
export declare const LightSource: LightSourceComponentDefinitionExtended;
|
|
31
|
+
export declare const TriggerArea: TriggerAreaComponentDefinitionExtended;
|
|
30
32
|
/**
|
|
31
33
|
* @alpha
|
|
32
34
|
* This is going to be used for sync components through a server.
|
package/dist-cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
29
|
+
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
30
30
|
// The order of the following imports matters. Please do not auto-sort
|
|
31
31
|
__exportStar(require("./engine"), exports);
|
|
32
32
|
__exportStar(require("./schemas"), exports);
|
|
@@ -40,6 +40,7 @@ __exportStar(require("./systems/raycast"), exports);
|
|
|
40
40
|
__exportStar(require("./systems/videoEvents"), exports);
|
|
41
41
|
__exportStar(require("./systems/async-task"), exports);
|
|
42
42
|
__exportStar(require("./systems/tween"), exports);
|
|
43
|
+
__exportStar(require("./systems/triggerArea"), exports);
|
|
43
44
|
__exportStar(require("./engine/entity"), exports);
|
|
44
45
|
__exportStar(require("./components/types"), exports);
|
|
45
46
|
// @internal
|
|
@@ -60,6 +61,7 @@ exports.Tween = components.Tween(initialization_1.engine);
|
|
|
60
61
|
exports.VirtualCamera = components.VirtualCamera(initialization_1.engine);
|
|
61
62
|
exports.InputModifier = components.InputModifier(initialization_1.engine);
|
|
62
63
|
exports.LightSource = components.LightSource(initialization_1.engine);
|
|
64
|
+
exports.TriggerArea = components.TriggerArea(initialization_1.engine);
|
|
63
65
|
/**
|
|
64
66
|
* @alpha
|
|
65
67
|
* This is going to be used for sync components through a server.
|
|
@@ -9,6 +9,7 @@ import { IInputSystem } from './../../engine/input';
|
|
|
9
9
|
import { RaycastSystem } from '../../systems/raycast';
|
|
10
10
|
import { VideoEventsSystem } from '../../systems/videoEvents';
|
|
11
11
|
import { TweenSystem } from '../../systems/tween';
|
|
12
|
+
import { TriggerAreaEventsSystem } from '../../systems/triggerArea';
|
|
12
13
|
/**
|
|
13
14
|
* @public
|
|
14
15
|
* The engine is the part of the scene that sits in the middle and manages all of the other parts.
|
|
@@ -56,6 +57,12 @@ export { VideoEventsSystem };
|
|
|
56
57
|
*/
|
|
57
58
|
export declare const tweenSystem: TweenSystem;
|
|
58
59
|
export { TweenSystem };
|
|
60
|
+
/**
|
|
61
|
+
* @public
|
|
62
|
+
* Register callback functions for trigger area results.
|
|
63
|
+
*/
|
|
64
|
+
export declare const triggerAreaEventsSystem: TriggerAreaEventsSystem;
|
|
65
|
+
export { TriggerAreaEventsSystem };
|
|
59
66
|
/**
|
|
60
67
|
* @public
|
|
61
68
|
* Runs an async function
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* init and it'll be changing.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.executeTask = exports.tweenSystem = exports.videoEventsSystem = exports.raycastSystem = exports.pointerEventsSystem = exports.inputSystem = exports.engine = void 0;
|
|
7
|
+
exports.executeTask = exports.triggerAreaEventsSystem = exports.tweenSystem = exports.videoEventsSystem = exports.raycastSystem = exports.pointerEventsSystem = exports.inputSystem = exports.engine = void 0;
|
|
8
8
|
const engine_1 = require("../../engine");
|
|
9
9
|
const async_task_1 = require("../../systems/async-task");
|
|
10
10
|
const events_1 = require("../../systems/events");
|
|
@@ -13,6 +13,7 @@ const raycast_1 = require("../../systems/raycast");
|
|
|
13
13
|
const videoEvents_1 = require("../../systems/videoEvents");
|
|
14
14
|
const tween_1 = require("../../systems/tween");
|
|
15
15
|
const pointer_event_collider_checker_1 = require("../../systems/pointer-event-collider-checker");
|
|
16
|
+
const triggerArea_1 = require("../../systems/triggerArea");
|
|
16
17
|
/**
|
|
17
18
|
* @public
|
|
18
19
|
* The engine is the part of the scene that sits in the middle and manages all of the other parts.
|
|
@@ -55,6 +56,11 @@ exports.videoEventsSystem = (0, videoEvents_1.createVideoEventsSystem)(exports.e
|
|
|
55
56
|
* Register callback functions to a particular entity on video events.
|
|
56
57
|
*/
|
|
57
58
|
exports.tweenSystem = (0, tween_1.createTweenSystem)(exports.engine);
|
|
59
|
+
/**
|
|
60
|
+
* @public
|
|
61
|
+
* Register callback functions for trigger area results.
|
|
62
|
+
*/
|
|
63
|
+
exports.triggerAreaEventsSystem = (0, triggerArea_1.createTriggerAreaEventsSystem)(exports.engine);
|
|
58
64
|
/**
|
|
59
65
|
* Adds pointer event collider system only in DEV env
|
|
60
66
|
*/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DeepReadonlyObject, Entity } from '../engine';
|
|
2
|
+
import { PBTriggerAreaResult } from '../components';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type TriggerAreaEventSystemCallback = (result: DeepReadonlyObject<PBTriggerAreaResult>) => void;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export interface TriggerAreaEventsSystem {
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
* Execute callback when an entity enters the Trigger Area
|
|
14
|
+
* @param entity - The entity that already has the TriggerArea component
|
|
15
|
+
* @param cb - Function to execute the 'Enter' type of result is detected
|
|
16
|
+
*/
|
|
17
|
+
onTriggerEnter(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
* Remove the callback for Trigger Area 'Enter' type of result
|
|
21
|
+
* @param entity - Entity where the Trigger Area was attached
|
|
22
|
+
*/
|
|
23
|
+
removeOnTriggerEnter(entity: Entity): void;
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
* Execute callback when an entity stays in the Trigger Area
|
|
27
|
+
* @param entity - The entity that already has the TriggerArea component
|
|
28
|
+
* @param cb - Function to execute the 'Stay' type of result is detected
|
|
29
|
+
*/
|
|
30
|
+
onTriggerStay(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
31
|
+
/**
|
|
32
|
+
* @public
|
|
33
|
+
* Remove the callback for Trigger Area 'Stay' type of result
|
|
34
|
+
* @param entity - Entity where the Trigger Area was attached
|
|
35
|
+
*/
|
|
36
|
+
removeOnTriggerStay(entity: Entity): void;
|
|
37
|
+
/**
|
|
38
|
+
* @public
|
|
39
|
+
* Execute callback when an entity exits the Trigger Area
|
|
40
|
+
* @param entity - The entity that already has the TriggerArea component
|
|
41
|
+
* @param cb - Function to execute the 'Exit' type of result is detected
|
|
42
|
+
*/
|
|
43
|
+
onTriggerExit(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
44
|
+
/**
|
|
45
|
+
* @public
|
|
46
|
+
* Remove the callback for Trigger Area 'Exit' type of result
|
|
47
|
+
* @param entity - Entity where the Trigger Area was attached
|
|
48
|
+
*/
|
|
49
|
+
removeOnTriggerExit(entity: Entity): void;
|
|
50
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createTriggerAreaEventsSystem = void 0;
|
|
27
|
+
const components = __importStar(require("../components"));
|
|
28
|
+
const entity_1 = require("../engine/entity");
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
function createTriggerAreaEventsSystem(engine) {
|
|
33
|
+
const triggerAreaResultComponent = components.TriggerAreaResult(engine);
|
|
34
|
+
const entitiesMap = new Map();
|
|
35
|
+
function hasCallbacksMap(entity) {
|
|
36
|
+
return entitiesMap.has(entity) && entitiesMap.get(entity) !== undefined;
|
|
37
|
+
}
|
|
38
|
+
function addEntityCallback(entity, triggerType, callback) {
|
|
39
|
+
if (hasCallbacksMap(entity)) {
|
|
40
|
+
entitiesMap.get(entity).triggerCallbackMap.set(triggerType, callback);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
entitiesMap.set(entity, {
|
|
44
|
+
triggerCallbackMap: new Map([[triggerType, callback]]),
|
|
45
|
+
lastConsumedTimestamp: -1
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function removeEntityCallback(entity, triggerType) {
|
|
50
|
+
if (!entitiesMap.has(entity) || !entitiesMap.get(entity).triggerCallbackMap.has(triggerType))
|
|
51
|
+
return;
|
|
52
|
+
const triggerCallbackMap = entitiesMap.get(entity).triggerCallbackMap;
|
|
53
|
+
triggerCallbackMap.delete(triggerType);
|
|
54
|
+
// Remove entity if no more trigger callbacks are registered
|
|
55
|
+
if (triggerCallbackMap.size === 0)
|
|
56
|
+
entitiesMap.delete(entity);
|
|
57
|
+
}
|
|
58
|
+
function onTriggerEnter(entity, cb) {
|
|
59
|
+
addEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */, cb);
|
|
60
|
+
}
|
|
61
|
+
function removeOnTriggerEnter(entity) {
|
|
62
|
+
removeEntityCallback(entity, 0 /* TriggerAreaEventType.TAET_ENTER */);
|
|
63
|
+
}
|
|
64
|
+
function onTriggerStay(entity, cb) {
|
|
65
|
+
addEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */, cb);
|
|
66
|
+
}
|
|
67
|
+
function removeOnTriggerStay(entity) {
|
|
68
|
+
removeEntityCallback(entity, 1 /* TriggerAreaEventType.TAET_STAY */);
|
|
69
|
+
}
|
|
70
|
+
function onTriggerExit(entity, cb) {
|
|
71
|
+
addEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */, cb);
|
|
72
|
+
}
|
|
73
|
+
function removeOnTriggerExit(entity) {
|
|
74
|
+
removeEntityCallback(entity, 2 /* TriggerAreaEventType.TAET_EXIT */);
|
|
75
|
+
}
|
|
76
|
+
engine.addSystem(function TriggerAreaResultSystem() {
|
|
77
|
+
const garbageEntries = [];
|
|
78
|
+
for (const [entity, data] of entitiesMap) {
|
|
79
|
+
if (engine.getEntityState(entity) === entity_1.EntityState.Removed) {
|
|
80
|
+
garbageEntries.push(entity);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const result = triggerAreaResultComponent.get(entity);
|
|
84
|
+
// The Explorer may be taking time before the result component is put
|
|
85
|
+
if (result.size === 0)
|
|
86
|
+
continue;
|
|
87
|
+
const values = Array.from(result.values());
|
|
88
|
+
// determine starting index for new values (more than one could be added between System updates)
|
|
89
|
+
// search backwards to find the anchor at lastConsumedTimestamp
|
|
90
|
+
let startIndex = 0;
|
|
91
|
+
if (data.lastConsumedTimestamp >= 0) {
|
|
92
|
+
const newestTimestamp = values[values.length - 1].timestamp;
|
|
93
|
+
// if nothing new, skip processing
|
|
94
|
+
if (newestTimestamp <= data.lastConsumedTimestamp) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Find index of value with the lastConsumedTimestamp
|
|
98
|
+
let i = values.length - 2;
|
|
99
|
+
while (i >= 0 && values[i].timestamp > data.lastConsumedTimestamp)
|
|
100
|
+
i--;
|
|
101
|
+
// Mark the following value index as the starting point to trigger all the new value callbacks
|
|
102
|
+
startIndex = i + 1;
|
|
103
|
+
}
|
|
104
|
+
if (startIndex >= values.length)
|
|
105
|
+
continue;
|
|
106
|
+
// Trigger callbacks for all the new values
|
|
107
|
+
for (let i = startIndex; i < values.length; i++) {
|
|
108
|
+
switch (values[i].eventType) {
|
|
109
|
+
case 0 /* TriggerAreaEventType.TAET_ENTER */:
|
|
110
|
+
if (!data.triggerCallbackMap.has(0 /* TriggerAreaEventType.TAET_ENTER */))
|
|
111
|
+
continue;
|
|
112
|
+
data.triggerCallbackMap.get(0 /* TriggerAreaEventType.TAET_ENTER */)(values[i]);
|
|
113
|
+
break;
|
|
114
|
+
case 1 /* TriggerAreaEventType.TAET_STAY */:
|
|
115
|
+
if (!data.triggerCallbackMap.has(1 /* TriggerAreaEventType.TAET_STAY */))
|
|
116
|
+
continue;
|
|
117
|
+
data.triggerCallbackMap.get(1 /* TriggerAreaEventType.TAET_STAY */)(values[i]);
|
|
118
|
+
break;
|
|
119
|
+
case 2 /* TriggerAreaEventType.TAET_EXIT */:
|
|
120
|
+
if (!data.triggerCallbackMap.has(2 /* TriggerAreaEventType.TAET_EXIT */))
|
|
121
|
+
continue;
|
|
122
|
+
data.triggerCallbackMap.get(2 /* TriggerAreaEventType.TAET_EXIT */)(values[i]);
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
data.lastConsumedTimestamp = values[values.length - 1].timestamp;
|
|
127
|
+
}
|
|
128
|
+
// Clean up garbage entries
|
|
129
|
+
garbageEntries.forEach((garbageEntity) => entitiesMap.delete(garbageEntity));
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
onTriggerEnter,
|
|
133
|
+
removeOnTriggerEnter,
|
|
134
|
+
onTriggerStay,
|
|
135
|
+
removeOnTriggerStay,
|
|
136
|
+
onTriggerExit,
|
|
137
|
+
removeOnTriggerExit
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
exports.createTriggerAreaEventsSystem = createTriggerAreaEventsSystem;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/ecs",
|
|
3
3
|
"description": "Decentraland ECS",
|
|
4
|
-
"version": "7.10.3-
|
|
4
|
+
"version": "7.10.3-18106625709.commit-1bcaa4a",
|
|
5
5
|
"author": "DCL",
|
|
6
6
|
"bugs": "https://github.com/decentraland/ecs/issues",
|
|
7
7
|
"files": [
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
},
|
|
34
34
|
"types": "./dist/index.d.ts",
|
|
35
35
|
"typings": "./dist/index.d.ts",
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "1bcaa4aa66245ab02561c033a0a0651eed1260f3"
|
|
37
37
|
}
|