@dcl/ecs 7.3.20 → 7.3.21-6483018672.commit-3538b47

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.
Files changed (59) hide show
  1. package/dist/components/extended/Tween.d.ts +29 -0
  2. package/dist/components/extended/Tween.js +28 -0
  3. package/dist/components/generated/Tween.gen.d.ts +1 -0
  4. package/dist/components/generated/Tween.gen.js +25 -0
  5. package/dist/components/generated/TweenSequence.gen.d.ts +1 -0
  6. package/dist/components/generated/TweenSequence.gen.js +25 -0
  7. package/dist/components/generated/TweenState.gen.d.ts +1 -0
  8. package/dist/components/generated/TweenState.gen.js +25 -0
  9. package/dist/components/generated/component-names.gen.js +3 -0
  10. package/dist/components/generated/global.gen.d.ts +4 -0
  11. package/dist/components/generated/global.gen.js +2 -0
  12. package/dist/components/generated/index.gen.d.ts +12 -0
  13. package/dist/components/generated/index.gen.js +15 -0
  14. package/dist/components/generated/pb/decentraland/sdk/components/tween.gen.d.ts +115 -0
  15. package/dist/components/generated/pb/decentraland/sdk/components/tween.gen.js +290 -0
  16. package/dist/components/generated/pb/decentraland/sdk/components/tween_sequence.gen.d.ts +23 -0
  17. package/dist/components/generated/pb/decentraland/sdk/components/tween_sequence.gen.js +59 -0
  18. package/dist/components/generated/pb/decentraland/sdk/components/tween_state.gen.d.ts +24 -0
  19. package/dist/components/generated/pb/decentraland/sdk/components/tween_state.gen.js +59 -0
  20. package/dist/components/generated/types.gen.d.ts +1 -1
  21. package/dist/components/index.d.ts +2 -0
  22. package/dist/components/index.js +3 -0
  23. package/dist/components/types.d.ts +1 -0
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.js +1 -0
  26. package/dist/runtime/initialization/index.d.ts +7 -1
  27. package/dist/runtime/initialization/index.js +6 -1
  28. package/dist/systems/tween.d.ts +4 -0
  29. package/dist/systems/tween.js +116 -0
  30. package/dist-cjs/components/extended/Tween.d.ts +29 -0
  31. package/dist-cjs/components/extended/Tween.js +32 -0
  32. package/dist-cjs/components/generated/Tween.gen.d.ts +1 -0
  33. package/dist-cjs/components/generated/Tween.gen.js +28 -0
  34. package/dist-cjs/components/generated/TweenSequence.gen.d.ts +1 -0
  35. package/dist-cjs/components/generated/TweenSequence.gen.js +28 -0
  36. package/dist-cjs/components/generated/TweenState.gen.d.ts +1 -0
  37. package/dist-cjs/components/generated/TweenState.gen.js +28 -0
  38. package/dist-cjs/components/generated/component-names.gen.js +3 -0
  39. package/dist-cjs/components/generated/global.gen.d.ts +4 -0
  40. package/dist-cjs/components/generated/global.gen.js +3 -1
  41. package/dist-cjs/components/generated/index.gen.d.ts +12 -0
  42. package/dist-cjs/components/generated/index.gen.js +19 -1
  43. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween.gen.d.ts +115 -0
  44. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween.gen.js +296 -0
  45. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween_sequence.gen.d.ts +23 -0
  46. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween_sequence.gen.js +65 -0
  47. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween_state.gen.d.ts +24 -0
  48. package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween_state.gen.js +65 -0
  49. package/dist-cjs/components/generated/types.gen.d.ts +1 -1
  50. package/dist-cjs/components/index.d.ts +2 -0
  51. package/dist-cjs/components/index.js +5 -1
  52. package/dist-cjs/components/types.d.ts +1 -0
  53. package/dist-cjs/index.d.ts +2 -1
  54. package/dist-cjs/index.js +2 -1
  55. package/dist-cjs/runtime/initialization/index.d.ts +7 -1
  56. package/dist-cjs/runtime/initialization/index.js +7 -2
  57. package/dist-cjs/systems/tween.d.ts +4 -0
  58. package/dist-cjs/systems/tween.js +143 -0
  59. package/package.json +2 -2
@@ -0,0 +1,23 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ import { PBTween } from "./tween.gen";
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const enum TweenLoop {
7
+ TL_RESTART = 0,
8
+ TL_YOYO = 1
9
+ }
10
+ /**
11
+ * @public
12
+ */
13
+ export interface PBTweenSequence {
14
+ sequence: PBTween[];
15
+ loop?: TweenLoop | undefined;
16
+ }
17
+ /**
18
+ * @public
19
+ */
20
+ export declare namespace PBTweenSequence {
21
+ function encode(message: PBTweenSequence, writer?: _m0.Writer): _m0.Writer;
22
+ function decode(input: _m0.Reader | Uint8Array, length?: number): PBTweenSequence;
23
+ }
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ import _m0 from "protobufjs/minimal";
3
+ import { PBTween } from "./tween.gen";
4
+ const protobufPackageSarasa = "decentraland.sdk.components";
5
+ /**
6
+ * @public
7
+ */
8
+ export var TweenLoop;
9
+ (function (TweenLoop) {
10
+ TweenLoop[TweenLoop["TL_RESTART"] = 0] = "TL_RESTART";
11
+ TweenLoop[TweenLoop["TL_YOYO"] = 1] = "TL_YOYO";
12
+ })(TweenLoop || (TweenLoop = {}));
13
+ function createBasePBTweenSequence() {
14
+ return { sequence: [], loop: undefined };
15
+ }
16
+ /**
17
+ * @public
18
+ */
19
+ export var PBTweenSequence;
20
+ (function (PBTweenSequence) {
21
+ function encode(message, writer = _m0.Writer.create()) {
22
+ for (const v of message.sequence) {
23
+ PBTween.encode(v, writer.uint32(10).fork()).ldelim();
24
+ }
25
+ if (message.loop !== undefined) {
26
+ writer.uint32(16).int32(message.loop);
27
+ }
28
+ return writer;
29
+ }
30
+ PBTweenSequence.encode = encode;
31
+ function decode(input, length) {
32
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
33
+ let end = length === undefined ? reader.len : reader.pos + length;
34
+ const message = createBasePBTweenSequence();
35
+ while (reader.pos < end) {
36
+ const tag = reader.uint32();
37
+ switch (tag >>> 3) {
38
+ case 1:
39
+ if (tag !== 10) {
40
+ break;
41
+ }
42
+ message.sequence.push(PBTween.decode(reader, reader.uint32()));
43
+ continue;
44
+ case 2:
45
+ if (tag !== 16) {
46
+ break;
47
+ }
48
+ message.loop = reader.int32();
49
+ continue;
50
+ }
51
+ if ((tag & 7) === 4 || tag === 0) {
52
+ break;
53
+ }
54
+ reader.skipType(tag & 7);
55
+ }
56
+ return message;
57
+ }
58
+ PBTweenSequence.decode = decode;
59
+ })(PBTweenSequence || (PBTweenSequence = {}));
@@ -0,0 +1,24 @@
1
+ import _m0 from "protobufjs/minimal";
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const enum TweenStateStatus {
6
+ TS_ACTIVE = 0,
7
+ TS_COMPLETED = 1,
8
+ TS_PAUSED = 2
9
+ }
10
+ /**
11
+ * @public
12
+ */
13
+ export interface PBTweenState {
14
+ state: TweenStateStatus;
15
+ /** between 0 and 1 */
16
+ currentTime: number;
17
+ }
18
+ /**
19
+ * @public
20
+ */
21
+ export declare namespace PBTweenState {
22
+ function encode(message: PBTweenState, writer?: _m0.Writer): _m0.Writer;
23
+ function decode(input: _m0.Reader | Uint8Array, length?: number): PBTweenState;
24
+ }
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ import _m0 from "protobufjs/minimal";
3
+ const protobufPackageSarasa = "decentraland.sdk.components";
4
+ /**
5
+ * @public
6
+ */
7
+ export var TweenStateStatus;
8
+ (function (TweenStateStatus) {
9
+ TweenStateStatus[TweenStateStatus["TS_ACTIVE"] = 0] = "TS_ACTIVE";
10
+ TweenStateStatus[TweenStateStatus["TS_COMPLETED"] = 1] = "TS_COMPLETED";
11
+ TweenStateStatus[TweenStateStatus["TS_PAUSED"] = 2] = "TS_PAUSED";
12
+ })(TweenStateStatus || (TweenStateStatus = {}));
13
+ function createBasePBTweenState() {
14
+ return { state: 0, currentTime: 0 };
15
+ }
16
+ /**
17
+ * @public
18
+ */
19
+ export var PBTweenState;
20
+ (function (PBTweenState) {
21
+ function encode(message, writer = _m0.Writer.create()) {
22
+ if (message.state !== 0) {
23
+ writer.uint32(8).int32(message.state);
24
+ }
25
+ if (message.currentTime !== 0) {
26
+ writer.uint32(21).float(message.currentTime);
27
+ }
28
+ return writer;
29
+ }
30
+ PBTweenState.encode = encode;
31
+ function decode(input, length) {
32
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
33
+ let end = length === undefined ? reader.len : reader.pos + length;
34
+ const message = createBasePBTweenState();
35
+ while (reader.pos < end) {
36
+ const tag = reader.uint32();
37
+ switch (tag >>> 3) {
38
+ case 1:
39
+ if (tag !== 8) {
40
+ break;
41
+ }
42
+ message.state = reader.int32();
43
+ continue;
44
+ case 2:
45
+ if (tag !== 21) {
46
+ break;
47
+ }
48
+ message.currentTime = reader.float();
49
+ continue;
50
+ }
51
+ if ((tag & 7) === 4 || tag === 0) {
52
+ break;
53
+ }
54
+ reader.skipType(tag & 7);
55
+ }
56
+ return message;
57
+ }
58
+ PBTweenState.decode = decode;
59
+ })(PBTweenState || (PBTweenState = {}));
@@ -1,4 +1,4 @@
1
- export type { Position as PBPosition, Vector2 as PBVector2, Vector3 as PBVector3 } from './pb/decentraland/common/vectors.gen';
1
+ export type { Position as PBPosition, Vector2 as PBVector2, Vector3 as PBVector3, Quaternion as PBQuaternion } from './pb/decentraland/common/vectors.gen';
2
2
  export type { Color3 as PBColor3, Color4 as PBColor4 } from './pb/decentraland/common/colors.gen';
3
3
  export * from './pb/decentraland/sdk/components/common/camera_type.gen';
4
4
  export * from './pb/decentraland/sdk/components/common/input_action.gen';
@@ -4,6 +4,7 @@ import { AnimatorComponentDefinitionExtended } from './extended/Animator';
4
4
  import { MaterialComponentDefinitionExtended } from './extended/Material';
5
5
  import { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
6
6
  import { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
7
+ import { TweenComponentDefinitionExtended } from './extended/Tween';
7
8
  import { LwwComponentGetter, GSetComponentGetter } from './generated/index.gen';
8
9
  import { NameType } from './manual/Name';
9
10
  import { ISyncComponentsType } from './manual/SyncComponents';
@@ -15,6 +16,7 @@ export declare const Material: LwwComponentGetter<MaterialComponentDefinitionExt
15
16
  export declare const Animator: LwwComponentGetter<AnimatorComponentDefinitionExtended>;
16
17
  export declare const MeshRenderer: LwwComponentGetter<MeshRendererComponentDefinitionExtended>;
17
18
  export declare const MeshCollider: LwwComponentGetter<MeshColliderComponentDefinitionExtended>;
19
+ export declare const Tween: LwwComponentGetter<TweenComponentDefinitionExtended>;
18
20
  /**
19
21
  * @alpha
20
22
  */
@@ -2,6 +2,7 @@ import { defineAnimatorComponent } from './extended/Animator';
2
2
  import { defineMaterialComponent } from './extended/Material';
3
3
  import { defineMeshColliderComponent } from './extended/MeshCollider';
4
4
  import { defineMeshRendererComponent } from './extended/MeshRenderer';
5
+ import { defineTweenComponent } from './extended/Tween';
5
6
  import defineNameComponent from './manual/Name';
6
7
  import defineSyncComponent from './manual/SyncComponents';
7
8
  import { defineTransformComponent } from './manual/Transform';
@@ -16,6 +17,8 @@ export const Animator = (engine) => defineAnimatorComponent(engine);
16
17
  export const MeshRenderer = (engine) => defineMeshRendererComponent(engine);
17
18
  /* @__PURE__ */
18
19
  export const MeshCollider = (engine) => defineMeshColliderComponent(engine);
20
+ /* @__PURE__ */
21
+ export const Tween = (engine) => defineTweenComponent(engine);
19
22
  /**
20
23
  * @alpha
21
24
  */
@@ -2,6 +2,7 @@ export type { AnimatorComponentDefinitionExtended } from './extended/Animator';
2
2
  export type { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
3
3
  export type { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
4
4
  export type { TextureHelper, MaterialComponentDefinitionExtended } from './extended/Material';
5
+ export type { TweenHelper, TweenComponentDefinitionExtended } from './extended/Tween';
5
6
  export type { TransformComponentExtended, TransformTypeWithOptionals } from './manual/Transform';
6
7
  export type { NameComponent, NameType } from './manual/Name';
7
8
  export type { ISyncComponents, ISyncComponentsType } from './manual/SyncComponents';
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export * from './systems/videoEvents';
10
10
  export * from './systems/async-task';
11
11
  export * from './engine/entity';
12
12
  export * from './components/types';
13
- import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, ISyncComponents } from './components/types';
13
+ import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended } from './components/types';
14
14
  import { NameComponent } from './components/manual/Name';
15
15
  export declare const Transform: TransformComponentExtended;
16
16
  export declare const Animator: AnimatorComponentDefinitionExtended;
@@ -18,6 +18,7 @@ export declare const Material: MaterialComponentDefinitionExtended;
18
18
  export declare const MeshRenderer: MeshRendererComponentDefinitionExtended;
19
19
  export declare const MeshCollider: MeshColliderComponentDefinitionExtended;
20
20
  export declare const Name: NameComponent;
21
+ export declare const Tween: TweenComponentDefinitionExtended;
21
22
  /**
22
23
  * @alpha
23
24
  * This is going to be used for sync components through a server.
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ export const Material = /* @__PURE__*/ components.Material(engine);
23
23
  export const MeshRenderer = /* @__PURE__*/ components.MeshRenderer(engine);
24
24
  export const MeshCollider = /* @__PURE__*/ components.MeshCollider(engine);
25
25
  export const Name = components.Name(engine);
26
+ export const Tween = /* @__PURE__*/ components.Tween(engine);
26
27
  /**
27
28
  * @alpha
28
29
  * This is going to be used for sync components through a server.
@@ -8,6 +8,7 @@ import { PointerEventsSystem } from '../../systems/events';
8
8
  import { IInputSystem } from './../../engine/input';
9
9
  import { RaycastSystem } from '../../systems/raycast';
10
10
  import { VideoEventsSystem } from '../../systems/videoEvents';
11
+ import { TweenSystem } from '../../systems/tween';
11
12
  /**
12
13
  * @public
13
14
  * The engine is the part of the scene that sits in the middle and manages all of the other parts.
@@ -44,12 +45,17 @@ export { PointerEventsSystem };
44
45
  export declare const raycastSystem: RaycastSystem;
45
46
  export { RaycastSystem };
46
47
  /**
47
- * @alpha
48
48
  * @public
49
49
  * Register callback functions to a particular entity on video events.
50
50
  */
51
51
  export declare const videoEventsSystem: VideoEventsSystem;
52
52
  export { VideoEventsSystem };
53
+ /**
54
+ * @public
55
+ * Register callback functions to a particular entity on video events.
56
+ */
57
+ export declare const tweenSystem: TweenSystem;
58
+ export { TweenSystem };
53
59
  /**
54
60
  * @public
55
61
  * Runs an async function
@@ -8,6 +8,7 @@ import { createPointerEventsSystem } from '../../systems/events';
8
8
  import { createInputSystem } from './../../engine/input';
9
9
  import { createRaycastSystem } from '../../systems/raycast';
10
10
  import { createVideoEventsSystem } from '../../systems/videoEvents';
11
+ import { createTweenSystem } from '../../systems/tween';
11
12
  /**
12
13
  * @public
13
14
  * The engine is the part of the scene that sits in the middle and manages all of the other parts.
@@ -41,11 +42,15 @@ export const pointerEventsSystem = /* @__PURE__ */ createPointerEventsSystem(eng
41
42
  */
42
43
  export const raycastSystem = /* @__PURE__ */ createRaycastSystem(engine);
43
44
  /**
44
- * @alpha
45
45
  * @public
46
46
  * Register callback functions to a particular entity on video events.
47
47
  */
48
48
  export const videoEventsSystem = /* @__PURE__ */ createVideoEventsSystem(engine);
49
+ /**
50
+ * @public
51
+ * Register callback functions to a particular entity on video events.
52
+ */
53
+ export const tweenSystem = createTweenSystem(engine);
49
54
  /**
50
55
  * @public
51
56
  * Runs an async function
@@ -0,0 +1,4 @@
1
+ import { Entity } from '../engine';
2
+ export type TweenSystem = {
3
+ tweenCompleted(entity: Entity): boolean;
4
+ };
@@ -0,0 +1,116 @@
1
+ import * as components from '../components';
2
+ import { ReadWriteByteBuffer } from '../serialization/ByteBuffer';
3
+ import { dataCompare } from './crdt/utils';
4
+ /**
5
+ * @internal
6
+ * @returns tween helper to be used on the scene
7
+ */
8
+ export function createTweenSystem(engine) {
9
+ const Tween = components.Tween(engine);
10
+ const TweenState = components.TweenState(engine);
11
+ const TweenSequence = components.TweenSequence(engine);
12
+ const cache = new Map();
13
+ function isCompleted(entity) {
14
+ const tweenState = TweenState.getOrNull(entity);
15
+ const tween = Tween.getOrNull(entity);
16
+ const tweenCache = cache.get(entity);
17
+ if (!tweenState || !tween)
18
+ return false;
19
+ /* istanbul ignore next */
20
+ if (
21
+ // Renderer notified that the tween is completed
22
+ (tweenChanged(entity) || tweenState.state === 1 /* TweenStateStatus.TS_COMPLETED */) &&
23
+ // Avoid sending isCompleted multiple times
24
+ !tweenCache?.completed &&
25
+ // Amount of frames needed to consider a tween completed
26
+ (tweenCache?.frames ?? 0) > 2) {
27
+ return true;
28
+ }
29
+ return false;
30
+ }
31
+ function tweenChanged(entity) {
32
+ const currentTween = Tween.getOrNull(entity);
33
+ const prevTween = cache.get(entity)?.tween;
34
+ /* istanbul ignore next */
35
+ if ((currentTween && !prevTween) || (!currentTween && prevTween)) {
36
+ return true;
37
+ }
38
+ const currentBuff = new ReadWriteByteBuffer();
39
+ Tween.schema.serialize(currentTween, currentBuff);
40
+ const equal = dataCompare(currentBuff.toBinary(), prevTween);
41
+ return equal;
42
+ }
43
+ const restartTweens = [];
44
+ // Logic for sequence tweens
45
+ engine.addSystem(() => {
46
+ for (const restart of restartTweens) {
47
+ restart();
48
+ }
49
+ restartTweens.length = 0;
50
+ for (const [entity, tween] of engine.getEntitiesWith(Tween)) {
51
+ if (tweenChanged(entity)) {
52
+ const buffer = new ReadWriteByteBuffer();
53
+ Tween.schema.serialize(tween, buffer);
54
+ cache.set(entity, {
55
+ tween: buffer.toBinary(),
56
+ frames: 0,
57
+ completed: false,
58
+ changed: true
59
+ });
60
+ continue;
61
+ }
62
+ const tweenCache = cache.get(entity);
63
+ tweenCache.frames += 1;
64
+ tweenCache.changed = false;
65
+ if (isCompleted(entity)) {
66
+ // Reset tween frames.
67
+ tweenCache.frames = 0;
68
+ // set the tween completed to avoid calling this again for the same tween
69
+ tweenCache.completed = true;
70
+ const tweenSequence = TweenSequence.getOrNull(entity);
71
+ if (!tweenSequence)
72
+ continue;
73
+ const { sequence } = tweenSequence;
74
+ if (sequence && sequence.length) {
75
+ const [nextTweenSequence, ...otherTweens] = sequence;
76
+ Tween.createOrReplace(entity, nextTweenSequence);
77
+ const mutableTweenHelper = TweenSequence.getMutable(entity);
78
+ mutableTweenHelper.sequence = otherTweens;
79
+ if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
80
+ mutableTweenHelper.sequence.push(tween);
81
+ }
82
+ }
83
+ else if (tweenSequence.loop === 1 /* TweenLoop.TL_YOYO */) {
84
+ Tween.createOrReplace(entity, backwardsTween(tween));
85
+ }
86
+ else if (tweenSequence.loop === 0 /* TweenLoop.TL_RESTART */) {
87
+ Tween.deleteFrom(entity);
88
+ cache.delete(entity);
89
+ restartTweens.push(() => {
90
+ Tween.createOrReplace(entity, tween);
91
+ });
92
+ }
93
+ }
94
+ }
95
+ }, Number.NEGATIVE_INFINITY);
96
+ function backwardsTween(tween) {
97
+ if (tween.mode?.$case === 'move' && tween.mode.move) {
98
+ return { ...tween, mode: { ...tween.mode, move: { start: tween.mode.move.end, end: tween.mode.move.start } } };
99
+ }
100
+ if (tween.mode?.$case === 'rotate' && tween.mode.rotate) {
101
+ return {
102
+ ...tween,
103
+ mode: { ...tween.mode, rotate: { start: tween.mode.rotate.end, end: tween.mode.rotate.start } }
104
+ };
105
+ }
106
+ if (tween.mode?.$case === 'scale' && tween.mode.scale) {
107
+ return { ...tween, mode: { ...tween.mode, scale: { start: tween.mode.scale.end, end: tween.mode.scale.start } } };
108
+ }
109
+ /* istanbul ignore next */
110
+ throw new Error('Invalid tween');
111
+ }
112
+ return {
113
+ // This event is fired only once per tween
114
+ tweenCompleted: isCompleted
115
+ };
116
+ }
@@ -0,0 +1,29 @@
1
+ import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
2
+ import { PBTween, Move, Rotate, Scale } from '../generated/index.gen';
3
+ /**
4
+ * @public
5
+ */
6
+ export interface TweenHelper {
7
+ /**
8
+ * @returns a move mode tween
9
+ */
10
+ Move: (move: Move) => PBTween['mode'];
11
+ /**
12
+ * @returns a move mode tween
13
+ */
14
+ Rotate: (rotate: Rotate) => PBTween['mode'];
15
+ /**
16
+ * @returns a move mode tween
17
+ */
18
+ Scale: (scale: Scale) => PBTween['mode'];
19
+ }
20
+ /**
21
+ * @public
22
+ */
23
+ export interface TweenComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<PBTween> {
24
+ /**
25
+ * Texture helpers with constructor
26
+ */
27
+ Mode: TweenHelper;
28
+ }
29
+ export declare function defineTweenComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): TweenComponentDefinitionExtended;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTweenComponent = void 0;
4
+ const index_gen_1 = require("../generated/index.gen");
5
+ const TweenHelper = {
6
+ Move(move) {
7
+ return {
8
+ $case: 'move',
9
+ move
10
+ };
11
+ },
12
+ Rotate(rotate) {
13
+ return {
14
+ $case: 'rotate',
15
+ rotate
16
+ };
17
+ },
18
+ Scale(scale) {
19
+ return {
20
+ $case: 'scale',
21
+ scale
22
+ };
23
+ }
24
+ };
25
+ function defineTweenComponent(engine) {
26
+ const theComponent = (0, index_gen_1.Tween)(engine);
27
+ return {
28
+ ...theComponent,
29
+ Mode: TweenHelper
30
+ };
31
+ }
32
+ exports.defineTweenComponent = defineTweenComponent;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TweenSchema = void 0;
4
+ const tween_gen_1 = require("./pb/decentraland/sdk/components/tween.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TweenSchema = {
9
+ COMPONENT_ID: 1102,
10
+ serialize(value, builder) {
11
+ const writer = tween_gen_1.PBTween.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return tween_gen_1.PBTween.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return tween_gen_1.PBTween.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTween"
27
+ }
28
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TweenSequenceSchema = void 0;
4
+ const tween_sequence_gen_1 = require("./pb/decentraland/sdk/components/tween_sequence.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TweenSequenceSchema = {
9
+ COMPONENT_ID: 1104,
10
+ serialize(value, builder) {
11
+ const writer = tween_sequence_gen_1.PBTweenSequence.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return tween_sequence_gen_1.PBTweenSequence.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return tween_sequence_gen_1.PBTweenSequence.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTweenSequence"
27
+ }
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TweenStateSchema = void 0;
4
+ const tween_state_gen_1 = require("./pb/decentraland/sdk/components/tween_state.gen");
5
+ /**
6
+ * @internal
7
+ */
8
+ exports.TweenStateSchema = {
9
+ COMPONENT_ID: 1103,
10
+ serialize(value, builder) {
11
+ const writer = tween_state_gen_1.PBTweenState.encode(value);
12
+ const buffer = new Uint8Array(writer.finish(), 0, writer.len);
13
+ builder.writeBuffer(buffer, false);
14
+ },
15
+ deserialize(reader) {
16
+ return tween_state_gen_1.PBTweenState.decode(reader.buffer(), reader.remainingBytes());
17
+ },
18
+ create() {
19
+ // TODO: this is a hack.
20
+ return tween_state_gen_1.PBTweenState.decode(new Uint8Array());
21
+ },
22
+ jsonSchema: {
23
+ type: "object",
24
+ properties: {},
25
+ serializationType: "protocol-buffer",
26
+ protocolBuffer: "PBTweenState"
27
+ }
28
+ };
@@ -32,6 +32,9 @@ exports.coreComponentMappings = {
32
32
  "core::Raycast": 1067,
33
33
  "core::RaycastResult": 1068,
34
34
  "core::TextShape": 1030,
35
+ "core::Tween": 1102,
36
+ "core::TweenSequence": 1104,
37
+ "core::TweenState": 1103,
35
38
  "core::UiBackground": 1053,
36
39
  "core::UiCanvasInformation": 1054,
37
40
  "core::UiDropdown": 1094,
@@ -18,6 +18,8 @@ import { PBPointerLock } from './pb/decentraland/sdk/components/pointer_lock.gen
18
18
  import { PBRaycast } from './pb/decentraland/sdk/components/raycast.gen';
19
19
  import { PBRaycastResult } from './pb/decentraland/sdk/components/raycast_result.gen';
20
20
  import { PBTextShape } from './pb/decentraland/sdk/components/text_shape.gen';
21
+ import { PBTweenSequence } from './pb/decentraland/sdk/components/tween_sequence.gen';
22
+ import { PBTweenState } from './pb/decentraland/sdk/components/tween_state.gen';
21
23
  import { PBUiBackground } from './pb/decentraland/sdk/components/ui_background.gen';
22
24
  import { PBUiCanvasInformation } from './pb/decentraland/sdk/components/ui_canvas_information.gen';
23
25
  import { PBUiDropdown } from './pb/decentraland/sdk/components/ui_dropdown.gen';
@@ -47,6 +49,8 @@ import { PBVisibilityComponent } from './pb/decentraland/sdk/components/visibili
47
49
  /** @public */ export declare const Raycast: LastWriteWinElementSetComponentDefinition<PBRaycast>;
48
50
  /** @public */ export declare const RaycastResult: LastWriteWinElementSetComponentDefinition<PBRaycastResult>;
49
51
  /** @public */ export declare const TextShape: LastWriteWinElementSetComponentDefinition<PBTextShape>;
52
+ /** @public */ export declare const TweenSequence: LastWriteWinElementSetComponentDefinition<PBTweenSequence>;
53
+ /** @public */ export declare const TweenState: LastWriteWinElementSetComponentDefinition<PBTweenState>;
50
54
  /** @public */ export declare const UiBackground: LastWriteWinElementSetComponentDefinition<PBUiBackground>;
51
55
  /** @public */ export declare const UiCanvasInformation: LastWriteWinElementSetComponentDefinition<PBUiCanvasInformation>;
52
56
  /** @public */ export declare const UiDropdown: LastWriteWinElementSetComponentDefinition<PBUiDropdown>;
@@ -26,7 +26,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.VisibilityComponent = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TextShape = exports.RaycastResult = exports.Raycast = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.NftShape = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = void 0;
29
+ exports.VisibilityComponent = exports.VideoPlayer = exports.VideoEvent = exports.UiTransform = exports.UiText = exports.UiInputResult = exports.UiInput = exports.UiDropdownResult = exports.UiDropdown = exports.UiCanvasInformation = exports.UiBackground = exports.TweenState = exports.TweenSequence = exports.TextShape = exports.RaycastResult = exports.Raycast = exports.PointerLock = exports.PointerEventsResult = exports.PointerEvents = exports.NftShape = exports.GltfContainerLoadingState = exports.GltfContainer = exports.EngineInfo = exports.CameraModeArea = exports.CameraMode = exports.Billboard = exports.AvatarShape = exports.AvatarModifierArea = exports.AvatarAttach = exports.AudioStream = exports.AudioSource = void 0;
30
30
  const initialization_1 = require("../../runtime/initialization");
31
31
  const components = __importStar(require("./index.gen"));
32
32
  __exportStar(require("./index.gen"), exports);
@@ -48,6 +48,8 @@ __exportStar(require("./index.gen"), exports);
48
48
  /** @public */ exports.Raycast = components.Raycast(initialization_1.engine);
49
49
  /** @public */ exports.RaycastResult = components.RaycastResult(initialization_1.engine);
50
50
  /** @public */ exports.TextShape = components.TextShape(initialization_1.engine);
51
+ /** @public */ exports.TweenSequence = components.TweenSequence(initialization_1.engine);
52
+ /** @public */ exports.TweenState = components.TweenState(initialization_1.engine);
51
53
  /** @public */ exports.UiBackground = components.UiBackground(initialization_1.engine);
52
54
  /** @public */ exports.UiCanvasInformation = components.UiCanvasInformation(initialization_1.engine);
53
55
  /** @public */ exports.UiDropdown = components.UiDropdown(initialization_1.engine);