roavatar-renderer 1.2.15 → 1.3.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.
package/README.md CHANGED
@@ -44,7 +44,7 @@ Basic example on how to load an avatar using OutfitRenderer (to make it simpler)
44
44
  document.body.appendChild(RBXRenderer.getRendererElement())
45
45
 
46
46
  //get avatar data for the user with id 1
47
- const outfit = API.Avatar.GetAvatarDetails(1)
47
+ const outfit = await API.Avatar.GetAvatarDetails(1)
48
48
  if (!(outfit instanceof Outfit)) throw new Error("Failed to get outfit")
49
49
 
50
50
  //create renderer for outfit
package/dist/index.d.ts CHANGED
@@ -55,6 +55,14 @@ export declare const AccessoryType: {
55
55
  Eyelash: number;
56
56
  };
57
57
 
58
+ export declare class AccessoryWrapper extends InstanceWrapper {
59
+ static className: string;
60
+ static requiredProperties: string[];
61
+ setup(): void;
62
+ created(): void;
63
+ AccessoryBuildWeld(): void;
64
+ }
65
+
58
66
  export declare const ActualBundleTypes: string[];
59
67
 
60
68
  export declare function add(v0: Vec3, v1: Vec3): Vec3;
@@ -83,6 +91,12 @@ export declare const AlphaMode: {
83
91
  TintMask: number;
84
92
  };
85
93
 
94
+ export declare class AnimationConstraintWrapper extends InstanceWrapper {
95
+ static className: string;
96
+ static requiredProperties: string[];
97
+ setup(): void;
98
+ }
99
+
86
100
  export declare type AnimationProp = "ClimbAnimation" | "FallAnimation" | "IdleAnimation" | "JumpAnimation" | "MoodAnimation" | "RunAnimation" | "SwimAnimation" | "WalkAnimation" | "dance1" | "dance2" | "dance3" | "toolnone";
87
101
 
88
102
  export declare const AnimationPropToName: {
@@ -295,6 +309,10 @@ export declare const API: {
295
309
  PremiumFeatures: {
296
310
  GetSubscription: (userId: number) => Promise<Response | GetSubscription_Result>;
297
311
  };
312
+ RBLXGet: typeof RBLXGet;
313
+ RBLXPost: typeof RBLXPost;
314
+ RBLXDelete: typeof RBLXDelete;
315
+ RBLXPatch: typeof RBLXPatch;
298
316
  };
299
317
 
300
318
  export declare function arrayBufferToBase64(buffer: ArrayBuffer): string;
@@ -548,6 +566,14 @@ declare type BodyColorsJson = {
548
566
  leftLegColorId?: number;
549
567
  };
550
568
 
569
+ export declare class BodyColorsWrapper extends InstanceWrapper {
570
+ static className: string;
571
+ static requiredProperties: string[];
572
+ setup(): void;
573
+ created(): void;
574
+ update(): void;
575
+ }
576
+
551
577
  export declare const BodyPart: {
552
578
  Head: number;
553
579
  Torso: number;
@@ -822,6 +848,12 @@ export declare const DataType: {
822
848
  NonSerializable: number;
823
849
  };
824
850
 
851
+ export declare class DecalWrapper extends InstanceWrapper {
852
+ static className: string;
853
+ static requiredProperties: string[];
854
+ setup(): void;
855
+ }
856
+
825
857
  /**
826
858
  * @deprecated
827
859
  */
@@ -978,6 +1010,8 @@ export declare class FileMeshSubset {
978
1010
  clone(): FileMeshSubset;
979
1011
  }
980
1012
 
1013
+ export declare function fileMeshToTHREEGeometry(mesh: FileMesh, canIncludeSkinning?: boolean, forceVertexColor?: Vector3): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
1014
+
981
1015
  export declare const FLAGS: {
982
1016
  HAIR_IS_BODYPART: boolean;
983
1017
  AVATAR_JOINT_UPGRADE: boolean;
@@ -1057,6 +1091,11 @@ export declare function getCameraCFrameForHeadshotCustomized(rig: Instance, fov:
1057
1091
 
1058
1092
  export declare function getDistIndexArray(ref: FileMesh, dist: FileMesh): (number | undefined)[];
1059
1093
 
1094
+ export declare function getExtents(cframe: CFrame, parts: Instance[]): [Vector3, Vector3];
1095
+
1096
+ /**@deprecated this is SO broken */
1097
+ export declare function getExtentsForParts(parts: Instance[], includeTransform?: boolean): [Vector3, Vector3];
1098
+
1060
1099
  export declare function getHeadExtents(rig: Instance): [Vector3, Vector3] | undefined;
1061
1100
 
1062
1101
  export declare interface GetInfoForId_Result {
@@ -1545,6 +1584,8 @@ export declare const magic = "<roblox!";
1545
1584
 
1546
1585
  export declare function magnitude(v: Vec3): number;
1547
1586
 
1587
+ export declare const MakeupAssetTypes: string[];
1588
+
1548
1589
  export declare class MakeupDescriptionWrapper extends InstanceWrapper {
1549
1590
  static className: string;
1550
1591
  static requiredProperties: string[];
@@ -1557,6 +1598,10 @@ export declare const MakeupType: {
1557
1598
  Eye: number;
1558
1599
  };
1559
1600
 
1601
+ export declare class ManualWeldWrapper extends WeldWrapper {
1602
+ static className: string;
1603
+ }
1604
+
1560
1605
  export declare function mapNum(x: number, in_min: number, in_max: number, out_min: number, out_max: number): number;
1561
1606
 
1562
1607
  export declare interface MarketplaceWidget {
@@ -1639,6 +1684,12 @@ export declare class ModelWrapper extends InstanceWrapper {
1639
1684
  GetModelCFrame(): CFrame;
1640
1685
  }
1641
1686
 
1687
+ export declare class Motor6DWrapper extends WeldWrapper {
1688
+ static className: string;
1689
+ static requiredProperties: string[];
1690
+ setup(): void;
1691
+ }
1692
+
1642
1693
  /**
1643
1694
  * @deprecated Use mountElement instead
1644
1695
  * @param container
@@ -1878,7 +1929,6 @@ export declare class OutfitRenderer {
1878
1929
  outfit: Outfit;
1879
1930
  currentRig?: Instance; /**Instance for the Model of the current outfit */
1880
1931
  currentRigType: AvatarType;
1881
- rigPath: string;
1882
1932
  doCameraUpdateOnLoad: boolean; /**Makes camera update when new avatar has loaded */
1883
1933
  doCameraUpdate: boolean; /**Does camera update every frame */
1884
1934
  currentlyChangingRig: boolean;
@@ -1888,13 +1938,14 @@ export declare class OutfitRenderer {
1888
1938
  animationInterval?: NodeJS.Timeout;
1889
1939
  animationFPS: number;
1890
1940
  deltaTimeMultiplier: number;
1941
+ renderScene: RBXRendererScene;
1891
1942
  /**
1892
1943
  * Creates a new OutfitRenderer which makes it easy to render outfits
1893
1944
  * @param auth The authentication object, you should have one you use for everything
1894
1945
  * @param outfit The outfit you want to render, it can be updated later by calling setOutfit()
1895
- * @param rigPath The path that contains RigR6.rbxm and RigR15.rbxm, should always be "roavatar://" as rig path is now controlled by FLAGS
1946
+ * @param renderScene The scene the outfit should be rendered in
1896
1947
  */
1897
- constructor(auth: Authentication, outfit: Outfit, rigPath?: string);
1948
+ constructor(auth: Authentication, outfit: Outfit, renderScene?: RBXRendererScene);
1898
1949
  /**
1899
1950
  * Updates the current rig, called internally by _updateOutfit()
1900
1951
  */
@@ -2060,6 +2111,14 @@ export declare class RBFDeformerPatch {
2060
2111
  deformMesh(): void;
2061
2112
  }
2062
2113
 
2114
+ declare function RBLXDelete(url: string, auth: Authentication, body: any, attempt?: number): Promise<Response>;
2115
+
2116
+ declare function RBLXGet(url: string, headers?: any, includeCredentials?: boolean): Promise<Response>;
2117
+
2118
+ declare function RBLXPatch(url: string, auth: Authentication, body: any, attempt?: number): Promise<Response>;
2119
+
2120
+ declare function RBLXPost(url: string, auth: Authentication | undefined, body: any, attempt?: number, method?: string): Promise<Response>;
2121
+
2063
2122
  export declare class RBX {
2064
2123
  classCount: number;
2065
2124
  instanceCount: number;
@@ -2091,42 +2150,47 @@ export declare class RBX {
2091
2150
  }
2092
2151
 
2093
2152
  export declare class RBXRenderer {
2094
- static isRenderingMesh: Map<Instance, boolean>;
2095
- static renderDescs: Map<Instance, RenderDesc>;
2096
- static destroyConnections: Map<Instance, Connection>;
2097
- static lookAwayVector: Vec3;
2098
- static lookAwayDistance: number;
2099
2153
  static orbitControlsTarget: Vec3;
2100
- static scene: THREE.Scene;
2101
- static camera: THREE.PerspectiveCamera;
2102
- static controls: OrbitControls | undefined;
2154
+ static scenes: RBXRendererScene[];
2155
+ static get firstScene(): RBXRendererScene;
2156
+ /**@deprecated This can only get the first renderScene's scene */
2157
+ static get scene(): THREE.Scene;
2158
+ /**@deprecated This can only get the first renderScene's camera */
2159
+ static get camera(): THREE.PerspectiveCamera;
2160
+ /**@deprecated This can only get the first renderScene's controls */
2161
+ static get controls(): OrbitControls | undefined;
2103
2162
  static renderer?: THREE.WebGLRenderer;
2104
- static effectComposer: EffectComposer | undefined;
2105
- static shadowEnabled: boolean;
2106
- static shadowResolution: [number, number];
2107
2163
  static resolution: [number, number];
2108
2164
  static backgroundColorHex: number;
2109
2165
  static backgroundTransparent: boolean;
2110
- static _wellLitDirectionalLightIntensity: number;
2111
- static set wellLitDirectionalLightIntensity(v: number);
2112
- static get wellLitDirectionalLightIntensity(): number;
2113
2166
  static createLoadingIcon: boolean;
2114
2167
  static canvasContainer: HTMLDivElement;
2115
2168
  static loadingIcon?: HTMLSpanElement;
2116
2169
  static loadingIconStyle?: HTMLStyleElement;
2117
- static plane?: THREE.Mesh;
2118
- static shadowPlane?: THREE.Mesh;
2119
- static ambientLight?: THREE.AmbientLight;
2120
- static directionalLight?: THREE.DirectionalLight;
2121
- static directionalLight2?: THREE.DirectionalLight;
2170
+ /**@deprecated This can only get the first renderScene's plane */
2171
+ static get plane(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap> | undefined;
2172
+ /**@deprecated This can only get the first renderScene's shadowPlane */
2173
+ static get shadowPlane(): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap> | undefined;
2174
+ /**@deprecated This can only get the first renderScene's ambientLight */
2175
+ static get ambientLight(): THREE.AmbientLight | undefined;
2176
+ /**@deprecated This can only get the first renderScene's directionalLight */
2177
+ static get directionalLight(): THREE.DirectionalLight | undefined;
2178
+ /**@deprecated This can only get the first renderScene's directionalLight2 */
2179
+ static get directionalLight2(): THREE.DirectionalLight | undefined;
2180
+ /**@deprecated This can only set the first renderScene's wellLitDirectionalLightIntensity*/
2181
+ static set wellLitDirectionalLightIntensity(v: number);
2182
+ /**@deprecated This can only gey the first renderScene's wellLitDirectionalLightIntensity*/
2183
+ static get wellLitDirectionalLightIntensity(): number;
2122
2184
  static failedToCreate: boolean;
2123
2185
  static error?: unknown;
2124
2186
  static boilerplateSetup(): Promise<void>;
2125
2187
  static showErrorHTML(): Promise<void>;
2188
+ static createLoadingIconHTML(): void;
2189
+ static addScene(): RBXRendererScene;
2126
2190
  /**Fully sets up renderer with scene, camera and frame rendering
2127
2191
  * @returns success
2128
2192
  */
2129
- static fullSetup(includeScene?: boolean, includeControls?: boolean): Promise<boolean>;
2193
+ static fullSetup(includeSceneAppearance?: boolean, includeControls?: boolean, includeAnimate?: boolean): Promise<boolean>;
2130
2194
  /**Creates canvasContainer */
2131
2195
  static createContainer(): void;
2132
2196
  /**Sets up the THREE.js renderer */
@@ -2135,9 +2199,9 @@ export declare class RBXRenderer {
2135
2199
  * @param lightingType "WellLit" is the default lighting for RoAvatar, "Thumbnail" tries to match the Roblox thumbnail lighting
2136
2200
  * @param backgroundColorHex is the hex code for the background color, for example 0x2b2d33
2137
2201
  */
2138
- static setupScene(lightingType?: "WellLit" | "Thumbnail", backgroundColorHex?: number): void;
2202
+ static setupScene(lightingType?: "WellLit" | "Thumbnail", backgroundColorHex?: number, renderScene?: RBXRendererScene): void;
2139
2203
  /**Sets up orbit controls */
2140
- static setupControls(): void;
2204
+ static setupControls(renderScene?: RBXRendererScene): void;
2141
2205
  /**
2142
2206
  * @param colorHex example: 0x2b2d33 which is the default
2143
2207
  */
@@ -2148,13 +2212,15 @@ export declare class RBXRenderer {
2148
2212
  */
2149
2213
  static setBackgroundTransparent(transparent: boolean): void;
2150
2214
  /**Makes the renderer render a new frame on every animationFrame */
2151
- static animate(): void;
2152
- static _createEffectComposer(): void;
2215
+ static animate(shouldRequestAnimationFrame?: boolean): void;
2216
+ static animateAll(shouldRequestAnimationFrame?: boolean): void;
2217
+ static renderScene(renderScene: RBXRendererScene, autoClear?: boolean): void;
2218
+ static _createEffectComposer(renderScene?: RBXRendererScene): void;
2153
2219
  /**Removes an instance from the renderer */
2154
- static removeInstance(instance: Instance): void;
2155
- static _addRenderDesc(instance: Instance, auth: Authentication, DescClass: typeof RenderDesc): void;
2220
+ static removeInstance(instance: Instance, renderScene?: RBXRendererScene): void;
2221
+ static _addRenderDesc(instance: Instance, auth: Authentication, DescClass: typeof RenderDesc, renderScene: RBXRendererScene): void;
2156
2222
  /**Adds an instance to the renderer or updates it */
2157
- static addInstance(instance: Instance, auth: Authentication): void;
2223
+ static addInstance(instance: Instance, auth: Authentication, renderScene?: RBXRendererScene): void;
2158
2224
  static setRendererSize(width: number, height: number): void;
2159
2225
  /**
2160
2226
  * @deprecated Use getRendererElement instead which includes the loading icon
@@ -2165,17 +2231,46 @@ export declare class RBXRenderer {
2165
2231
  * @returns An element containing the renderer canvas
2166
2232
  */
2167
2233
  static getRendererElement(): HTMLDivElement;
2234
+ /**@deprecated This can only get the first renderScene's camera */
2168
2235
  static getRendererCamera(): THREE.PerspectiveCamera;
2169
- static getCameraCFrame(): CFrame;
2170
- static setCameraCFrame(cameraCF: CFrame): void;
2171
- static setCameraFov(fov: number): void;
2236
+ static getCameraCFrame(renderScene?: RBXRendererScene): CFrame;
2237
+ static setCameraCFrame(cameraCF: CFrame, renderScene?: RBXRendererScene): void;
2238
+ static setCameraFov(fov: number, renderScene?: RBXRendererScene): void;
2239
+ /**@deprecated This can only get the first renderScene's controls */
2172
2240
  static getRendererControls(): OrbitControls | undefined;
2173
2241
  static getRenderer(): THREE.WebGLRenderer | undefined;
2174
- static getScene(): THREE.Scene;
2242
+ /**@deprecated This can only get the first renderScene's scene */
2243
+ static getScene(): RBXRendererScene;
2175
2244
  /**@deprecated
2176
2245
  * This function is unstable and can throw errors, but might work
2177
2246
  */
2178
- static exportScene(): void;
2247
+ static exportScene(renderScene?: RBXRendererScene): void;
2248
+ }
2249
+
2250
+ export declare class RBXRendererScene {
2251
+ scene: THREE.Scene;
2252
+ camera: THREE.PerspectiveCamera;
2253
+ controls: OrbitControls | undefined;
2254
+ effectComposer: EffectComposer | undefined;
2255
+ scissor?: [number, number, number, number];
2256
+ viewport?: [number, number, number, number];
2257
+ isRenderingMesh: Map<Instance, boolean>;
2258
+ renderDescs: Map<Instance, RenderDesc>;
2259
+ destroyConnections: Map<Instance, Connection>;
2260
+ lookAwayVector: Vec3;
2261
+ lookAwayDistance: number;
2262
+ shadowEnabled: boolean;
2263
+ shadowResolution: [number, number];
2264
+ _wellLitDirectionalLightIntensity: number;
2265
+ set wellLitDirectionalLightIntensity(v: number);
2266
+ get wellLitDirectionalLightIntensity(): number;
2267
+ plane?: THREE.Mesh;
2268
+ shadowPlane?: THREE.Mesh;
2269
+ ambientLight?: THREE.AmbientLight;
2270
+ directionalLight?: THREE.DirectionalLight;
2271
+ directionalLight2?: THREE.DirectionalLight;
2272
+ setRect(bounds: DOMRect): void;
2273
+ noRect(): void;
2179
2274
  }
2180
2275
 
2181
2276
  declare class RBXSimpleView {
@@ -2221,8 +2316,10 @@ export declare const RegularBodyColors: string[];
2221
2316
  * Abstract class used to describe all rendered instances
2222
2317
  */
2223
2318
  declare class RenderDesc extends DisposableDesc {
2319
+ renderScene: RBXRendererScene;
2224
2320
  results?: THREE.Mesh[];
2225
2321
  instance?: Instance;
2322
+ constructor(renderScene: RBXRendererScene);
2226
2323
  isSame(_other: RenderDesc): boolean;
2227
2324
  needsRegeneration(_other: RenderDesc): boolean;
2228
2325
  fromRenderDesc(other: RenderDesc): void;
@@ -2610,7 +2707,7 @@ declare type ValidationIssue = {
2610
2707
  assetIndex?: number;
2611
2708
  };
2612
2709
 
2613
- declare type ValidationIssueType = "AccessoryLimit" | "LayeredLimit" | "OneOfTypeLimit" | "DuplicateId" | "NotWearable" | "MissingLayeredMeta" | "InvalidAsset";
2710
+ declare type ValidationIssueType = "AccessoryLimit" | "LayeredLimit" | "OneOfTypeLimit" | "DuplicateId" | "NotWearable" | "MissingLayeredMeta" | "InvalidAsset" | "MakeupLimit";
2614
2711
 
2615
2712
  export declare type Vec2 = [number, number];
2616
2713
 
@@ -2673,6 +2770,22 @@ export declare type WeightChunk3 = WeightChunk & {
2673
2770
  weights: Vec3[];
2674
2771
  };
2675
2772
 
2773
+ export declare class WeldWrapper extends InstanceWrapper {
2774
+ static className: string;
2775
+ static requiredProperties: string[];
2776
+ setup(): void;
2777
+ get data(): WeldWrapperData;
2778
+ created(): void;
2779
+ preRender(): void;
2780
+ update(affectedPart?: number): void;
2781
+ }
2782
+
2783
+ declare class WeldWrapperData {
2784
+ part0ChangedConnection?: Connection;
2785
+ lastUpdateTime: number;
2786
+ timeUpdates: number;
2787
+ }
2788
+
2676
2789
  export declare const WorkerTypeToFunction: {
2677
2790
  [K in string]: Function;
2678
2791
  };
@@ -2685,4 +2798,6 @@ export declare const WrapLayerAutoSkin: {
2685
2798
 
2686
2799
  export declare const xmlMagic = "<roblox ";
2687
2800
 
2801
+ export declare function zoomExtents(cameraCFrame: CFrame, modelCFrame: CFrame, modelSize: Vector3, targetFOV: number, distanceScale: number): void;
2802
+
2688
2803
  export { }