@dcl/schemas 26.1.0 → 26.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import type { Emitter } from 'mitt';
2
2
  import type { Metrics } from '../../platform/item/metrics';
3
+ import { SpringBoneParams } from '../../platform/item/wearable/spring-bones';
3
4
  import type { PreviewEmoteEventType } from './preview-emote-event-type';
4
5
  import { SocialEmoteAnimation } from './social-emote-animation';
5
6
  import { EmoteDefinition } from './emote-definition';
6
- import { SpringBoneParams } from './spring-bone-params';
7
7
  export interface IPreviewController {
8
8
  scene: ISceneController;
9
9
  emote: IEmoteController;
@@ -52,6 +52,6 @@ export interface IEmoteController {
52
52
  events: Emitter<EmoteEvents>;
53
53
  }
54
54
  export interface IPhysicsController {
55
- setSpringBonesParams(itemHash: string, params: Record<string, SpringBoneParams>): Promise<void>;
55
+ setSpringBonesParams(itemId: string, params: Record<string, SpringBoneParams>): Promise<void>;
56
56
  }
57
57
  //# sourceMappingURL=preview-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-controller.d.ts","sourceRoot":"","sources":["../../../src/dapps/preview/preview-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-controller.d.ts","sourceRoot":"","sources":["../../../src/dapps/preview/preview-controller.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,2 @@
1
- import { JSONSchema, ValidateFunction } from '../../validation';
2
- /** @alpha */
3
- export type SpringBoneParams = {
4
- stiffness: number;
5
- gravityPower: number;
6
- gravityDir: [number, number, number];
7
- drag: number;
8
- center?: string;
9
- };
10
- /** @alpha */
11
- export declare namespace SpringBoneParams {
12
- const schema: JSONSchema<SpringBoneParams>;
13
- const validate: ValidateFunction<SpringBoneParams>;
14
- }
1
+ export { SpringBoneParams } from '../../platform/item/wearable/spring-bones';
15
2
  //# sourceMappingURL=spring-bone-params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spring-bone-params.d.ts","sourceRoot":"","sources":["../../../src/dapps/preview/spring-bone-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEtF,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,aAAa;AACb,yBAAiB,gBAAgB,CAAC;IACzB,MAAM,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAe/C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAiC,CAAA;CAC1F"}
1
+ {"version":3,"file":"spring-bone-params.d.ts","sourceRoot":"","sources":["../../../src/dapps/preview/spring-bone-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA"}
@@ -1,26 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SpringBoneParams = void 0;
4
- const validation_1 = require("../../validation");
5
- /** @alpha */
6
- var SpringBoneParams;
7
- (function (SpringBoneParams) {
8
- SpringBoneParams.schema = {
9
- type: 'object',
10
- properties: {
11
- stiffness: { type: 'number', minimum: 0, maximum: 5 },
12
- gravityPower: { type: 'number', minimum: 0, maximum: 10 },
13
- gravityDir: {
14
- type: 'array',
15
- items: [{ type: 'number' }, { type: 'number' }, { type: 'number' }],
16
- minItems: 3,
17
- maxItems: 3
18
- },
19
- drag: { type: 'number', minimum: 0, maximum: 1 },
20
- center: { type: 'string', nullable: true }
21
- },
22
- required: ['stiffness', 'gravityPower', 'gravityDir', 'drag']
23
- };
24
- SpringBoneParams.validate = (0, validation_1.generateLazyValidator)(SpringBoneParams.schema);
25
- })(SpringBoneParams = exports.SpringBoneParams || (exports.SpringBoneParams = {}));
4
+ var spring_bones_1 = require("../../platform/item/wearable/spring-bones");
5
+ Object.defineProperty(exports, "SpringBoneParams", { enumerable: true, get: function () { return spring_bones_1.SpringBoneParams; } });
26
6
  //# sourceMappingURL=spring-bone-params.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spring-bone-params.js","sourceRoot":"","sources":["../../../src/dapps/preview/spring-bone-params.ts"],"names":[],"mappings":";;;AAAA,iDAAsF;AAWtF,aAAa;AACb,IAAiB,gBAAgB,CAmBhC;AAnBD,WAAiB,gBAAgB;IAClB,uBAAM,GAAiC;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACrD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACzD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACnE,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACZ;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YAChD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC3C;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC;KAC9D,CAAA;IAEY,yBAAQ,GAAuC,IAAA,kCAAqB,EAAC,iBAAA,MAAM,CAAC,CAAA;AAC3F,CAAC,EAnBgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAmBhC"}
1
+ {"version":3,"file":"spring-bone-params.js","sourceRoot":"","sources":["../../../src/dapps/preview/spring-bone-params.ts"],"names":[],"mappings":";;;AAAA,0EAA4E;AAAnE,gHAAA,gBAAgB,OAAA"}
@@ -3,4 +3,5 @@ export { Wearable } from './wearable';
3
3
  export { WearableCategory } from './wearable-category';
4
4
  export { BodyPartCategory } from './body-part-category';
5
5
  export { HideableWearableCategory } from './hideable-category';
6
+ export { SpringBoneParams, SpringBonesData } from './spring-bones';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/item/wearable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/item/wearable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HideableWearableCategory = exports.BodyPartCategory = exports.WearableCategory = exports.Wearable = exports.WearableRepresentation = void 0;
3
+ exports.SpringBonesData = exports.SpringBoneParams = exports.HideableWearableCategory = exports.BodyPartCategory = exports.WearableCategory = exports.Wearable = exports.WearableRepresentation = void 0;
4
4
  var representation_1 = require("./representation");
5
5
  Object.defineProperty(exports, "WearableRepresentation", { enumerable: true, get: function () { return representation_1.WearableRepresentation; } });
6
6
  var wearable_1 = require("./wearable");
@@ -11,4 +11,7 @@ var body_part_category_1 = require("./body-part-category");
11
11
  Object.defineProperty(exports, "BodyPartCategory", { enumerable: true, get: function () { return body_part_category_1.BodyPartCategory; } });
12
12
  var hideable_category_1 = require("./hideable-category");
13
13
  Object.defineProperty(exports, "HideableWearableCategory", { enumerable: true, get: function () { return hideable_category_1.HideableWearableCategory; } });
14
+ var spring_bones_1 = require("./spring-bones");
15
+ Object.defineProperty(exports, "SpringBoneParams", { enumerable: true, get: function () { return spring_bones_1.SpringBoneParams; } });
16
+ Object.defineProperty(exports, "SpringBonesData", { enumerable: true, get: function () { return spring_bones_1.SpringBonesData; } });
14
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/item/wearable/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAAhD,wHAAA,sBAAsB,OAAA;AAC/B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,2DAAuD;AAA9C,sHAAA,gBAAgB,OAAA;AACzB,yDAA8D;AAArD,6HAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/item/wearable/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAAhD,wHAAA,sBAAsB,OAAA;AAC/B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,2DAAuD;AAA9C,sHAAA,gBAAgB,OAAA;AACzB,yDAA8D;AAArD,6HAAA,wBAAwB,OAAA;AACjC,+CAAkE;AAAzD,gHAAA,gBAAgB,OAAA;AAAE,+GAAA,eAAe,OAAA"}
@@ -0,0 +1,55 @@
1
+ import { JSONSchema, ValidateFunction } from '../../../validation';
2
+ /** @alpha */
3
+ export type SpringBoneParams = {
4
+ stiffness: number;
5
+ gravityPower: number;
6
+ gravityDir: [number, number, number];
7
+ drag: number;
8
+ center?: string;
9
+ isRoot?: boolean;
10
+ };
11
+ /** @alpha */
12
+ export declare namespace SpringBoneParams {
13
+ const schema: JSONSchema<SpringBoneParams>;
14
+ const validate: ValidateFunction<SpringBoneParams>;
15
+ }
16
+ /**
17
+ * Spring bone parameters for a wearable's GLB models.
18
+ *
19
+ * `models` is keyed by GLB content hash (the value found in WearableEntity.content[mainFile]).
20
+ * Hash-keying means a single GLB shared across multiple body-shape representations resolves
21
+ * to one entry, and entries are stable across path renames.
22
+ *
23
+ * - Outer key: GLB content hash.
24
+ * - Inner key: spring bone name as it appears in the GLB.
25
+ *
26
+ * Example:
27
+ * ```
28
+ * {
29
+ * version: 1,
30
+ * models: {
31
+ * "bafkreialsvt77jvpy673cnugp5ggnxfaalfncufweayuk3jbxskh3pelkm": {
32
+ * "Hair_springBone_L": {
33
+ * stiffness: 2,
34
+ * gravityPower: 0.8,
35
+ * gravityDir: [0, -1, 0],
36
+ * drag: 0.3,
37
+ * center: "Avatar_Hips",
38
+ * isRoot: true
39
+ * }
40
+ * }
41
+ * }
42
+ * }
43
+ * ```
44
+ * @alpha
45
+ */
46
+ export type SpringBonesData = {
47
+ version: number;
48
+ models: Record<string, Record<string, SpringBoneParams>>;
49
+ };
50
+ /** @alpha */
51
+ export declare namespace SpringBonesData {
52
+ const schema: JSONSchema<SpringBonesData>;
53
+ const validate: ValidateFunction<SpringBonesData>;
54
+ }
55
+ //# sourceMappingURL=spring-bones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spring-bones.d.ts","sourceRoot":"","sources":["../../../../src/platform/item/wearable/spring-bones.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEzF,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,aAAa;AACb,yBAAiB,gBAAgB,CAAC;IACzB,MAAM,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAoB/C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAiC,CAAA;CAC1F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;CACzD,CAAA;AAED,aAAa;AACb,yBAAiB,eAAe,CAAC;IACxB,MAAM,MAAM,EAAE,UAAU,CAAC,eAAe,CAgB9C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAiC,CAAA;CACzF"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpringBonesData = exports.SpringBoneParams = void 0;
4
+ const validation_1 = require("../../../validation");
5
+ /** @alpha */
6
+ var SpringBoneParams;
7
+ (function (SpringBoneParams) {
8
+ SpringBoneParams.schema = {
9
+ type: 'object',
10
+ properties: {
11
+ stiffness: { type: 'number', minimum: 0, maximum: 4 },
12
+ gravityPower: { type: 'number', minimum: 0, maximum: 2 },
13
+ gravityDir: {
14
+ type: 'array',
15
+ items: [
16
+ { type: 'number', minimum: -10, maximum: 10 },
17
+ { type: 'number', minimum: -10, maximum: 10 },
18
+ { type: 'number', minimum: -10, maximum: 10 }
19
+ ],
20
+ minItems: 3,
21
+ maxItems: 3
22
+ },
23
+ drag: { type: 'number', minimum: 0, maximum: 1 },
24
+ center: { type: 'string', nullable: true },
25
+ isRoot: { type: 'boolean', nullable: true }
26
+ },
27
+ required: ['stiffness', 'gravityPower', 'gravityDir', 'drag']
28
+ };
29
+ SpringBoneParams.validate = (0, validation_1.generateLazyValidator)(SpringBoneParams.schema);
30
+ })(SpringBoneParams = exports.SpringBoneParams || (exports.SpringBoneParams = {}));
31
+ /** @alpha */
32
+ var SpringBonesData;
33
+ (function (SpringBonesData) {
34
+ SpringBonesData.schema = {
35
+ type: 'object',
36
+ properties: {
37
+ version: { type: 'integer', enum: [1] },
38
+ models: {
39
+ type: 'object',
40
+ additionalProperties: {
41
+ type: 'object',
42
+ additionalProperties: SpringBoneParams.schema,
43
+ required: []
44
+ },
45
+ required: []
46
+ }
47
+ },
48
+ required: ['version', 'models'],
49
+ additionalProperties: false
50
+ };
51
+ SpringBonesData.validate = (0, validation_1.generateLazyValidator)(SpringBonesData.schema);
52
+ })(SpringBonesData = exports.SpringBonesData || (exports.SpringBonesData = {}));
53
+ //# sourceMappingURL=spring-bones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spring-bones.js","sourceRoot":"","sources":["../../../../src/platform/item/wearable/spring-bones.ts"],"names":[],"mappings":";;;AAAA,oDAAyF;AAYzF,aAAa;AACb,IAAiB,gBAAgB,CAwBhC;AAxBD,WAAiB,gBAAgB;IAClB,uBAAM,GAAiC;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACrD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACxD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;oBAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;oBAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;iBAC9C;gBACD,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACZ;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YAChD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5C;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC;KAC9D,CAAA;IAEY,yBAAQ,GAAuC,IAAA,kCAAqB,EAAC,iBAAA,MAAM,CAAC,CAAA;AAC3F,CAAC,EAxBgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAwBhC;AAqCD,aAAa;AACb,IAAiB,eAAe,CAoB/B;AApBD,WAAiB,eAAe;IACjB,sBAAM,GAAgC;QACjD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE;oBACpB,IAAI,EAAE,QAAQ;oBACd,oBAAoB,EAAE,gBAAgB,CAAC,MAAM;oBAC7C,QAAQ,EAAE,EAAE;iBACb;gBACD,QAAQ,EAAE,EAAE;aACb;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC/B,oBAAoB,EAAE,KAAK;KAC5B,CAAA;IAEY,wBAAQ,GAAsC,IAAA,kCAAqB,EAAC,gBAAA,MAAM,CAAC,CAAA;AAC1F,CAAC,EApBgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoB/B"}
@@ -5,6 +5,7 @@ import { BaseItem } from '../base-item';
5
5
  import { StandardProps } from '../standard-props';
6
6
  import { ThirdPartyProps } from '../third-party-props';
7
7
  import { HideableWearableCategory } from './hideable-category';
8
+ import { SpringBonesData } from './spring-bones';
8
9
  /** @alpha */
9
10
  export type Wearable = BaseItem & {
10
11
  data: {
@@ -16,6 +17,7 @@ export type Wearable = BaseItem & {
16
17
  removesDefaultHiding?: HideableWearableCategory[];
17
18
  blockVrmExport?: boolean;
18
19
  outlineCompatible?: boolean;
20
+ springBones?: SpringBonesData | null;
19
21
  };
20
22
  } & (StandardProps | ThirdPartyProps);
21
23
  /** @alpha */
@@ -1 +1 @@
1
- {"version":3,"file":"wearable.d.ts","sourceRoot":"","sources":["../../../../src/platform/item/wearable/wearable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAA2D,MAAM,cAAc,CAAA;AAChG,OAAO,EAAE,aAAa,EAAsB,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAgB,eAAe,EAAmC,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAG9D,aAAa;AACb,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG;IAChC,IAAI,EAAE;QACJ,QAAQ,EAAE,wBAAwB,EAAE,CAAA;QACpC,KAAK,EAAE,wBAAwB,EAAE,CAAA;QACjC,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,eAAe,EAAE,sBAAsB,EAAE,CAAA;QACzC,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,oBAAoB,CAAC,EAAE,wBAAwB,EAAE,CAAA;QACjD,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,CAAA;CACF,GAAG,CAAC,aAAa,GAAG,eAAe,CAAC,CAAA;AAErC,aAAa;AACb,yBAAiB,QAAQ,CAAC;IACjB,MAAM,MAAM,EAAE,UAAU,CAAC,QAAQ,CA0EvC,CAAA;IAcD;;;;;;;;;OASG;IACI,MAAM,QAAQ,0DAKnB,CAAA;CACH"}
1
+ {"version":3,"file":"wearable.d.ts","sourceRoot":"","sources":["../../../../src/platform/item/wearable/wearable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAA2D,MAAM,cAAc,CAAA;AAChG,OAAO,EAAE,aAAa,EAAsB,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAgB,eAAe,EAAmC,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,aAAa;AACb,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG;IAChC,IAAI,EAAE;QACJ,QAAQ,EAAE,wBAAwB,EAAE,CAAA;QACpC,KAAK,EAAE,wBAAwB,EAAE,CAAA;QACjC,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,eAAe,EAAE,sBAAsB,EAAE,CAAA;QACzC,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,oBAAoB,CAAC,EAAE,wBAAwB,EAAE,CAAA;QACjD,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;KACrC,CAAA;CACF,GAAG,CAAC,aAAa,GAAG,eAAe,CAAC,CAAA;AAErC,aAAa;AACb,yBAAiB,QAAQ,CAAC;IACjB,MAAM,MAAM,EAAE,UAAU,CAAC,QAAQ,CA8EvC,CAAA;IAcD;;;;;;;;;OASG;IACI,MAAM,QAAQ,0DAKnB,CAAA;CACH"}
@@ -9,6 +9,7 @@ const standard_props_1 = require("../standard-props");
9
9
  const third_party_props_1 = require("../third-party-props");
10
10
  const hideable_category_1 = require("./hideable-category");
11
11
  const linked_wearable_mappings_1 = require("../linked-wearable-mappings");
12
+ const spring_bones_1 = require("./spring-bones");
12
13
  /** @alpha */
13
14
  var Wearable;
14
15
  (function (Wearable) {
@@ -50,7 +51,8 @@ var Wearable;
50
51
  outlineCompatible: {
51
52
  type: 'boolean',
52
53
  nullable: true
53
- }
54
+ },
55
+ springBones: Object.assign(Object.assign({}, spring_bones_1.SpringBonesData.schema), { nullable: true })
54
56
  },
55
57
  required: ['replaces', 'hides', 'tags', 'representations', 'category']
56
58
  } }),
@@ -1 +1 @@
1
- {"version":3,"file":"wearable.js","sourceRoot":"","sources":["../../../../src/platform/item/wearable/wearable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wearable.js","sourceRoot":"","sources":["../../../../src/platform/item/wearable/wearable.ts"],"names":[],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -2027,7 +2027,7 @@ export declare namespace IPFSv2 {
2027
2027
  }
2028
2028
 
2029
2029
  export declare interface IPhysicsController {
2030
- setSpringBonesParams(itemHash: string, params: Record<string, SpringBoneParams>): Promise<void>;
2030
+ setSpringBonesParams(itemId: string, params: Record<string, SpringBoneParams>): Promise<void>;
2031
2031
  }
2032
2032
 
2033
2033
  export declare interface IPreviewController {
@@ -4014,6 +4014,7 @@ export declare type SpringBoneParams = {
4014
4014
  gravityDir: [number, number, number];
4015
4015
  drag: number;
4016
4016
  center?: string;
4017
+ isRoot?: boolean;
4017
4018
  };
4018
4019
 
4019
4020
  /** @alpha */
@@ -4022,6 +4023,47 @@ export declare namespace SpringBoneParams {
4022
4023
  const validate: ValidateFunction<SpringBoneParams>;
4023
4024
  }
4024
4025
 
4026
+ /**
4027
+ * Spring bone parameters for a wearable's GLB models.
4028
+ *
4029
+ * `models` is keyed by GLB content hash (the value found in WearableEntity.content[mainFile]).
4030
+ * Hash-keying means a single GLB shared across multiple body-shape representations resolves
4031
+ * to one entry, and entries are stable across path renames.
4032
+ *
4033
+ * - Outer key: GLB content hash.
4034
+ * - Inner key: spring bone name as it appears in the GLB.
4035
+ *
4036
+ * Example:
4037
+ * ```
4038
+ * {
4039
+ * version: 1,
4040
+ * models: {
4041
+ * "bafkreialsvt77jvpy673cnugp5ggnxfaalfncufweayuk3jbxskh3pelkm": {
4042
+ * "Hair_springBone_L": {
4043
+ * stiffness: 2,
4044
+ * gravityPower: 0.8,
4045
+ * gravityDir: [0, -1, 0],
4046
+ * drag: 0.3,
4047
+ * center: "Avatar_Hips",
4048
+ * isRoot: true
4049
+ * }
4050
+ * }
4051
+ * }
4052
+ * }
4053
+ * ```
4054
+ * @alpha
4055
+ */
4056
+ export declare type SpringBonesData = {
4057
+ version: number;
4058
+ models: Record<string, Record<string, SpringBoneParams>>;
4059
+ };
4060
+
4061
+ /** @alpha */
4062
+ export declare namespace SpringBonesData {
4063
+ const schema: JSONSchema<SpringBonesData>;
4064
+ const validate: ValidateFunction<SpringBonesData>;
4065
+ }
4066
+
4025
4067
  export declare type StandardProps = {
4026
4068
  collectionAddress: string;
4027
4069
  rarity: Rarity;
@@ -4523,6 +4565,7 @@ export declare type Wearable = BaseItem & {
4523
4565
  removesDefaultHiding?: HideableWearableCategory[];
4524
4566
  blockVrmExport?: boolean;
4525
4567
  outlineCompatible?: boolean;
4568
+ springBones?: SpringBonesData | null;
4526
4569
  };
4527
4570
  } & (StandardProps | ThirdPartyProps);
4528
4571
 
@@ -1 +1 @@
1
- {"version":3,"file":"wearable-json.d.ts","sourceRoot":"","sources":["../../../src/sdk/project/wearable-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAChE,OAAO,EAAyB,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGtF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,yBAAiB,YAAY,CAAC;IACrB,MAAM,MAAM,EAAE,UAAU,CAAC,YAAY,CAwD3C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAiC,CAAA;CACtF"}
1
+ {"version":3,"file":"wearable-json.d.ts","sourceRoot":"","sources":["../../../src/sdk/project/wearable-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAI3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAChE,OAAO,EAAyB,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGtF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG;IAC3E,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,yBAAiB,YAAY,CAAC;IACrB,MAAM,MAAM,EAAE,UAAU,CAAC,YAAY,CA4D3C,CAAA;IAEM,MAAM,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAiC,CAAA;CACtF"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WearableJson = void 0;
4
4
  const rarity_1 = require("../../dapps/rarity");
5
5
  const wearable_category_1 = require("../../platform/item/wearable/wearable-category");
6
+ const spring_bones_1 = require("../../platform/item/wearable/spring-bones");
6
7
  const representation_1 = require("../../platform/item/wearable/representation");
7
8
  const validation_1 = require("../../validation");
8
9
  const platform_1 = require("../../platform");
@@ -57,7 +58,8 @@ var WearableJson;
57
58
  outlineCompatible: {
58
59
  type: 'boolean',
59
60
  nullable: true
60
- }
61
+ },
62
+ springBones: Object.assign(Object.assign({}, spring_bones_1.SpringBonesData.schema), { nullable: true })
61
63
  },
62
64
  required: ['replaces', 'hides', 'tags', 'representations', 'category']
63
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wearable-json.js","sourceRoot":"","sources":["../../../src/sdk/project/wearable-json.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,sFAAiF;AACjF,gFAAoF;AAEpF,iDAAsF;AACtF,6CAAyD;AASzD;;GAEG;AACH,IAAiB,YAAY,CA4D5B;AA5DD,WAAiB,YAAY;IACd,mBAAM,GAA6B;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;aACf;YACD,MAAM,kCACD,eAAM,CAAC,MAAM,KAChB,QAAQ,EAAE,IAAI,GACf;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,oCAAgB,CAAC,MAAM;qBAC/B;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,oCAAgB,CAAC,MAAM;qBAC/B;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAE,CAAC;yBACb;qBACF;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,uCAAsB,CAAC,MAAM;wBACpC,QAAQ,EAAE,CAAC;qBACZ;oBACD,QAAQ,EAAE,oCAAgB,CAAC,MAAM;oBACjC,oBAAoB,EAAE;wBACpB,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,mCAAwB,CAAC,MAAM;qBACvC;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,IAAI;qBACf;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,IAAI;qBACf;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC;aACvE;SACF;QACD,oBAAoB,EAAE,IAAI;QAC1B,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;KAC1C,CAAA;IAEY,qBAAQ,GAAmC,IAAA,kCAAqB,EAAC,aAAA,MAAM,CAAC,CAAA;AACvF,CAAC,EA5DgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QA4D5B"}
1
+ {"version":3,"file":"wearable-json.js","sourceRoot":"","sources":["../../../src/sdk/project/wearable-json.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,sFAAiF;AACjF,4EAA2E;AAC3E,gFAAoF;AAEpF,iDAAsF;AACtF,6CAAyD;AASzD;;GAEG;AACH,IAAiB,YAAY,CAgE5B;AAhED,WAAiB,YAAY;IACd,mBAAM,GAA6B;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;aACf;YACD,MAAM,kCACD,eAAM,CAAC,MAAM,KAChB,QAAQ,EAAE,IAAI,GACf;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,oCAAgB,CAAC,MAAM;qBAC/B;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,oCAAgB,CAAC,MAAM;qBAC/B;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAE,CAAC;yBACb;qBACF;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,uCAAsB,CAAC,MAAM;wBACpC,QAAQ,EAAE,CAAC;qBACZ;oBACD,QAAQ,EAAE,oCAAgB,CAAC,MAAM;oBACjC,oBAAoB,EAAE;wBACpB,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,mCAAwB,CAAC,MAAM;qBACvC;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,IAAI;qBACf;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,IAAI;qBACf;oBACD,WAAW,kCACN,8BAAe,CAAC,MAAM,KACzB,QAAQ,EAAE,IAAI,GACf;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC;aACvE;SACF;QACD,oBAAoB,EAAE,IAAI;QAC1B,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;KAC1C,CAAA;IAEY,qBAAQ,GAAmC,IAAA,kCAAqB,EAAC,aAAA,MAAM,CAAC,CAAA;AACvF,CAAC,EAhEgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAgE5B"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "26.1.0",
2
+ "version": "26.2.0",
3
3
  "name": "@dcl/schemas",
4
4
  "main": "./dist/index.js",
5
5
  "typings": "./dist/index.d.ts",
@@ -45,5 +45,5 @@
45
45
  "files": [
46
46
  "dist"
47
47
  ],
48
- "commit": "9385c2088d8152e26722e0e616fde4354310abc9"
48
+ "commit": "dc16758fd207513a4ca708b0b85179c83cdc400a"
49
49
  }