@dcl/protocol 1.0.0-24444876160.commit-bea92dd → 1.0.0-24496228560.commit-6915bc8

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 (25) hide show
  1. package/out-js/decentraland/kernel/apis/restricted_actions.gen.d.ts +21 -0
  2. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js +85 -6
  3. package/out-js/decentraland/kernel/apis/restricted_actions.gen.js.map +1 -1
  4. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.d.ts +38 -17
  5. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js +234 -114
  6. package/out-js/decentraland/kernel/comms/rfc4/comms.gen.js.map +1 -1
  7. package/out-js/decentraland/sdk/components/avatar_shape.gen.d.ts +8 -0
  8. package/out-js/decentraland/sdk/components/avatar_shape.gen.js +35 -1
  9. package/out-js/decentraland/sdk/components/avatar_shape.gen.js.map +1 -1
  10. package/out-js/decentraland/sdk/components/common/input_action.gen.d.ts +1 -0
  11. package/out-js/decentraland/sdk/components/common/input_action.gen.js +6 -0
  12. package/out-js/decentraland/sdk/components/common/input_action.gen.js.map +1 -1
  13. package/out-ts/decentraland/kernel/apis/restricted_actions.gen.ts +89 -3
  14. package/out-ts/decentraland/kernel/comms/rfc4/comms.gen.ts +289 -125
  15. package/out-ts/decentraland/sdk/components/avatar_shape.gen.ts +34 -0
  16. package/out-ts/decentraland/sdk/components/common/input_action.gen.ts +6 -0
  17. package/package.json +3 -3
  18. package/proto/decentraland/kernel/apis/restricted_actions.proto +7 -0
  19. package/proto/decentraland/kernel/comms/rfc4/comms.proto +24 -11
  20. package/proto/decentraland/sdk/components/audio_analysis.proto +44 -0
  21. package/proto/decentraland/sdk/components/avatar_locomotion_settings.proto +21 -0
  22. package/proto/decentraland/sdk/components/avatar_shape.proto +5 -0
  23. package/proto/decentraland/sdk/components/common/input_action.proto +1 -0
  24. package/proto/decentraland/sdk/components/light_source.proto +1 -1
  25. package/proto/decentraland/sdk/components/virtual_camera.proto +2 -0
@@ -137,6 +137,46 @@ export interface PlayerEmote {
137
137
  incrementalId: number;
138
138
  urn: string;
139
139
  timestamp: number;
140
+ /** true means the emote has been stopped in the sender's client */
141
+ isStopping?:
142
+ | boolean
143
+ | undefined;
144
+ /** true when it is not the first time the looping animation plays */
145
+ isRepeating?:
146
+ | boolean
147
+ | undefined;
148
+ /** identifies an interaction univocaly, established when the start animation is triggered */
149
+ interactionId?:
150
+ | number
151
+ | undefined;
152
+ /** -1 means it does not use an outcome animation */
153
+ socialEmoteOutcome?:
154
+ | number
155
+ | undefined;
156
+ /** to a social emote started by other user */
157
+ isReacting?:
158
+ | boolean
159
+ | undefined;
160
+ /** wallet address of the user that initiated social emote */
161
+ socialEmoteInitiator?:
162
+ | string
163
+ | undefined;
164
+ /** wallet address of the user whose avatar is the target of a directed emote */
165
+ targetAvatar?:
166
+ | string
167
+ | undefined;
168
+ /** mask for which bones an animation applies to. */
169
+ mask?: number | undefined;
170
+ }
171
+
172
+ /** Message sent to force an avatar to look at a position */
173
+ export interface LookAtPosition {
174
+ timestamp: number;
175
+ /** world position */
176
+ positionX: number;
177
+ positionY: number;
178
+ positionZ: number;
179
+ targetAvatarWalletAddress: string;
140
180
  }
141
181
 
142
182
  export interface SceneEmote {
@@ -161,6 +201,11 @@ export interface ProfileResponse {
161
201
  export interface Chat {
162
202
  message: string;
163
203
  timestamp: number;
204
+ /**
205
+ * Extension: optional forwarded_from to identify the original sender when
206
+ * messages are forwarded through an SFU
207
+ */
208
+ forwardedFrom?: string | undefined;
164
209
  }
165
210
 
166
211
  export interface Scene {
@@ -201,16 +246,6 @@ export function voice_VoiceCodecToJSON(object: Voice_VoiceCodec): string {
201
246
  }
202
247
  }
203
248
 
204
- /** Message sent to force an avatar to look at a position */
205
- export interface LookAtPosition {
206
- timestamp: number;
207
- /** world position */
208
- positionX: number;
209
- positionY: number;
210
- positionZ: number;
211
- targetAvatarWalletAddress: string;
212
- }
213
-
214
249
  export interface Reaction {
215
250
  emojiIndex: number;
216
251
  timestamp: number;
@@ -1287,7 +1322,19 @@ export namespace MovementCompressed {
1287
1322
  }
1288
1323
 
1289
1324
  function createBasePlayerEmote(): PlayerEmote {
1290
- return { incrementalId: 0, urn: "", timestamp: 0 };
1325
+ return {
1326
+ incrementalId: 0,
1327
+ urn: "",
1328
+ timestamp: 0,
1329
+ isStopping: undefined,
1330
+ isRepeating: undefined,
1331
+ interactionId: undefined,
1332
+ socialEmoteOutcome: undefined,
1333
+ isReacting: undefined,
1334
+ socialEmoteInitiator: undefined,
1335
+ targetAvatar: undefined,
1336
+ mask: undefined,
1337
+ };
1291
1338
  }
1292
1339
 
1293
1340
  export namespace PlayerEmote {
@@ -1301,6 +1348,30 @@ export namespace PlayerEmote {
1301
1348
  if (message.timestamp !== 0) {
1302
1349
  writer.uint32(29).float(message.timestamp);
1303
1350
  }
1351
+ if (message.isStopping !== undefined) {
1352
+ writer.uint32(32).bool(message.isStopping);
1353
+ }
1354
+ if (message.isRepeating !== undefined) {
1355
+ writer.uint32(40).bool(message.isRepeating);
1356
+ }
1357
+ if (message.interactionId !== undefined) {
1358
+ writer.uint32(48).int32(message.interactionId);
1359
+ }
1360
+ if (message.socialEmoteOutcome !== undefined) {
1361
+ writer.uint32(56).int32(message.socialEmoteOutcome);
1362
+ }
1363
+ if (message.isReacting !== undefined) {
1364
+ writer.uint32(64).bool(message.isReacting);
1365
+ }
1366
+ if (message.socialEmoteInitiator !== undefined) {
1367
+ writer.uint32(74).string(message.socialEmoteInitiator);
1368
+ }
1369
+ if (message.targetAvatar !== undefined) {
1370
+ writer.uint32(82).string(message.targetAvatar);
1371
+ }
1372
+ if (message.mask !== undefined) {
1373
+ writer.uint32(88).uint32(message.mask);
1374
+ }
1304
1375
  return writer;
1305
1376
  }
1306
1377
 
@@ -1332,6 +1403,62 @@ export namespace PlayerEmote {
1332
1403
 
1333
1404
  message.timestamp = reader.float();
1334
1405
  continue;
1406
+ case 4:
1407
+ if (tag !== 32) {
1408
+ break;
1409
+ }
1410
+
1411
+ message.isStopping = reader.bool();
1412
+ continue;
1413
+ case 5:
1414
+ if (tag !== 40) {
1415
+ break;
1416
+ }
1417
+
1418
+ message.isRepeating = reader.bool();
1419
+ continue;
1420
+ case 6:
1421
+ if (tag !== 48) {
1422
+ break;
1423
+ }
1424
+
1425
+ message.interactionId = reader.int32();
1426
+ continue;
1427
+ case 7:
1428
+ if (tag !== 56) {
1429
+ break;
1430
+ }
1431
+
1432
+ message.socialEmoteOutcome = reader.int32();
1433
+ continue;
1434
+ case 8:
1435
+ if (tag !== 64) {
1436
+ break;
1437
+ }
1438
+
1439
+ message.isReacting = reader.bool();
1440
+ continue;
1441
+ case 9:
1442
+ if (tag !== 74) {
1443
+ break;
1444
+ }
1445
+
1446
+ message.socialEmoteInitiator = reader.string();
1447
+ continue;
1448
+ case 10:
1449
+ if (tag !== 82) {
1450
+ break;
1451
+ }
1452
+
1453
+ message.targetAvatar = reader.string();
1454
+ continue;
1455
+ case 11:
1456
+ if (tag !== 88) {
1457
+ break;
1458
+ }
1459
+
1460
+ message.mask = reader.uint32();
1461
+ continue;
1335
1462
  }
1336
1463
  if ((tag & 7) === 4 || tag === 0) {
1337
1464
  break;
@@ -1346,6 +1473,14 @@ export namespace PlayerEmote {
1346
1473
  incrementalId: isSet(object.incrementalId) ? Number(object.incrementalId) : 0,
1347
1474
  urn: isSet(object.urn) ? String(object.urn) : "",
1348
1475
  timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
1476
+ isStopping: isSet(object.isStopping) ? Boolean(object.isStopping) : undefined,
1477
+ isRepeating: isSet(object.isRepeating) ? Boolean(object.isRepeating) : undefined,
1478
+ interactionId: isSet(object.interactionId) ? Number(object.interactionId) : undefined,
1479
+ socialEmoteOutcome: isSet(object.socialEmoteOutcome) ? Number(object.socialEmoteOutcome) : undefined,
1480
+ isReacting: isSet(object.isReacting) ? Boolean(object.isReacting) : undefined,
1481
+ socialEmoteInitiator: isSet(object.socialEmoteInitiator) ? String(object.socialEmoteInitiator) : undefined,
1482
+ targetAvatar: isSet(object.targetAvatar) ? String(object.targetAvatar) : undefined,
1483
+ mask: isSet(object.mask) ? Number(object.mask) : undefined,
1349
1484
  };
1350
1485
  }
1351
1486
 
@@ -1354,6 +1489,14 @@ export namespace PlayerEmote {
1354
1489
  message.incrementalId !== undefined && (obj.incrementalId = Math.round(message.incrementalId));
1355
1490
  message.urn !== undefined && (obj.urn = message.urn);
1356
1491
  message.timestamp !== undefined && (obj.timestamp = message.timestamp);
1492
+ message.isStopping !== undefined && (obj.isStopping = message.isStopping);
1493
+ message.isRepeating !== undefined && (obj.isRepeating = message.isRepeating);
1494
+ message.interactionId !== undefined && (obj.interactionId = Math.round(message.interactionId));
1495
+ message.socialEmoteOutcome !== undefined && (obj.socialEmoteOutcome = Math.round(message.socialEmoteOutcome));
1496
+ message.isReacting !== undefined && (obj.isReacting = message.isReacting);
1497
+ message.socialEmoteInitiator !== undefined && (obj.socialEmoteInitiator = message.socialEmoteInitiator);
1498
+ message.targetAvatar !== undefined && (obj.targetAvatar = message.targetAvatar);
1499
+ message.mask !== undefined && (obj.mask = Math.round(message.mask));
1357
1500
  return obj;
1358
1501
  }
1359
1502
 
@@ -1366,6 +1509,127 @@ export namespace PlayerEmote {
1366
1509
  message.incrementalId = object.incrementalId ?? 0;
1367
1510
  message.urn = object.urn ?? "";
1368
1511
  message.timestamp = object.timestamp ?? 0;
1512
+ message.isStopping = object.isStopping ?? undefined;
1513
+ message.isRepeating = object.isRepeating ?? undefined;
1514
+ message.interactionId = object.interactionId ?? undefined;
1515
+ message.socialEmoteOutcome = object.socialEmoteOutcome ?? undefined;
1516
+ message.isReacting = object.isReacting ?? undefined;
1517
+ message.socialEmoteInitiator = object.socialEmoteInitiator ?? undefined;
1518
+ message.targetAvatar = object.targetAvatar ?? undefined;
1519
+ message.mask = object.mask ?? undefined;
1520
+ return message;
1521
+ }
1522
+ }
1523
+
1524
+ function createBaseLookAtPosition(): LookAtPosition {
1525
+ return { timestamp: 0, positionX: 0, positionY: 0, positionZ: 0, targetAvatarWalletAddress: "" };
1526
+ }
1527
+
1528
+ export namespace LookAtPosition {
1529
+ export function encode(message: LookAtPosition, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1530
+ if (message.timestamp !== 0) {
1531
+ writer.uint32(13).float(message.timestamp);
1532
+ }
1533
+ if (message.positionX !== 0) {
1534
+ writer.uint32(21).float(message.positionX);
1535
+ }
1536
+ if (message.positionY !== 0) {
1537
+ writer.uint32(29).float(message.positionY);
1538
+ }
1539
+ if (message.positionZ !== 0) {
1540
+ writer.uint32(37).float(message.positionZ);
1541
+ }
1542
+ if (message.targetAvatarWalletAddress !== "") {
1543
+ writer.uint32(42).string(message.targetAvatarWalletAddress);
1544
+ }
1545
+ return writer;
1546
+ }
1547
+
1548
+ export function decode(input: _m0.Reader | Uint8Array, length?: number): LookAtPosition {
1549
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1550
+ let end = length === undefined ? reader.len : reader.pos + length;
1551
+ const message = createBaseLookAtPosition();
1552
+ while (reader.pos < end) {
1553
+ const tag = reader.uint32();
1554
+ switch (tag >>> 3) {
1555
+ case 1:
1556
+ if (tag !== 13) {
1557
+ break;
1558
+ }
1559
+
1560
+ message.timestamp = reader.float();
1561
+ continue;
1562
+ case 2:
1563
+ if (tag !== 21) {
1564
+ break;
1565
+ }
1566
+
1567
+ message.positionX = reader.float();
1568
+ continue;
1569
+ case 3:
1570
+ if (tag !== 29) {
1571
+ break;
1572
+ }
1573
+
1574
+ message.positionY = reader.float();
1575
+ continue;
1576
+ case 4:
1577
+ if (tag !== 37) {
1578
+ break;
1579
+ }
1580
+
1581
+ message.positionZ = reader.float();
1582
+ continue;
1583
+ case 5:
1584
+ if (tag !== 42) {
1585
+ break;
1586
+ }
1587
+
1588
+ message.targetAvatarWalletAddress = reader.string();
1589
+ continue;
1590
+ }
1591
+ if ((tag & 7) === 4 || tag === 0) {
1592
+ break;
1593
+ }
1594
+ reader.skipType(tag & 7);
1595
+ }
1596
+ return message;
1597
+ }
1598
+
1599
+ export function fromJSON(object: any): LookAtPosition {
1600
+ return {
1601
+ timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
1602
+ positionX: isSet(object.positionX) ? Number(object.positionX) : 0,
1603
+ positionY: isSet(object.positionY) ? Number(object.positionY) : 0,
1604
+ positionZ: isSet(object.positionZ) ? Number(object.positionZ) : 0,
1605
+ targetAvatarWalletAddress: isSet(object.targetAvatarWalletAddress)
1606
+ ? String(object.targetAvatarWalletAddress)
1607
+ : "",
1608
+ };
1609
+ }
1610
+
1611
+ export function toJSON(message: LookAtPosition): unknown {
1612
+ const obj: any = {};
1613
+ message.timestamp !== undefined && (obj.timestamp = message.timestamp);
1614
+ message.positionX !== undefined && (obj.positionX = message.positionX);
1615
+ message.positionY !== undefined && (obj.positionY = message.positionY);
1616
+ message.positionZ !== undefined && (obj.positionZ = message.positionZ);
1617
+ message.targetAvatarWalletAddress !== undefined &&
1618
+ (obj.targetAvatarWalletAddress = message.targetAvatarWalletAddress);
1619
+ return obj;
1620
+ }
1621
+
1622
+ export function create<I extends Exact<DeepPartial<LookAtPosition>, I>>(base?: I): LookAtPosition {
1623
+ return LookAtPosition.fromPartial(base ?? {});
1624
+ }
1625
+
1626
+ export function fromPartial<I extends Exact<DeepPartial<LookAtPosition>, I>>(object: I): LookAtPosition {
1627
+ const message = createBaseLookAtPosition();
1628
+ message.timestamp = object.timestamp ?? 0;
1629
+ message.positionX = object.positionX ?? 0;
1630
+ message.positionY = object.positionY ?? 0;
1631
+ message.positionZ = object.positionZ ?? 0;
1632
+ message.targetAvatarWalletAddress = object.targetAvatarWalletAddress ?? "";
1369
1633
  return message;
1370
1634
  }
1371
1635
  }
@@ -1642,7 +1906,7 @@ export namespace ProfileResponse {
1642
1906
  }
1643
1907
 
1644
1908
  function createBaseChat(): Chat {
1645
- return { message: "", timestamp: 0 };
1909
+ return { message: "", timestamp: 0, forwardedFrom: undefined };
1646
1910
  }
1647
1911
 
1648
1912
  export namespace Chat {
@@ -1653,6 +1917,9 @@ export namespace Chat {
1653
1917
  if (message.timestamp !== 0) {
1654
1918
  writer.uint32(17).double(message.timestamp);
1655
1919
  }
1920
+ if (message.forwardedFrom !== undefined) {
1921
+ writer.uint32(26).string(message.forwardedFrom);
1922
+ }
1656
1923
  return writer;
1657
1924
  }
1658
1925
 
@@ -1677,6 +1944,13 @@ export namespace Chat {
1677
1944
 
1678
1945
  message.timestamp = reader.double();
1679
1946
  continue;
1947
+ case 3:
1948
+ if (tag !== 26) {
1949
+ break;
1950
+ }
1951
+
1952
+ message.forwardedFrom = reader.string();
1953
+ continue;
1680
1954
  }
1681
1955
  if ((tag & 7) === 4 || tag === 0) {
1682
1956
  break;
@@ -1690,6 +1964,7 @@ export namespace Chat {
1690
1964
  return {
1691
1965
  message: isSet(object.message) ? String(object.message) : "",
1692
1966
  timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
1967
+ forwardedFrom: isSet(object.forwardedFrom) ? String(object.forwardedFrom) : undefined,
1693
1968
  };
1694
1969
  }
1695
1970
 
@@ -1697,6 +1972,7 @@ export namespace Chat {
1697
1972
  const obj: any = {};
1698
1973
  message.message !== undefined && (obj.message = message.message);
1699
1974
  message.timestamp !== undefined && (obj.timestamp = message.timestamp);
1975
+ message.forwardedFrom !== undefined && (obj.forwardedFrom = message.forwardedFrom);
1700
1976
  return obj;
1701
1977
  }
1702
1978
 
@@ -1708,6 +1984,7 @@ export namespace Chat {
1708
1984
  const message = createBaseChat();
1709
1985
  message.message = object.message ?? "";
1710
1986
  message.timestamp = object.timestamp ?? 0;
1987
+ message.forwardedFrom = object.forwardedFrom ?? undefined;
1711
1988
  return message;
1712
1989
  }
1713
1990
  }
@@ -1871,119 +2148,6 @@ export namespace Voice {
1871
2148
  }
1872
2149
  }
1873
2150
 
1874
- function createBaseLookAtPosition(): LookAtPosition {
1875
- return { timestamp: 0, positionX: 0, positionY: 0, positionZ: 0, targetAvatarWalletAddress: "" };
1876
- }
1877
-
1878
- export namespace LookAtPosition {
1879
- export function encode(message: LookAtPosition, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
1880
- if (message.timestamp !== 0) {
1881
- writer.uint32(13).float(message.timestamp);
1882
- }
1883
- if (message.positionX !== 0) {
1884
- writer.uint32(21).float(message.positionX);
1885
- }
1886
- if (message.positionY !== 0) {
1887
- writer.uint32(29).float(message.positionY);
1888
- }
1889
- if (message.positionZ !== 0) {
1890
- writer.uint32(37).float(message.positionZ);
1891
- }
1892
- if (message.targetAvatarWalletAddress !== "") {
1893
- writer.uint32(42).string(message.targetAvatarWalletAddress);
1894
- }
1895
- return writer;
1896
- }
1897
-
1898
- export function decode(input: _m0.Reader | Uint8Array, length?: number): LookAtPosition {
1899
- const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
1900
- let end = length === undefined ? reader.len : reader.pos + length;
1901
- const message = createBaseLookAtPosition();
1902
- while (reader.pos < end) {
1903
- const tag = reader.uint32();
1904
- switch (tag >>> 3) {
1905
- case 1:
1906
- if (tag !== 13) {
1907
- break;
1908
- }
1909
-
1910
- message.timestamp = reader.float();
1911
- continue;
1912
- case 2:
1913
- if (tag !== 21) {
1914
- break;
1915
- }
1916
-
1917
- message.positionX = reader.float();
1918
- continue;
1919
- case 3:
1920
- if (tag !== 29) {
1921
- break;
1922
- }
1923
-
1924
- message.positionY = reader.float();
1925
- continue;
1926
- case 4:
1927
- if (tag !== 37) {
1928
- break;
1929
- }
1930
-
1931
- message.positionZ = reader.float();
1932
- continue;
1933
- case 5:
1934
- if (tag !== 42) {
1935
- break;
1936
- }
1937
-
1938
- message.targetAvatarWalletAddress = reader.string();
1939
- continue;
1940
- }
1941
- if ((tag & 7) === 4 || tag === 0) {
1942
- break;
1943
- }
1944
- reader.skipType(tag & 7);
1945
- }
1946
- return message;
1947
- }
1948
-
1949
- export function fromJSON(object: any): LookAtPosition {
1950
- return {
1951
- timestamp: isSet(object.timestamp) ? Number(object.timestamp) : 0,
1952
- positionX: isSet(object.positionX) ? Number(object.positionX) : 0,
1953
- positionY: isSet(object.positionY) ? Number(object.positionY) : 0,
1954
- positionZ: isSet(object.positionZ) ? Number(object.positionZ) : 0,
1955
- targetAvatarWalletAddress: isSet(object.targetAvatarWalletAddress)
1956
- ? String(object.targetAvatarWalletAddress)
1957
- : "",
1958
- };
1959
- }
1960
-
1961
- export function toJSON(message: LookAtPosition): unknown {
1962
- const obj: any = {};
1963
- message.timestamp !== undefined && (obj.timestamp = message.timestamp);
1964
- message.positionX !== undefined && (obj.positionX = message.positionX);
1965
- message.positionY !== undefined && (obj.positionY = message.positionY);
1966
- message.positionZ !== undefined && (obj.positionZ = message.positionZ);
1967
- message.targetAvatarWalletAddress !== undefined &&
1968
- (obj.targetAvatarWalletAddress = message.targetAvatarWalletAddress);
1969
- return obj;
1970
- }
1971
-
1972
- export function create<I extends Exact<DeepPartial<LookAtPosition>, I>>(base?: I): LookAtPosition {
1973
- return LookAtPosition.fromPartial(base ?? {});
1974
- }
1975
-
1976
- export function fromPartial<I extends Exact<DeepPartial<LookAtPosition>, I>>(object: I): LookAtPosition {
1977
- const message = createBaseLookAtPosition();
1978
- message.timestamp = object.timestamp ?? 0;
1979
- message.positionX = object.positionX ?? 0;
1980
- message.positionY = object.positionY ?? 0;
1981
- message.positionZ = object.positionZ ?? 0;
1982
- message.targetAvatarWalletAddress = object.targetAvatarWalletAddress ?? "";
1983
- return message;
1984
- }
1985
- }
1986
-
1987
2151
  function createBaseReaction(): Reaction {
1988
2152
  return { emojiIndex: 0, timestamp: 0, count: 0 };
1989
2153
  }
@@ -5,6 +5,40 @@ import { Color3 } from "../../common/colors.gen";
5
5
 
6
6
  export const protobufPackage = "decentraland.sdk.components";
7
7
 
8
+ /** Mask for which bones an animation applies to. */
9
+ export enum AvatarEmoteMask {
10
+ AEM_FULL_BODY = 0,
11
+ AEM_UPPER_BODY = 1,
12
+ UNRECOGNIZED = -1,
13
+ }
14
+
15
+ export function avatarEmoteMaskFromJSON(object: any): AvatarEmoteMask {
16
+ switch (object) {
17
+ case 0:
18
+ case "AEM_FULL_BODY":
19
+ return AvatarEmoteMask.AEM_FULL_BODY;
20
+ case 1:
21
+ case "AEM_UPPER_BODY":
22
+ return AvatarEmoteMask.AEM_UPPER_BODY;
23
+ case -1:
24
+ case "UNRECOGNIZED":
25
+ default:
26
+ return AvatarEmoteMask.UNRECOGNIZED;
27
+ }
28
+ }
29
+
30
+ export function avatarEmoteMaskToJSON(object: AvatarEmoteMask): string {
31
+ switch (object) {
32
+ case AvatarEmoteMask.AEM_FULL_BODY:
33
+ return "AEM_FULL_BODY";
34
+ case AvatarEmoteMask.AEM_UPPER_BODY:
35
+ return "AEM_UPPER_BODY";
36
+ case AvatarEmoteMask.UNRECOGNIZED:
37
+ default:
38
+ return "UNRECOGNIZED";
39
+ }
40
+ }
41
+
8
42
  /**
9
43
  * The AvatarShape component contains the information required to draw and animate avatar, acting as
10
44
  * a simplified GLTF container for this specific case.
@@ -17,6 +17,7 @@ export enum InputAction {
17
17
  IA_ACTION_4 = 11,
18
18
  IA_ACTION_5 = 12,
19
19
  IA_ACTION_6 = 13,
20
+ IA_MODIFIER = 14,
20
21
  UNRECOGNIZED = -1,
21
22
  }
22
23
 
@@ -64,6 +65,9 @@ export function inputActionFromJSON(object: any): InputAction {
64
65
  case 13:
65
66
  case "IA_ACTION_6":
66
67
  return InputAction.IA_ACTION_6;
68
+ case 14:
69
+ case "IA_MODIFIER":
70
+ return InputAction.IA_MODIFIER;
67
71
  case -1:
68
72
  case "UNRECOGNIZED":
69
73
  default:
@@ -101,6 +105,8 @@ export function inputActionToJSON(object: InputAction): string {
101
105
  return "IA_ACTION_5";
102
106
  case InputAction.IA_ACTION_6:
103
107
  return "IA_ACTION_6";
108
+ case InputAction.IA_MODIFIER:
109
+ return "IA_MODIFIER";
104
110
  case InputAction.UNRECOGNIZED:
105
111
  default:
106
112
  return "UNRECOGNIZED";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/protocol",
3
- "version": "1.0.0-24444876160.commit-bea92dd",
3
+ "version": "1.0.0-24496228560.commit-6915bc8",
4
4
  "description": "",
5
5
  "repository": "decentraland/protocol.git",
6
6
  "homepage": "https://github.com/decentraland/protocol#readme",
@@ -13,7 +13,7 @@
13
13
  "test": "./scripts/check-proto-compabitility.sh"
14
14
  },
15
15
  "devDependencies": {
16
- "@protobuf-ts/protoc": "^2.8.1",
16
+ "@protobuf-ts/protoc": "^2.11.0",
17
17
  "proto-compatibility-tool": "^1.1.2-20220925163655.commit-25bd040",
18
18
  "typescript": "^5.0.4"
19
19
  },
@@ -30,5 +30,5 @@
30
30
  "out-js",
31
31
  "public"
32
32
  ],
33
- "commit": "bea92dd298772aad8330927221920dec5baf7ba5"
33
+ "commit": "6915bc89a1c80d5fd9a702b96a2f703841200a28"
34
34
  }
@@ -16,6 +16,7 @@ message TeleportToRequest {
16
16
 
17
17
  message TriggerEmoteRequest {
18
18
  string predefined_emote = 1;
19
+ optional uint32 mask = 2;
19
20
  }
20
21
 
21
22
  message ChangeRealmRequest {
@@ -40,6 +41,7 @@ message CommsAdapterRequest {
40
41
  message TriggerSceneEmoteRequest {
41
42
  string src = 1;
42
43
  optional bool loop = 2;
44
+ optional uint32 mask = 3;
43
45
  }
44
46
 
45
47
  message SuccessResponse {
@@ -60,6 +62,8 @@ message CopyToClipboardRequest {
60
62
 
61
63
  message EmptyResponse { }
62
64
 
65
+ message StopEmoteRequest { }
66
+
63
67
  service RestrictedActionsService {
64
68
  // MovePlayerTo will move the player to a position relative to the current scene.
65
69
  // If 'duration' field is used in the request, the success response depends on the
@@ -90,4 +94,7 @@ service RestrictedActionsService {
90
94
 
91
95
  // CopyToClipboard copies the provided text into the clipboard
92
96
  rpc CopyToClipboard(CopyToClipboardRequest) returns (EmptyResponse) {}
97
+
98
+ // StopEmote will stop the current emote
99
+ rpc StopEmote(StopEmoteRequest) returns (SuccessResponse) {}
93
100
  }
@@ -87,13 +87,32 @@ message MovementCompressed {
87
87
  int32 temporal_data = 1; // bit-compressed: timestamp + animations
88
88
  int64 movement_data = 2; // bit-compressed: position + velocity
89
89
  int32 head_sync_data = 3; // bit-compressed: enabled flags + yaw + pitch
90
- int32 point_at_data = 4; // bit-compressed: flag + point coordinates
90
+ int32 point_at_data = 4; // bit-compressed: flag + point coordinates
91
91
  }
92
92
 
93
93
  message PlayerEmote {
94
94
  uint32 incremental_id = 1;
95
95
  string urn = 2;
96
96
  float timestamp = 3;
97
+ optional bool is_stopping = 4; // true means the emote has been stopped in the sender's client
98
+ optional bool is_repeating = 5; // true when it is not the first time the looping animation plays
99
+ optional int32 interaction_id = 6; // identifies an interaction univocaly, established when the start animation is triggered
100
+ optional int32 social_emote_outcome = 7; // -1 means it does not use an outcome animation
101
+ optional bool is_reacting = 8; // to a social emote started by other user
102
+ optional string social_emote_initiator = 9; // wallet address of the user that initiated social emote
103
+ optional string target_avatar = 10; // wallet address of the user whose avatar is the target of a directed emote
104
+ optional uint32 mask = 11; // mask for which bones an animation applies to.
105
+ }
106
+
107
+ // Message sent to force an avatar to look at a position
108
+ message LookAtPosition
109
+ {
110
+ float timestamp = 1;
111
+ // world position
112
+ float position_x = 2;
113
+ float position_y = 3;
114
+ float position_z = 4;
115
+ string target_avatar_wallet_address = 5;
97
116
  }
98
117
 
99
118
  message SceneEmote {
@@ -126,6 +145,10 @@ message ProfileResponse {
126
145
  message Chat {
127
146
  string message = 1;
128
147
  double timestamp = 2;
148
+
149
+ // Extension: optional forwarded_from to identify the original sender when
150
+ // messages are forwarded through an SFU
151
+ optional string forwarded_from = 3;
129
152
  }
130
153
 
131
154
  message Scene {
@@ -142,16 +165,6 @@ message Voice {
142
165
  }
143
166
  }
144
167
 
145
- // Message sent to force an avatar to look at a position
146
- message LookAtPosition {
147
- float timestamp = 1;
148
- // world position
149
- float position_x = 2;
150
- float position_y = 3;
151
- float position_z = 4;
152
- string target_avatar_wallet_address = 5;
153
- }
154
-
155
168
  message Reaction {
156
169
  int32 emoji_index = 1;
157
170
  float timestamp = 2;