roavatar-renderer 1.5.7 → 1.5.9

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/README.md CHANGED
@@ -17,7 +17,8 @@ Basic example on how to load an avatar using OutfitRenderer (to make it simpler)
17
17
  **TYPESCRIPT:**
18
18
  ```ts
19
19
  //setup flags that are compatible with you environment
20
- FLAGS.ONLINE_ASSETS = true //set false to true if you want assets to be loaded locally
20
+ FLAGS.FETCH_FUNC = undefined //undefined is the default fetch() function, this flag can be used to intercept requests
21
+ FLAGS.ONLINE_ASSETS = true //set true to false if you want assets to be loaded locally
21
22
 
22
23
  //if we arent using online assets we have to provide the renderer with the paths
23
24
  if (!FLAGS.ONLINE_ASSETS) {
package/dist/index.d.ts CHANGED
@@ -114,7 +114,7 @@ export declare const AlphaMode: {
114
114
  /**
115
115
  * @category InstanceWrapper
116
116
  */
117
- export declare class AnimationConstraintWrapper extends InstanceWrapper {
117
+ export declare class AnimationConstraintWrapper extends ConstraintWrapper {
118
118
  static className: string;
119
119
  static requiredProperties: string[];
120
120
  setup(): void;
@@ -332,6 +332,13 @@ export declare const API: {
332
332
  };
333
333
  Asset: {
334
334
  GetAssetBuffer: (url: string, headers?: HeadersInit, extraStr?: string) => Promise<Response | ArrayBuffer>;
335
+ /**
336
+ * Remember to call .Destroy() on the Instance returned by RBX.generateTree() to avoid memory leaks
337
+ * @param url
338
+ * @param headers
339
+ * @param contentRepresentationPriorityList
340
+ * @returns
341
+ */
335
342
  GetRBX: (url: string, headers?: HeadersInit, contentRepresentationPriorityList?: any) => Promise<Response | RBX>;
336
343
  GetMesh: (url: string, headers?: HeadersInit, readOnly?: boolean) => Promise<FileMesh | Response>;
337
344
  IsLayered: (id: number) => Promise<boolean | Response>;
@@ -348,6 +355,9 @@ export declare const API: {
348
355
  GetMarketplaceWidgetsSearch: (query: string) => Promise<MarketplaceWidgets_Result | Response>;
349
356
  GetMarketplaceWidgets: (context?: string) => Promise<MarketplaceWidgets_Result | Response>;
350
357
  };
358
+ Develop: {
359
+ GetLatestVersions: (auth: Authentication, assetIds: number[]) => Promise<Response | LatestVersions_Result>;
360
+ };
351
361
  Inventory: {
352
362
  GetInventory: (userId: number, assetType: number, cursor?: string) => Promise<Response>;
353
363
  IsItemOwned: (userId: number, itemType: string, assetId: number) => Promise<any>;
@@ -387,6 +397,45 @@ export declare const API: {
387
397
 
388
398
  export declare function arrayBufferToBase64(buffer: ArrayBuffer): string;
389
399
 
400
+ export declare class Assembly {
401
+ id: number;
402
+ rootNode: AssemblyNode;
403
+ allNodes: AssemblyNode[] | undefined;
404
+ allConnectors: Instance[] | undefined;
405
+ constructor(rootPart: Instance);
406
+ getNodeDescendants(): AssemblyNode[];
407
+ getPartDescendants(): Instance[];
408
+ getAllConnectors(): Instance[];
409
+ getNode(name: string): AssemblyNode | undefined;
410
+ getPart(name: string): Instance | undefined;
411
+ traverseTree(): void;
412
+ traverseCFrame(node: AssemblyNode, includeTransform: boolean, applyRoot?: boolean): CFrame;
413
+ traverseInstance(node: AssemblyNode): Instance[];
414
+ destroy(): void;
415
+ }
416
+
417
+ export declare class AssemblyNode {
418
+ depth: number;
419
+ nodes: AssemblyNode[];
420
+ part: Instance;
421
+ children: Instance[];
422
+ connectors: Instance[];
423
+ parent: AssemblyNode | Assembly;
424
+ assembly: Assembly;
425
+ traversedRestCFrame: CFrame;
426
+ traversedTransformCFrame: CFrame;
427
+ constructor(assembly: Assembly, parent: AssemblyNode | Assembly, depth: number, part: Instance, already?: Instance[]);
428
+ getNodeChildren(): AssemblyNode[];
429
+ getNodeDescendants(): AssemblyNode[];
430
+ getParentConnector(): Instance | undefined;
431
+ getConnectorOffset(includeTransform: boolean): CFrame;
432
+ _traverseTree(transform: CFrame, rest: CFrame): void;
433
+ /**
434
+ * Should only be called when destroying entire assembly by calling Assembly.destroy()
435
+ */
436
+ destroy(): void;
437
+ }
438
+
390
439
  /** @category Outfit */
391
440
  export declare class Asset {
392
441
  id: number;
@@ -503,7 +552,7 @@ export declare class AttachmentWrapper extends InstanceWrapper {
503
552
  static className: string;
504
553
  static requiredProperties: string[];
505
554
  setup(): void;
506
- getWorldCFrame(): CFrame;
555
+ getWorldCFrame(includeTransform?: boolean): CFrame;
507
556
  }
508
557
 
509
558
  /** @category API */
@@ -614,6 +663,26 @@ declare class BaseKeyframeGroup {
614
663
  getHigherKeyframe(time: number): BaseKeyframe | null;
615
664
  }
616
665
 
666
+ /**
667
+ * @category InstanceWrapper
668
+ */
669
+ export declare class BasePartWrapper extends InstanceWrapper {
670
+ static className: string;
671
+ static requiredProperties: string[];
672
+ setup(): void;
673
+ get data(): BasePartWrapperData;
674
+ created(): void;
675
+ preRender(): void;
676
+ GetAssemblyNode(): AssemblyNode;
677
+ GetAssembly(): Assembly;
678
+ GetConnectors(): Instance[];
679
+ GetConnectedParts(): Instance[];
680
+ }
681
+
682
+ declare class BasePartWrapperData {
683
+ assemblyNode?: AssemblyNode;
684
+ }
685
+
617
686
  /**@category Outfit */
618
687
  export declare type BodyColor3Name = "headColor3" | "torsoColor3" | "rightArmColor3" | "leftArmColor3" | "rightLegColor3" | "leftLegColor3";
619
688
 
@@ -724,6 +793,15 @@ export declare const BodyPartNameToEnum: {
724
793
  [K in string]: number;
725
794
  };
726
795
 
796
+ /**
797
+ * @category InstanceWrapper
798
+ */
799
+ export declare class BoneWrapper extends AttachmentWrapper {
800
+ static className: string;
801
+ static requiredProperties: string[];
802
+ setup(): void;
803
+ }
804
+
727
805
  /**
728
806
  * @category Mesh
729
807
  */
@@ -929,6 +1007,15 @@ export declare class Connection {
929
1007
  Disconnect(): void;
930
1008
  }
931
1009
 
1010
+ /**
1011
+ * @category InstanceWrapper
1012
+ */
1013
+ export declare class ConstraintWrapper extends InstanceWrapper {
1014
+ static className: string;
1015
+ static requiredProperties: string[];
1016
+ setup(): void;
1017
+ }
1018
+
932
1019
  /**
933
1020
  * @category DataModelProperty
934
1021
  */
@@ -1212,6 +1299,8 @@ export declare class FileMesh {
1212
1299
  fromBuffer(buffer: ArrayBuffer): Promise<void>;
1213
1300
  stripLODS(): void;
1214
1301
  padSkinnings(): void;
1302
+ setBoneSource(name: string): void;
1303
+ setBoneSourceSize(): void;
1215
1304
  combine(other: FileMesh): void;
1216
1305
  removeDuplicateVertices(distance?: number): number;
1217
1306
  removeFaces(indices: number[]): void;
@@ -1223,24 +1312,20 @@ export declare class FileMesh {
1223
1312
  * Bone inside SKINNING in FileMesh
1224
1313
  * @category Mesh */
1225
1314
  export declare class FileMeshBone {
1315
+ name?: string;
1226
1316
  boneNameIndex: number;
1227
1317
  parentIndex: number;
1228
1318
  lodParentIndex: number;
1229
1319
  culling: number;
1230
1320
  rotationMatrix: Mat3x3;
1231
1321
  position: Vec3;
1322
+ sourcePart?: string;
1323
+ sourceOffset: CFrame;
1324
+ sourceSize?: Vec3;
1325
+ sourceScaled: Vec3;
1232
1326
  clone(): FileMeshBone;
1233
1327
  }
1234
1328
 
1235
- /**
1236
- * Contains bone weights for a single vert
1237
- * @category Mesh */
1238
- export declare class FileMeshSkinning {
1239
- subsetIndices: Vec4;
1240
- boneWeights: Vec4;
1241
- clone(): FileMeshSkinning;
1242
- }
1243
-
1244
1329
  /**
1245
1330
  * Section of mesh inside SKINNING in FileMesh
1246
1331
  * @category Mesh */
@@ -1271,6 +1356,10 @@ export declare const FLAGS: {
1271
1356
  AVATAR_JOINT_UPGRADE: boolean;
1272
1357
  /**wip, only for memory leak debugging */
1273
1358
  INSTANCE_GARBAGE_COLLECT: boolean;
1359
+ /**makes welds immediately update (bad for performance) */
1360
+ LEGACY_WELD_BEHAVIOR: boolean;
1361
+ /**caches hierarchy of joints and removes directionality (required for AVATAR_JOINT_UPGRADE)*/
1362
+ USE_ASSEMBLY: boolean;
1274
1363
  /**outfits returned by api use Color3 instead of BrickColor */
1275
1364
  BODYCOLOR3: boolean;
1276
1365
  /**allows API to cache data */
@@ -1293,7 +1382,10 @@ export declare const FLAGS: {
1293
1382
  API_REQUEST_PREFIX: string;
1294
1383
  /**credentials request type when fetching from API_DOMAIN and credentials are usually include */
1295
1384
  INCLUDE_REQUEST_CREDENTIALS_OVERRIDE: RequestCredentials;
1385
+ /**if requests should be retried once after failing */
1296
1386
  API_REQUEST_RETRY: boolean;
1387
+ /**the fetch function the api will use */
1388
+ FETCH_FUNC: ((input: URL | RequestInfo, init?: RequestInit) => Promise<Response>) | undefined;
1297
1389
  /**loads assets from assetdelivery instead of local files */
1298
1390
  ONLINE_ASSETS: boolean;
1299
1391
  /**path to rbxasset:// local files*/
@@ -1330,8 +1422,6 @@ export declare const FLAGS: {
1330
1422
  GEAR_ENABLED: boolean;
1331
1423
  /**makes Audio instances play sound when played */
1332
1424
  AUDIO_ENABLED: boolean;
1333
- /**makes welds immediately update (bad for performance) */
1334
- LEGACY_WELD_BEHAVIOR: boolean;
1335
1425
  /**enables full texture compilation using ThreeJS RenderTarget */
1336
1426
  USE_RENDERTARGET: boolean;
1337
1427
  /**the renderer will attempt to restore the webgl context when it is lost */
@@ -1344,13 +1434,17 @@ export declare const FLAGS: {
1344
1434
  ALWAYS_SHOW_ATTACHMENTS: boolean;
1345
1435
  /**shows ThreeJS SkeletonHelper */
1346
1436
  SHOW_SKELETON_HELPER: boolean;
1437
+ /**if set the skeleton helper will only show if the instance has the name */
1438
+ SKELETON_HELPER_INSTANCE_NAME: string | undefined;
1347
1439
  /**skeleton is updated every frame */
1348
1440
  UPDATE_SKELETON: boolean;
1349
1441
  /**skeleton is animated every frame */
1350
1442
  ANIMATE_SKELETON: boolean;
1351
1443
  /**autoskin is applied even when its disabled */
1352
1444
  AUTO_SKIN_EVERYTHING: boolean;
1353
- /**skeleton is local instead of global (broken) */
1445
+ /**skeleton is local instead of global (broken)
1446
+ * @deprecated No longer does anything
1447
+ */
1354
1448
  USE_LOCAL_SKELETONDESC: boolean;
1355
1449
  /**enables HSR (hidden surface removal) */
1356
1450
  ENABLE_HSR: boolean;
@@ -1530,10 +1624,16 @@ export declare function getOriginalAttachmentPosition(attachment: Instance): Vec
1530
1624
 
1531
1625
  export declare function getOriginalSize(part: Instance): Vector3;
1532
1626
 
1627
+ export declare function getPartAssemblyScore(part: Instance): number;
1628
+
1629
+ export declare function getPartsInAssembly_Generate(part: Instance): Instance[];
1630
+
1533
1631
  export declare function getRandomBetweenInclusive(min: number, max: number, randomVal?: number): number;
1534
1632
 
1535
1633
  export declare function getRigExtentsWorld(rig: Instance): [Vector3, Vector3];
1536
1634
 
1635
+ export declare function getRootAssemblyPart_Generate(part: Instance): Instance;
1636
+
1537
1637
  /**@category API */
1538
1638
  export declare interface GetSubscription_Result {
1539
1639
  "subscriptionProductModel": {
@@ -1779,6 +1879,7 @@ export declare class Instance {
1779
1879
  parent?: Instance;
1780
1880
  destroyed: boolean;
1781
1881
  private _hasWrappered;
1882
+ wrapperInitialized: boolean;
1782
1883
  classID?: number;
1783
1884
  objectFormat?: number;
1784
1885
  ChildAdded: Event_2;
@@ -1786,6 +1887,7 @@ export declare class Instance {
1786
1887
  Destroying: Event_2;
1787
1888
  Changed: Event_2;
1788
1889
  AncestryChanged: Event_2;
1890
+ referencedByChanged: Event_2;
1789
1891
  constructor(className: string, notComplete?: boolean);
1790
1892
  get id(): string;
1791
1893
  set name(value: string);
@@ -1796,6 +1898,7 @@ export declare class Instance {
1796
1898
  removeConnectionReference(connection: Connection): void;
1797
1899
  addReferencedBy(instance: Instance): void;
1798
1900
  removeReferencedBy(instance: Instance): void;
1901
+ getReferencedBy(): Instance[];
1799
1902
  addProperty(property: Property, value?: unknown): void;
1800
1903
  fixPropertyName(name: string): string;
1801
1904
  setProperty(name: string, value: unknown, supressEvents?: boolean): void;
@@ -1829,6 +1932,7 @@ export declare class Instance {
1829
1932
  Child(name: string): Instance | undefined;
1830
1933
  FindFirstChildOfClass(className: string): Instance | undefined;
1831
1934
  FindLastChildOfClass(className: string): Instance | undefined;
1935
+ IsA(className: string): boolean;
1832
1936
  preRender(): void;
1833
1937
  }
1834
1938
 
@@ -1949,6 +2053,26 @@ export declare class ItemSort {
1949
2053
 
1950
2054
  declare type ItemType = "Asset" | "Bundle" | "Outfit" | "Look" | "Avatar" | "None";
1951
2055
 
2056
+ /**
2057
+ * @category InstanceWrapper
2058
+ */
2059
+ export declare class JointInstanceWrapper extends InstanceWrapper {
2060
+ static className: string;
2061
+ static requiredProperties: string[];
2062
+ setup(): void;
2063
+ get data(): JointInstanceWrapperData;
2064
+ created(): void;
2065
+ preRender(): void;
2066
+ getAssemblyOffset(includeTransform: boolean): CFrame;
2067
+ update(affectedPart?: number): void;
2068
+ }
2069
+
2070
+ declare class JointInstanceWrapperData {
2071
+ part0ChangedConnection?: Connection;
2072
+ lastUpdateTime: number;
2073
+ timeUpdates: number;
2074
+ }
2075
+
1952
2076
  declare class KDNode {
1953
2077
  point: Vec3;
1954
2078
  index: number;
@@ -1958,6 +2082,15 @@ declare class KDNode {
1958
2082
  constructor(point: Vec3, index: number, axis: number);
1959
2083
  }
1960
2084
 
2085
+ /**@category API */
2086
+ export declare interface LatestVersions_Result {
2087
+ "results": {
2088
+ assetId: number;
2089
+ status: "Success" | string;
2090
+ versionNumber: number;
2091
+ }[];
2092
+ }
2093
+
1961
2094
  /**
1962
2095
  * @deprecated Superseded by RBFDeformerPatch
1963
2096
  * @category Mesh
@@ -2145,7 +2278,7 @@ export declare const MakeupType: {
2145
2278
  /**
2146
2279
  * @category InstanceWrapper
2147
2280
  */
2148
- export declare class ManualWeldWrapper extends WeldWrapper {
2281
+ export declare class ManualWeldWrapper extends JointInstanceWrapper {
2149
2282
  static className: string;
2150
2283
  }
2151
2284
 
@@ -2225,6 +2358,15 @@ declare class MeshCollider {
2225
2358
  raycast(ray: Ray_2): boolean;
2226
2359
  }
2227
2360
 
2361
+ /**
2362
+ * @category InstanceWrapper
2363
+ */
2364
+ export declare class MeshPartWrapper extends BasePartWrapper {
2365
+ static className: string;
2366
+ static requiredProperties: string[];
2367
+ setup(): void;
2368
+ }
2369
+
2228
2370
  /**@category DataModelEnum */
2229
2371
  export declare const MeshType: {
2230
2372
  Brick: number;
@@ -2257,7 +2399,7 @@ export declare class ModelWrapper extends InstanceWrapper {
2257
2399
  /**
2258
2400
  * @category InstanceWrapper
2259
2401
  */
2260
- export declare class Motor6DWrapper extends WeldWrapper {
2402
+ export declare class Motor6DWrapper extends JointInstanceWrapper {
2261
2403
  static className: string;
2262
2404
  static requiredProperties: string[];
2263
2405
  setup(): void;
@@ -2590,7 +2732,7 @@ export declare class OutfitRenderer {
2590
2732
  /**
2591
2733
  * Updates the current rig, called internally by _updateOutfit()
2592
2734
  */
2593
- _setRigTo(newRigType: AvatarType): Promise<Instance | Response>;
2735
+ _setRigTo(newRigType: AvatarType): Promise<Response | Instance>;
2594
2736
  /**
2595
2737
  * Rerenders the current outfit, called internally by setOutfit() and constructor
2596
2738
  */
@@ -2684,6 +2826,15 @@ export declare const PartType: {
2684
2826
  CornerWedge: number;
2685
2827
  };
2686
2828
 
2829
+ /**
2830
+ * @category InstanceWrapper
2831
+ */
2832
+ export declare class PartWrapper extends BasePartWrapper {
2833
+ static className: string;
2834
+ static requiredProperties: string[];
2835
+ setup(): void;
2836
+ }
2837
+
2687
2838
  declare class PRNT {
2688
2839
  instanceCount: number;
2689
2840
  childReferents: number[];
@@ -3305,21 +3456,24 @@ declare class SimpleView {
3305
3456
  readUint8(): number;
3306
3457
  }
3307
3458
 
3308
- /**
3309
- * Class inside FileMesh that contains skinning data
3310
- * @category Mesh */
3311
3459
  export declare class SKINNING {
3312
- numSkinnings: number;
3313
- skinnings: FileMeshSkinning[];
3314
- numBones: number;
3460
+ _numskinnings: number;
3461
+ private _indices;
3462
+ private _weights;
3315
3463
  bones: FileMeshBone[];
3316
- nameTableSize: number;
3317
- nameTable: string[];
3318
- numSubsets: number;
3319
- subsets: FileMeshSubset[];
3320
3464
  clone(): SKINNING;
3321
- getBone(boneName: string): FileMeshBone | undefined;
3322
- getSubsetIndex(vertIndex: number): number;
3465
+ get numskinnings(): number;
3466
+ set numskinnings(value: number);
3467
+ get indices(): Uint16Array<ArrayBufferLike>;
3468
+ get weights(): Float32Array<ArrayBufferLike>;
3469
+ getIndex(i: number): Vec4;
3470
+ setIndex(i: number, value: Vec4): void;
3471
+ getWeight(i: number): Vec4;
3472
+ setWeight(i: number, value: Vec4): void;
3473
+ readSkinning(view: SimpleView, i: number): void;
3474
+ increaseSkinnings(add: number): void;
3475
+ onlySkinnings(only: number[]): void;
3476
+ getBone(name: string): FileMeshBone | undefined;
3323
3477
  }
3324
3478
 
3325
3479
  export declare function snapToNumber(value: number, numbers: number[]): number;
@@ -3590,6 +3744,13 @@ export declare function Wait(time: number): Promise<unknown>;
3590
3744
  /** @category Outfit */
3591
3745
  export declare const WearableAssetTypes: string[];
3592
3746
 
3747
+ /**
3748
+ * @category InstanceWrapper
3749
+ */
3750
+ export declare class WedgePartWrapper extends BasePartWrapper {
3751
+ static className: string;
3752
+ }
3753
+
3593
3754
  /**
3594
3755
  * @category Mesh
3595
3756
  */
@@ -3608,20 +3769,8 @@ export declare type WeightChunk3 = WeightChunk & {
3608
3769
  /**
3609
3770
  * @category InstanceWrapper
3610
3771
  */
3611
- export declare class WeldWrapper extends InstanceWrapper {
3772
+ export declare class WeldWrapper extends JointInstanceWrapper {
3612
3773
  static className: string;
3613
- static requiredProperties: string[];
3614
- setup(): void;
3615
- get data(): WeldWrapperData;
3616
- created(): void;
3617
- preRender(): void;
3618
- update(affectedPart?: number): void;
3619
- }
3620
-
3621
- declare class WeldWrapperData {
3622
- part0ChangedConnection?: Connection;
3623
- lastUpdateTime: number;
3624
- timeUpdates: number;
3625
3774
  }
3626
3775
 
3627
3776
  export declare const WorkerTypeToFunction: {