roavatar-renderer 1.2.12 → 1.2.14

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 +90 -62
  2. package/dist/index.js +2258 -15516
  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;
@@ -724,27 +743,53 @@ export declare class Content {
724
743
  export declare const ContentMap: Map<string, string>;
725
744
 
726
745
  declare class COREMESH {
727
- numverts: number;
728
- verts: FileMeshVertex[];
729
- numfaces: number;
730
- 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);
731
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;
732
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;
733
786
  getTouchingVerts(index: number): number[];
734
787
  }
735
788
 
736
789
  export declare function createContentMap(): void;
737
790
 
738
- export declare function createMeshChunks(mesh: FileMesh, widthSplit: number, heightSplit: number, depthSplit: number): MeshChunk[];
739
-
740
- /**THIS FUNCTION IS SO EXPENSIVE IT NEEDS TO BE ASYNC SO JS DOESNT CRASH, USE CHUNKED VERSION INSTEAD
741
- */
742
- export declare function createWeightsForMesh(mesh: FileMesh, ref_mesh: FileMesh): Promise<number[][]>;
743
-
744
791
  export declare function createWeightsForMeshChunked(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
745
792
 
746
- export declare function createWeightsForMeshChunkedOLD(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
747
-
748
793
  export declare function cross(a: Vec3, b: Vec3): Vec3;
749
794
 
750
795
  export declare const DataType: {
@@ -887,7 +932,6 @@ export declare class FileMesh {
887
932
  constructor();
888
933
  clone(): FileMesh;
889
934
  reset(): void;
890
- recalculateNormals(): void;
891
935
  readChunk(view: SimpleView): Promise<void>;
892
936
  readChunkLODS(view: SimpleView, version: number): void;
893
937
  readChunkSKINNING(view: SimpleView, version: number): void;
@@ -898,12 +942,8 @@ export declare class FileMesh {
898
942
  stripLODS(): void;
899
943
  padSkinnings(): void;
900
944
  combine(other: FileMesh): void;
901
- /**
902
- * @deprecated it doesnt work with LODS
903
- */
904
- deleteVert(i: number): void;
905
945
  removeDuplicateVertices(distance?: number): number;
906
- removeFace(index: number): void;
946
+ removeFaces(indices: number[]): void;
907
947
  basicSkin(boneNames: string[]): void;
908
948
  getValidationIssue(): "subsetLengthMismatch" | undefined;
909
949
  }
@@ -918,14 +958,6 @@ declare class FileMeshBone {
918
958
  clone(): FileMeshBone;
919
959
  }
920
960
 
921
- declare class FileMeshFace {
922
- a: number;
923
- b: number;
924
- c: number;
925
- constructor(a: number, b: number, c: number);
926
- clone(): FileMeshFace;
927
- }
928
-
929
961
  export declare class FileMeshSkinning {
930
962
  subsetIndices: Vec4;
931
963
  boneWeights: Vec4;
@@ -942,19 +974,10 @@ export declare class FileMeshSubset {
942
974
  clone(): FileMeshSubset;
943
975
  }
944
976
 
945
- export declare class FileMeshVertex {
946
- position: Vec3;
947
- normal: Vec3;
948
- uv: Vec2;
949
- tangent: Vec4;
950
- color: Vec4;
951
- constructor(position?: Vec3, normal?: Vec3, uv?: Vec2, tangent?: Vec4, color?: Vec4);
952
- clone(): FileMeshVertex;
953
- }
954
-
955
977
  export declare const FLAGS: {
956
978
  HAIR_IS_BODYPART: boolean;
957
979
  AVATAR_JOINT_UPGRADE: boolean;
980
+ INSTANCE_GARBAGE_COLLECT: boolean;
958
981
  BODYCOLOR3: boolean;
959
982
  ENABLE_API_CACHE: boolean;
960
983
  ENABLE_API_MESH_CACHE: boolean;
@@ -993,6 +1016,7 @@ export declare const FLAGS: {
993
1016
  HSR_RAY_COUNT: number;
994
1017
  HSR_RAY_LENGTH: number;
995
1018
  CACHE_HSR_HITS: boolean;
1019
+ VERBOSE_LOGGING: boolean;
996
1020
  SEARCH_FOR_STRING: string | undefined;
997
1021
  LOAD_TEST_PLACE: string | undefined;
998
1022
  };
@@ -1025,7 +1049,9 @@ export declare function generateUUIDv4(): string;
1025
1049
 
1026
1050
  export declare function GetAttachedPart(accessory: Instance, rig: Instance): Instance | undefined;
1027
1051
 
1028
- 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)[];
1029
1055
 
1030
1056
  export declare function getHeadExtents(rig: Instance): [Vector3, Vector3] | undefined;
1031
1057
 
@@ -1042,8 +1068,6 @@ export declare interface GetInfoForId_Result {
1042
1068
 
1043
1069
  export declare function getOffsetArray(inner: FileMesh, outer: FileMesh): ([Vec3, THREE.Quaternion, number] | undefined)[];
1044
1070
 
1045
- export declare function getOffsetMap(inner: FileMesh, outer: FileMesh): Map<number, Vec3>;
1046
-
1047
1071
  export declare function getOriginalSize(part: Instance): Vector3;
1048
1072
 
1049
1073
  export declare function getRandomBetweenInclusive(min: number, max: number): number;
@@ -1088,7 +1112,7 @@ export declare interface GetUserOutfits_Result {
1088
1112
 
1089
1113
  export declare function getUVtoIndexMap(mesh: FileMesh): Map<number, number>;
1090
1114
 
1091
- export declare function getUVtoVertMap(mesh: FileMesh): Map<number, FileMeshVertex[]>;
1115
+ export declare function getUVtoIndicesMap(mesh: FileMesh): Map<number, number[]>;
1092
1116
 
1093
1117
  export declare function getWorkerOnMessage(): (event: MessageEvent) => void;
1094
1118
 
@@ -1229,6 +1253,7 @@ export declare class Instance {
1229
1253
  parent?: Instance;
1230
1254
  destroyed: boolean;
1231
1255
  hasWrappered: boolean;
1256
+ canGC: boolean;
1232
1257
  classID?: number;
1233
1258
  objectFormat?: number;
1234
1259
  ChildAdded: Event_2;
@@ -1372,8 +1397,6 @@ declare class KDNode {
1372
1397
  constructor(point: Vec3, index: number, axis: number);
1373
1398
  }
1374
1399
 
1375
- export declare function layerClothing(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh): Promise<void>;
1376
-
1377
1400
  export declare function layerClothingChunked(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
1378
1401
 
1379
1402
  export declare function layerClothingChunkedNormals(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
@@ -1388,6 +1411,8 @@ export declare const LayeredClothingAssetOrder: {
1388
1411
 
1389
1412
  export declare function lerp(a: number, b: number, t: number): number;
1390
1413
 
1414
+ export declare function lerpCFrame(oldCFrame: CFrame, newCFrame: CFrame, easedTime: number): CFrame;
1415
+
1391
1416
  export declare function lerpVec3(a: Vector3, b: Vector3, t: number): Vector3;
1392
1417
 
1393
1418
  export declare class LocalOutfit {
@@ -1765,8 +1790,6 @@ export declare function offsetMesh(mesh: FileMesh, cframe: CFrame): void;
1765
1790
 
1766
1791
  export declare function offsetMeshWithRotation(mesh: FileMesh, cframe: CFrame): void;
1767
1792
 
1768
- export declare function offsetRefMeshLikeInnerAndOuter(ref_mesh: FileMesh, inner: FileMesh, outer: FileMesh): void;
1769
-
1770
1793
  export declare class Outfit {
1771
1794
  scale: Scale;
1772
1795
  bodyColors: BodyColors | BodyColor3s;
@@ -2008,20 +2031,6 @@ declare class Ray_2 {
2008
2031
  constructor(origin: Vec3, end: Vec3);
2009
2032
  }
2010
2033
 
2011
- /**
2012
- * This is a naive (think thats what its called) implementation of the RBF deformer, it is extremely slow
2013
- * Use RBFDeformerPatch instead
2014
- */
2015
- export declare class RBFDeformer {
2016
- refVerts: FileMeshVertex[];
2017
- distVerts: FileMeshVertex[];
2018
- weights: Vec3[] | undefined;
2019
- constructor(refMesh: FileMesh, distMesh: FileMesh);
2020
- solve(): void;
2021
- deform(vec: Vec3): Vec3;
2022
- deformMesh(mesh: FileMesh): void;
2023
- }
2024
-
2025
2034
  export declare class RBFDeformerPatch {
2026
2035
  mesh: FileMesh;
2027
2036
  refVerts: Float32Array;
@@ -2151,6 +2160,9 @@ export declare class RBXRenderer {
2151
2160
  */
2152
2161
  static getRendererElement(): HTMLDivElement;
2153
2162
  static getRendererCamera(): THREE.PerspectiveCamera;
2163
+ static getCameraCFrame(): CFrame;
2164
+ static setCameraCFrame(cameraCF: CFrame): void;
2165
+ static setCameraFov(fov: number): void;
2154
2166
  static getRendererControls(): OrbitControls | undefined;
2155
2167
  static getRenderer(): THREE.WebGLRenderer | undefined;
2156
2168
  static getScene(): THREE.Scene;
@@ -2388,9 +2400,14 @@ export declare interface Search_Result {
2388
2400
  declare class SimpleView {
2389
2401
  view: DataView;
2390
2402
  viewOffset: number;
2403
+ bitOffset: number;
2391
2404
  buffer: ArrayBuffer;
2392
2405
  constructor(buffer: ArrayBuffer);
2406
+ readBits(n: number): number;
2407
+ LEB128(): number;
2408
+ ResetBitReader(): void;
2393
2409
  writeUtf8String(value: string): void;
2410
+ readBuffer(bufferLength: number): Uint8Array<ArrayBuffer>;
2394
2411
  readUtf8String(stringLength?: number): string;
2395
2412
  writeFloat32(value: number, littleEndian?: boolean): void;
2396
2413
  readFloat32(littleEndian?: boolean): number;
@@ -2471,6 +2488,18 @@ export declare const StringBufferProperties: string[];
2471
2488
 
2472
2489
  declare type ThreePoseCorrective = Vec3;
2473
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
+
2474
2503
  export declare interface ThumbnailsCustomization_Payload {
2475
2504
  thumbnailType: number;
2476
2505
  emoteAssetId: number;
@@ -2494,6 +2523,7 @@ export declare const ToRemoveBeforeBundleType: {
2494
2523
  Shoes: string[];
2495
2524
  AnimationPack: string[];
2496
2525
  Character: string[];
2526
+ MakeupLook: string[];
2497
2527
  };
2498
2528
 
2499
2529
  export declare function transferSkeleton(to: FileMesh, from: FileMesh): void;
@@ -2521,8 +2551,6 @@ export declare class UDim2 {
2521
2551
  clone(): UDim2;
2522
2552
  }
2523
2553
 
2524
- export declare function updateCameraForHeadshotCustomized(rig: Instance, fov: number, yRot: number, distance: number): void;
2525
-
2526
2554
  declare type UserInfo = {
2527
2555
  id: number;
2528
2556
  name: string;