roavatar-renderer 1.2.11 → 1.2.13

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 (3) hide show
  1. package/dist/index.d.ts +103 -60
  2. package/dist/index.js +2239 -15351
  3. package/package.json +1 -2
package/dist/index.d.ts CHANGED
@@ -75,6 +75,8 @@ export declare const AllClothingSorts: ItemSort[];
75
75
 
76
76
  export declare const AllHeadShapes: string[];
77
77
 
78
+ export declare const AllInstances: Instance[];
79
+
78
80
  export declare const AlphaMode: {
79
81
  Overlay: number;
80
82
  Transparency: number;
@@ -101,6 +103,7 @@ export declare class AnimationTrack {
101
103
  trackType: AnimationTrackType;
102
104
  keyframeGroups: (PartKeyframeGroup | FaceKeyframeGroup)[];
103
105
  curves: (PartCurve | FaceCruve)[];
106
+ keyframeTimeMap: Map<number, number>;
104
107
  isPlaying: boolean;
105
108
  timePosition: number;
106
109
  weight: number;
@@ -136,6 +139,8 @@ export declare class AnimationTrack {
136
139
  renderPose(updateMotors?: boolean): void;
137
140
  updateMotors(): void;
138
141
  setTime(time: number): void;
142
+ getKeyframeTime(keyframe: number): number;
143
+ setKeyframe(keyframe: number): void;
139
144
  /**
140
145
  * Remember to call tick() on each frame
141
146
  */
@@ -171,7 +176,8 @@ export declare class AnimatorWrapper extends InstanceWrapper {
171
176
  isValidTrackForSet(track: AnimationTrack, name: string): boolean;
172
177
  _fixUnloaded(): void;
173
178
  restPose(includeMotors?: boolean, includeFACS?: boolean): void;
174
- renderAnimation(addTime?: number): void;
179
+ renderAnimation(addTime?: number, forceTime?: number, forceKeyframe?: number): void;
180
+ getCurrentAnimationTrack(): AnimationTrack | undefined;
175
181
  loadAvatarAnimation(id: bigint, isEmote?: boolean, forceLoop?: boolean): Promise<Response | undefined>;
176
182
  playAnimation(name: string, type?: "main" | "mood" | "tool"): boolean;
177
183
  }
@@ -239,7 +245,7 @@ export declare const API: {
239
245
  UnequipEmote: (auth: Authentication, slot: number) => Promise<Response>;
240
246
  GetAvatarRules: () => Promise<Response>;
241
247
  RedrawThumbnail: (auth: Authentication) => Promise<Response>;
242
- GetThumbnailCustomization: () => Promise<Response>;
248
+ GetThumbnailCustomizations: () => Promise<Response | ThumbnailCustomizations_Result>;
243
249
  SetThumbnailCustomization: (auth: Authentication, body: ThumbnailsCustomization_Payload) => Promise<Response>;
244
250
  ResetThumbnailCustomization: (auth: Authentication, thumbnailType: number) => Promise<Response>;
245
251
  };
@@ -623,6 +629,19 @@ export declare interface BundleDetails_Result {
623
629
 
624
630
  export declare const BundleTypes: string[];
625
631
 
632
+ export declare const CACHE: {
633
+ AssetBuffer: Map<string, Promise<ArrayBuffer | Response>>;
634
+ RBX: Map<string, RBX>;
635
+ Mesh: Map<string, FileMesh>;
636
+ Image: Map<string, HTMLImageElement | Promise<HTMLImageElement | undefined> | undefined>;
637
+ Thumbnails: Map<string, string | undefined>;
638
+ ItemOwned: Map<string, [boolean, number]>;
639
+ IsLayered: Map<number, boolean>;
640
+ AvatarInventoryItem: Map<string, AvatarInventory_Result>;
641
+ ItemDetails: Map<string, ItemDetail_Result>;
642
+ UserInfo: undefined;
643
+ };
644
+
626
645
  export declare function calculateMagnitude3D(x: number, y: number, z: number): number;
627
646
 
628
647
  export declare function calculateMotor6Doffset(motor: Instance, includeTransform?: boolean): CFrame;
@@ -646,6 +665,9 @@ export declare class CFrame {
646
665
  getMatrix(): THREE.Matrix4Tuple;
647
666
  fromMatrix(m: Mat4x4): this;
648
667
  fromRotationMatrix(r00: number, r01: number, r02: number, r10: number, r11: number, r12: number, r20: number, r21: number, r22: number, order?: string): void;
668
+ lookVector(): Vec3;
669
+ static lookAt(eye: Vec3, target: Vec3, up?: Vec3): CFrame;
670
+ static fromEulerAngles(rx: number, ry: number, rz: number, order?: THREE.EulerOrder): CFrame;
649
671
  inverse(): CFrame;
650
672
  multiply(cf: CFrame): CFrame;
651
673
  isSame(other: CFrame): boolean;
@@ -721,27 +743,53 @@ export declare class Content {
721
743
  export declare const ContentMap: Map<string, string>;
722
744
 
723
745
  declare class COREMESH {
724
- numverts: number;
725
- verts: FileMeshVertex[];
726
- numfaces: number;
727
- faces: FileMeshFace[];
746
+ private _numverts;
747
+ private _positions;
748
+ private _normals;
749
+ private _uvs;
750
+ private _tangents;
751
+ private _colors;
752
+ private _numfaces;
753
+ private _indices;
754
+ get numverts(): number;
755
+ get numfaces(): number;
756
+ set numverts(value: number);
757
+ set numfaces(value: number);
728
758
  clone(): COREMESH;
759
+ getPos(i: number): Vec3;
760
+ setPos(i: number, value: Vec3): void;
761
+ getNormal(i: number): Vec3;
762
+ setNormal(i: number, value: Vec3): void;
763
+ getUV(i: number): Vec2;
764
+ setUV(i: number, value: Vec2): void;
765
+ getTangent(i: number): Vec4;
766
+ setTangent(i: number, value: Vec4): void;
767
+ getColor(i: number): Vec4;
768
+ setColor(i: number, value: Vec4): void;
769
+ getFace(i: number): Vec3;
770
+ setFace(i: number, value: Vec3): void;
729
771
  getTriangle(index: number): Triangle;
772
+ readVert(i: number, view: SimpleView, sizeOf_vert?: number): void;
773
+ readFace(i: number, view: SimpleView): void;
774
+ sliceVerts(begin?: number, end?: number): void;
775
+ sliceFaces(begin?: number, end?: number): void;
776
+ increaseVerts(add: number): void;
777
+ increaseFaces(add: number): void;
778
+ onlyVerts(only: number[]): void;
779
+ onlyFaces(only: number[]): void;
780
+ getPositions(): Float32Array;
781
+ getNormals(): Float32Array;
782
+ getUVs(): Float32Array;
783
+ getTangents(): Int8Array;
784
+ getColors(): Uint8Array;
785
+ getIndices(): Uint16Array;
730
786
  getTouchingVerts(index: number): number[];
731
787
  }
732
788
 
733
789
  export declare function createContentMap(): void;
734
790
 
735
- export declare function createMeshChunks(mesh: FileMesh, widthSplit: number, heightSplit: number, depthSplit: number): MeshChunk[];
736
-
737
- /**THIS FUNCTION IS SO EXPENSIVE IT NEEDS TO BE ASYNC SO JS DOESNT CRASH, USE CHUNKED VERSION INSTEAD
738
- */
739
- export declare function createWeightsForMesh(mesh: FileMesh, ref_mesh: FileMesh): Promise<number[][]>;
740
-
741
791
  export declare function createWeightsForMeshChunked(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
742
792
 
743
- export declare function createWeightsForMeshChunkedOLD(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
744
-
745
793
  export declare function cross(a: Vec3, b: Vec3): Vec3;
746
794
 
747
795
  export declare const DataType: {
@@ -786,6 +834,8 @@ export declare const DefaultAnimations: {
786
834
  */
787
835
  export declare const DefaultAnimationsR6: typeof DefaultAnimations;
788
836
 
837
+ export declare function DefaultGetWorkerFunc(): Worker;
838
+
789
839
  export declare const defaultPantAssetIds: number[];
790
840
 
791
841
  export declare const defaultPantTemplateAssetIds: number[];
@@ -882,7 +932,6 @@ export declare class FileMesh {
882
932
  constructor();
883
933
  clone(): FileMesh;
884
934
  reset(): void;
885
- recalculateNormals(): void;
886
935
  readChunk(view: SimpleView): Promise<void>;
887
936
  readChunkLODS(view: SimpleView, version: number): void;
888
937
  readChunkSKINNING(view: SimpleView, version: number): void;
@@ -893,12 +942,8 @@ export declare class FileMesh {
893
942
  stripLODS(): void;
894
943
  padSkinnings(): void;
895
944
  combine(other: FileMesh): void;
896
- /**
897
- * @deprecated it doesnt work with LODS
898
- */
899
- deleteVert(i: number): void;
900
945
  removeDuplicateVertices(distance?: number): number;
901
- removeFace(index: number): void;
946
+ removeFaces(indices: number[]): void;
902
947
  basicSkin(boneNames: string[]): void;
903
948
  getValidationIssue(): "subsetLengthMismatch" | undefined;
904
949
  }
@@ -913,14 +958,6 @@ declare class FileMeshBone {
913
958
  clone(): FileMeshBone;
914
959
  }
915
960
 
916
- declare class FileMeshFace {
917
- a: number;
918
- b: number;
919
- c: number;
920
- constructor(a: number, b: number, c: number);
921
- clone(): FileMeshFace;
922
- }
923
-
924
961
  export declare class FileMeshSkinning {
925
962
  subsetIndices: Vec4;
926
963
  boneWeights: Vec4;
@@ -937,19 +974,10 @@ export declare class FileMeshSubset {
937
974
  clone(): FileMeshSubset;
938
975
  }
939
976
 
940
- export declare class FileMeshVertex {
941
- position: Vec3;
942
- normal: Vec3;
943
- uv: Vec2;
944
- tangent: Vec4;
945
- color: Vec4;
946
- constructor(position?: Vec3, normal?: Vec3, uv?: Vec2, tangent?: Vec4, color?: Vec4);
947
- clone(): FileMeshVertex;
948
- }
949
-
950
977
  export declare const FLAGS: {
951
978
  HAIR_IS_BODYPART: boolean;
952
979
  AVATAR_JOINT_UPGRADE: boolean;
980
+ INSTANCE_GARBAGE_COLLECT: boolean;
953
981
  BODYCOLOR3: boolean;
954
982
  ENABLE_API_CACHE: boolean;
955
983
  ENABLE_API_MESH_CACHE: boolean;
@@ -988,6 +1016,7 @@ export declare const FLAGS: {
988
1016
  HSR_RAY_COUNT: number;
989
1017
  HSR_RAY_LENGTH: number;
990
1018
  CACHE_HSR_HITS: boolean;
1019
+ VERBOSE_LOGGING: boolean;
991
1020
  SEARCH_FOR_STRING: string | undefined;
992
1021
  LOAD_TEST_PLACE: string | undefined;
993
1022
  };
@@ -1020,7 +1049,11 @@ export declare function generateUUIDv4(): string;
1020
1049
 
1021
1050
  export declare function GetAttachedPart(accessory: Instance, rig: Instance): Instance | undefined;
1022
1051
 
1023
- export declare function getDistVertArray(ref: FileMesh, dist: FileMesh): (FileMeshVertex | undefined)[];
1052
+ export declare function getCameraCFrameForHeadshotCustomized(rig: Instance, fov: number, yRot: number, distance: number): CFrame | undefined;
1053
+
1054
+ export declare function getDistIndexArray(ref: FileMesh, dist: FileMesh): (number | undefined)[];
1055
+
1056
+ export declare function getHeadExtents(rig: Instance): [Vector3, Vector3] | undefined;
1024
1057
 
1025
1058
  export declare interface GetInfoForId_Result {
1026
1059
  "description": string;
@@ -1035,8 +1068,6 @@ export declare interface GetInfoForId_Result {
1035
1068
 
1036
1069
  export declare function getOffsetArray(inner: FileMesh, outer: FileMesh): ([Vec3, THREE.Quaternion, number] | undefined)[];
1037
1070
 
1038
- export declare function getOffsetMap(inner: FileMesh, outer: FileMesh): Map<number, Vec3>;
1039
-
1040
1071
  export declare function getOriginalSize(part: Instance): Vector3;
1041
1072
 
1042
1073
  export declare function getRandomBetweenInclusive(min: number, max: number): number;
@@ -1081,7 +1112,9 @@ export declare interface GetUserOutfits_Result {
1081
1112
 
1082
1113
  export declare function getUVtoIndexMap(mesh: FileMesh): Map<number, number>;
1083
1114
 
1084
- export declare function getUVtoVertMap(mesh: FileMesh): Map<number, FileMeshVertex[]>;
1115
+ export declare function getUVtoIndicesMap(mesh: FileMesh): Map<number, number[]>;
1116
+
1117
+ export declare function getWorkerOnMessage(): (event: MessageEvent) => void;
1085
1118
 
1086
1119
  export declare function hashVec2(x: number, y: number): number;
1087
1120
 
@@ -1220,6 +1253,7 @@ export declare class Instance {
1220
1253
  parent?: Instance;
1221
1254
  destroyed: boolean;
1222
1255
  hasWrappered: boolean;
1256
+ canGC: boolean;
1223
1257
  classID?: number;
1224
1258
  objectFormat?: number;
1225
1259
  ChildAdded: Event_2;
@@ -1363,8 +1397,6 @@ declare class KDNode {
1363
1397
  constructor(point: Vec3, index: number, axis: number);
1364
1398
  }
1365
1399
 
1366
- export declare function layerClothing(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh): Promise<void>;
1367
-
1368
1400
  export declare function layerClothingChunked(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1369
1401
 
1370
1402
  export declare function layerClothingChunkedNormals(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
@@ -1379,6 +1411,8 @@ export declare const LayeredClothingAssetOrder: {
1379
1411
 
1380
1412
  export declare function lerp(a: number, b: number, t: number): number;
1381
1413
 
1414
+ export declare function lerpCFrame(oldCFrame: CFrame, newCFrame: CFrame, easedTime: number): CFrame;
1415
+
1382
1416
  export declare function lerpVec3(a: Vector3, b: Vector3, t: number): Vector3;
1383
1417
 
1384
1418
  export declare class LocalOutfit {
@@ -1756,8 +1790,6 @@ export declare function offsetMesh(mesh: FileMesh, cframe: CFrame): void;
1756
1790
 
1757
1791
  export declare function offsetMeshWithRotation(mesh: FileMesh, cframe: CFrame): void;
1758
1792
 
1759
- export declare function offsetRefMeshLikeInnerAndOuter(ref_mesh: FileMesh, inner: FileMesh, outer: FileMesh): void;
1760
-
1761
1793
  export declare class Outfit {
1762
1794
  scale: Scale;
1763
1795
  bodyColors: BodyColors | BodyColor3s;
@@ -1999,20 +2031,6 @@ declare class Ray_2 {
1999
2031
  constructor(origin: Vec3, end: Vec3);
2000
2032
  }
2001
2033
 
2002
- /**
2003
- * This is a naive (think thats what its called) implementation of the RBF deformer, it is extremely slow
2004
- * Use RBFDeformerPatch instead
2005
- */
2006
- export declare class RBFDeformer {
2007
- refVerts: FileMeshVertex[];
2008
- distVerts: FileMeshVertex[];
2009
- weights: Vec3[] | undefined;
2010
- constructor(refMesh: FileMesh, distMesh: FileMesh);
2011
- solve(): void;
2012
- deform(vec: Vec3): Vec3;
2013
- deformMesh(mesh: FileMesh): void;
2014
- }
2015
-
2016
2034
  export declare class RBFDeformerPatch {
2017
2035
  mesh: FileMesh;
2018
2036
  refVerts: Float32Array;
@@ -2142,6 +2160,9 @@ export declare class RBXRenderer {
2142
2160
  */
2143
2161
  static getRendererElement(): HTMLDivElement;
2144
2162
  static getRendererCamera(): THREE.PerspectiveCamera;
2163
+ static getCameraCFrame(): CFrame;
2164
+ static setCameraCFrame(cameraCF: CFrame): void;
2165
+ static setCameraFov(fov: number): void;
2145
2166
  static getRendererControls(): OrbitControls | undefined;
2146
2167
  static getRenderer(): THREE.WebGLRenderer | undefined;
2147
2168
  static getScene(): THREE.Scene;
@@ -2379,9 +2400,14 @@ export declare interface Search_Result {
2379
2400
  declare class SimpleView {
2380
2401
  view: DataView;
2381
2402
  viewOffset: number;
2403
+ bitOffset: number;
2382
2404
  buffer: ArrayBuffer;
2383
2405
  constructor(buffer: ArrayBuffer);
2406
+ readBits(n: number): number;
2407
+ LEB128(): number;
2408
+ ResetBitReader(): void;
2384
2409
  writeUtf8String(value: string): void;
2410
+ readBuffer(bufferLength: number): Uint8Array<ArrayBuffer>;
2385
2411
  readUtf8String(stringLength?: number): string;
2386
2412
  writeFloat32(value: number, littleEndian?: boolean): void;
2387
2413
  readFloat32(littleEndian?: boolean): number;
@@ -2462,6 +2488,18 @@ export declare const StringBufferProperties: string[];
2462
2488
 
2463
2489
  declare type ThreePoseCorrective = Vec3;
2464
2490
 
2491
+ export declare interface ThumbnailCustomizations_Result {
2492
+ "avatarThumbnailCustomizations": {
2493
+ "thumbnailType": number;
2494
+ "emoteAssetId": number;
2495
+ "camera": {
2496
+ "fieldOfViewDeg": number;
2497
+ "yRotDeg": number;
2498
+ "distanceScale": number;
2499
+ };
2500
+ }[];
2501
+ }
2502
+
2465
2503
  export declare interface ThumbnailsCustomization_Payload {
2466
2504
  thumbnailType: number;
2467
2505
  emoteAssetId: number;
@@ -2485,6 +2523,7 @@ export declare const ToRemoveBeforeBundleType: {
2485
2523
  Shoes: string[];
2486
2524
  AnimationPack: string[];
2487
2525
  Character: string[];
2526
+ MakeupLook: string[];
2488
2527
  };
2489
2528
 
2490
2529
  export declare function transferSkeleton(to: FileMesh, from: FileMesh): void;
@@ -2628,6 +2667,10 @@ export declare type WeightChunk3 = WeightChunk & {
2628
2667
  weights: Vec3[];
2629
2668
  };
2630
2669
 
2670
+ export declare const WorkerTypeToFunction: {
2671
+ [K in string]: Function;
2672
+ };
2673
+
2631
2674
  export declare const WrapLayerAutoSkin: {
2632
2675
  Disabled: number;
2633
2676
  EnabledPreserve: number;