roavatar-renderer 1.5.7 → 1.5.8

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 (2) hide show
  1. package/dist/index.js +160 -69
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30676,7 +30676,7 @@ class Instance {
30676
30676
  }
30677
30677
  if (FLAGS.SEARCH_FOR_STRING) {
30678
30678
  if (property.typeID === DataType.String || property.typeID === DataType.Bytecode || property.typeID === DataType.SharedString) {
30679
- if (value.toLowerCase().includes(FLAGS.SEARCH_FOR_STRING)) {
30679
+ if (value && value.toLowerCase().includes(FLAGS.SEARCH_FOR_STRING)) {
30680
30680
  log(true, this.GetFullName());
30681
30681
  log(true, value);
30682
30682
  }
@@ -31402,7 +31402,7 @@ class RBX {
31402
31402
  case "Content": {
31403
31403
  const property = new Property();
31404
31404
  property.name = propertyNode.getAttribute("name") || "null";
31405
- property.typeID = DataType.String;
31405
+ property.typeID = DataType.Content;
31406
31406
  instance.addProperty(property);
31407
31407
  const childElement = propertyNode.querySelector(":scope > *");
31408
31408
  if (childElement) {
@@ -31427,7 +31427,7 @@ class RBX {
31427
31427
  case "bool": {
31428
31428
  const property = new Property();
31429
31429
  property.name = propertyNode.getAttribute("name") || "null";
31430
- property.typeID = DataType.String;
31430
+ property.typeID = DataType.Bool;
31431
31431
  instance.addProperty(property);
31432
31432
  instance.setProperty(property.name, propertyNode.textContent.toLowerCase() === "true");
31433
31433
  break;
@@ -31581,7 +31581,7 @@ class RBX {
31581
31581
  case "NumberSequence": {
31582
31582
  const property = new Property();
31583
31583
  property.name = propertyNode.getAttribute("name") || "null";
31584
- property.typeID = DataType.NumberRange;
31584
+ property.typeID = DataType.NumberSequence;
31585
31585
  const values = propertyNode.textContent.split(" ");
31586
31586
  const numberSequence = new NumberSequence();
31587
31587
  for (let i = 0; i < Math.floor(values.length / 3); i++) {
@@ -31598,7 +31598,7 @@ class RBX {
31598
31598
  case "ColorSequence": {
31599
31599
  const property = new Property();
31600
31600
  property.name = propertyNode.getAttribute("name") || "null";
31601
- property.typeID = DataType.NumberRange;
31601
+ property.typeID = DataType.ColorSequence;
31602
31602
  const values = propertyNode.textContent.split(" ");
31603
31603
  const colorSequence = new ColorSequence();
31604
31604
  for (let i = 0; i < Math.floor(values.length / 5); i++) {
@@ -32274,8 +32274,8 @@ const AssetTypes = [
32274
32274
  "Audio",
32275
32275
  "Mesh",
32276
32276
  "Lua",
32277
- "",
32278
- "",
32277
+ "HTML",
32278
+ "Text",
32279
32279
  "Hat",
32280
32280
  "Place",
32281
32281
  "Model",
@@ -32284,30 +32284,30 @@ const AssetTypes = [
32284
32284
  "Decal",
32285
32285
  "",
32286
32286
  "",
32287
- "",
32287
+ "Avatar",
32288
32288
  "Head",
32289
32289
  "Face",
32290
32290
  "Gear",
32291
32291
  "",
32292
32292
  "Badge",
32293
- "",
32293
+ "GroupEmblem",
32294
32294
  "",
32295
32295
  "Animation",
32296
- "",
32297
- "",
32296
+ "Arms",
32297
+ "Legs",
32298
32298
  "Torso",
32299
32299
  "RightArm",
32300
32300
  "LeftArm",
32301
32301
  "LeftLeg",
32302
32302
  "RightLeg",
32303
32303
  "Package",
32304
- "",
32304
+ "YouTubeVideo",
32305
32305
  "GamePass",
32306
+ "App",
32306
32307
  "",
32307
- "",
32308
- "",
32308
+ "Code",
32309
32309
  "Plugin",
32310
- "",
32310
+ "SolidModel",
32311
32311
  "MeshPart",
32312
32312
  "HairAccessory",
32313
32313
  "FaceAccessory",
@@ -32325,13 +32325,13 @@ const AssetTypes = [
32325
32325
  "SwimAnimation",
32326
32326
  "WalkAnimation",
32327
32327
  "PoseAnimation",
32328
- "EarAccessory",
32329
- "EyeAccessory",
32330
32328
  "",
32331
32329
  "",
32330
+ "LocalizationTableManifest",
32331
+ "LocalizationTableTranslation",
32332
32332
  "EmoteAnimation",
32333
32333
  "Video",
32334
- "",
32334
+ "TexturePack",
32335
32335
  "TShirtAccessory",
32336
32336
  "ShirtAccessory",
32337
32337
  "PantsAccessory",
@@ -32342,24 +32342,26 @@ const AssetTypes = [
32342
32342
  "RightShoeAccessory",
32343
32343
  "DressSkirtAccessory",
32344
32344
  "FontFamily",
32345
- "",
32346
- "",
32345
+ "FontFace",
32346
+ "MeshHiddenSurfaceRemoval",
32347
32347
  "EyebrowAccessory",
32348
32348
  "EyelashAccessory",
32349
32349
  "MoodAnimation",
32350
32350
  "DynamicHead",
32351
32351
  //79
32352
- "",
32353
- "",
32354
- "",
32355
- "",
32356
- "",
32357
- "",
32358
- "",
32359
- "",
32352
+ "CodeSnippet",
32353
+ "AdsVideo",
32354
+ "OtaUpdate",
32355
+ "Screenshot",
32356
+ "RuntimePropertySet",
32357
+ "StorePreviewVideo",
32358
+ "GamePreviewVideo",
32359
+ "CreatorExperienceConfig",
32360
32360
  "FaceMakeup",
32361
32361
  "LipMakeup",
32362
- "EyeMakeup"
32362
+ "EyeMakeup",
32363
+ "VoxelFragment",
32364
+ "AvatarBackground"
32363
32365
  ];
32364
32366
  const WearableAssetTypes = [
32365
32367
  "TShirt",
@@ -43762,14 +43764,19 @@ class _TextureComposer {
43762
43764
  }
43763
43765
  }
43764
43766
  const TextureComposer = new _TextureComposer(1, 1);
43765
- const vertexShader$5 = `
43767
+ const vertexShader$5 = (
43768
+ /*glsl*/
43769
+ `
43766
43770
  varying vec2 vUv;
43767
43771
  void main() {
43768
43772
  vUv = uv;
43769
43773
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
43770
43774
  }
43771
- `;
43772
- const fragmentShader$5 = `
43775
+ `
43776
+ );
43777
+ const fragmentShader$5 = (
43778
+ /*glsl*/
43779
+ `
43773
43780
  uniform sampler2D uTexture;
43774
43781
  varying vec2 vUv;
43775
43782
  void main() {
@@ -43777,7 +43784,8 @@ void main() {
43777
43784
  vec4 texColor = texture2D(uTexture, vUv);
43778
43785
  gl_FragColor = texColor;
43779
43786
  }
43780
- `;
43787
+ `
43788
+ );
43781
43789
  const Shader_TextureComposer_Flat = new ShaderMaterial({
43782
43790
  uniforms: {
43783
43791
  uTexture: { value: void 0 }
@@ -43787,7 +43795,9 @@ const Shader_TextureComposer_Flat = new ShaderMaterial({
43787
43795
  depthWrite: false,
43788
43796
  transparent: true
43789
43797
  });
43790
- const vertexShader$4 = `
43798
+ const vertexShader$4 = (
43799
+ /*glsl*/
43800
+ `
43791
43801
  uniform vec2 uOffset;
43792
43802
  uniform vec2 uSize;
43793
43803
  varying vec2 vUv;
@@ -43796,8 +43806,11 @@ void main() {
43796
43806
  vec2 mapUv = vec2(uv.x * uSize.x + uOffset.x, uv.y * uSize.y + uOffset.y);
43797
43807
  gl_Position = vec4(mapUv.x * 2.0 - 1.0, mapUv.y * 2.0 - 1.0, 0.0, 1.0);
43798
43808
  }
43799
- `;
43800
- const fragmentShader$4 = `
43809
+ `
43810
+ );
43811
+ const fragmentShader$4 = (
43812
+ /*glsl*/
43813
+ `
43801
43814
  uniform sampler2D uTexture;
43802
43815
  varying vec2 vUv;
43803
43816
  void main() {
@@ -43805,7 +43818,8 @@ void main() {
43805
43818
  vec4 texColor = texture2D(uTexture, vUv);
43806
43819
  gl_FragColor = texColor;
43807
43820
  }
43808
- `;
43821
+ `
43822
+ );
43809
43823
  const Shader_TextureComposer_FullscreenQuad = new ShaderMaterial({
43810
43824
  uniforms: {
43811
43825
  uTexture: { value: void 0 },
@@ -43817,17 +43831,23 @@ const Shader_TextureComposer_FullscreenQuad = new ShaderMaterial({
43817
43831
  depthWrite: false,
43818
43832
  transparent: true
43819
43833
  });
43820
- const vertexShader$3 = `
43834
+ const vertexShader$3 = (
43835
+ /*glsl*/
43836
+ `
43821
43837
  void main() {
43822
43838
  gl_Position = vec4(uv.x * 2.0 - 1.0, uv.y * 2.0 - 1.0, 0.0, 1.0);
43823
43839
  }
43824
- `;
43825
- const fragmentShader$3 = `
43840
+ `
43841
+ );
43842
+ const fragmentShader$3 = (
43843
+ /*glsl*/
43844
+ `
43826
43845
  uniform vec3 uColor;
43827
43846
  void main() {
43828
43847
  gl_FragColor = vec4(uColor, 1.0);
43829
43848
  }
43830
- `;
43849
+ `
43850
+ );
43831
43851
  const Shader_TextureComposer_FullscreenQuad_Color = new ShaderMaterial({
43832
43852
  uniforms: {
43833
43853
  uColor: { value: new Color(0, 0, 0) }
@@ -43837,17 +43857,23 @@ const Shader_TextureComposer_FullscreenQuad_Color = new ShaderMaterial({
43837
43857
  depthWrite: false,
43838
43858
  transparent: true
43839
43859
  });
43840
- const vertexShader$2 = `
43860
+ const vertexShader$2 = (
43861
+ /*glsl*/
43862
+ `
43841
43863
  void main() {
43842
43864
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
43843
43865
  }
43844
- `;
43845
- const fragmentShader$2 = `
43866
+ `
43867
+ );
43868
+ const fragmentShader$2 = (
43869
+ /*glsl*/
43870
+ `
43846
43871
  uniform vec3 uColor;
43847
43872
  void main() {
43848
43873
  gl_FragColor = vec4(uColor, 1.0);
43849
43874
  }
43850
- `;
43875
+ `
43876
+ );
43851
43877
  const Shader_TextureComposer_Flat_Color = new ShaderMaterial({
43852
43878
  uniforms: {
43853
43879
  uColor: { value: new Color(0, 0, 0) }
@@ -43857,7 +43883,9 @@ const Shader_TextureComposer_Flat_Color = new ShaderMaterial({
43857
43883
  depthWrite: false,
43858
43884
  transparent: true
43859
43885
  });
43860
- const vertexShader$1 = `
43886
+ const vertexShader$1 = (
43887
+ /*glsl*/
43888
+ `
43861
43889
  uniform mat4 uTextureProjMat;
43862
43890
 
43863
43891
  varying vec2 vUv;
@@ -43870,8 +43898,11 @@ void main() {
43870
43898
  vNormal = normalize(normalMatrix * normal);
43871
43899
  gl_Position = vec4(uv.x * 2.0 - 1.0, uv.y * 2.0 - 1.0, 0.0, 1.0);
43872
43900
  }
43873
- `;
43874
- const fragmentShader$1 = `
43901
+ `
43902
+ );
43903
+ const fragmentShader$1 = (
43904
+ /*glsl*/
43905
+ `
43875
43906
  uniform sampler2D uTexture;
43876
43907
  uniform vec3 uDecalNormal;
43877
43908
 
@@ -43897,7 +43928,8 @@ void main() {
43897
43928
  vec4 texColor = texture2D(uTexture, vTextureProjCoord);
43898
43929
  gl_FragColor = texColor;
43899
43930
  }
43900
- `;
43931
+ `
43932
+ );
43901
43933
  const Shader_TextureComposer_Decal = new ShaderMaterial({
43902
43934
  uniforms: {
43903
43935
  uTexture: { value: void 0 },
@@ -43909,7 +43941,9 @@ const Shader_TextureComposer_Decal = new ShaderMaterial({
43909
43941
  depthWrite: false,
43910
43942
  transparent: true
43911
43943
  });
43912
- const vertexShader = `
43944
+ const vertexShader = (
43945
+ /*glsl*/
43946
+ `
43913
43947
  uniform vec2 uOffset;
43914
43948
  uniform vec2 uSize;
43915
43949
  varying vec2 vUv;
@@ -43918,10 +43952,22 @@ void main() {
43918
43952
  vec2 mapUv = vec2(uv.x * uSize.x + uOffset.x, uv.y * uSize.y + uOffset.y);
43919
43953
  gl_Position = vec4(mapUv.x * 2.0 - 1.0, mapUv.y * 2.0 - 1.0, 0.0, 1.0);
43920
43954
  }
43921
- `;
43922
- const fragmentShader = `
43955
+ `
43956
+ );
43957
+ const fragmentShader = (
43958
+ /*glsl*/
43959
+ `
43923
43960
  uniform sampler2D uTexture;
43924
43961
  varying vec2 vUv;
43962
+
43963
+ vec3 sRGBToLinear(vec3 color) {
43964
+ return mix(
43965
+ color / 12.92,
43966
+ pow((color + 0.055) / 1.055, vec3(2.4)),
43967
+ step(0.04045, color)
43968
+ );
43969
+ }
43970
+
43925
43971
  void main() {
43926
43972
  //sample the original render texture result
43927
43973
  vec4 texColor = texture2D(uTexture, vUv);
@@ -43931,9 +43977,10 @@ void main() {
43931
43977
  }
43932
43978
 
43933
43979
  //convert to linear
43934
- gl_FragColor = vec4(pow(texColor.rgb, vec3(2.2)), texColor.a);
43980
+ gl_FragColor = vec4(sRGBToLinear(texColor.rgb), texColor.a);
43935
43981
  }
43936
- `;
43982
+ `
43983
+ );
43937
43984
  const Shader_TextureComposer_Gamma = new ShaderMaterial({
43938
43985
  uniforms: {
43939
43986
  uTexture: { value: void 0 },
@@ -49381,7 +49428,9 @@ const __vite_glob_0_0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.def
49381
49428
  __proto__: null,
49382
49429
  AttachmentDesc
49383
49430
  }, Symbol.toStringTag, { value: "Module" }));
49384
- const particle_vertexShader = `
49431
+ const particle_vertexShader = (
49432
+ /*glsl*/
49433
+ `
49385
49434
  attribute vec3 instanceColor;
49386
49435
  attribute vec3 instanceSeedTime;
49387
49436
  attribute float instanceOpacity;
@@ -49406,13 +49455,18 @@ void main() {
49406
49455
 
49407
49456
  vec4 modelViewPosition = modelViewMatrix * instanceMatrix * vec4(position, 1.0);
49408
49457
 
49458
+ //offset position toward camera
49409
49459
  vec3 viewDir = normalize(modelViewPosition.xyz);
49410
49460
  modelViewPosition.xyz += viewDir * -uZOffset;
49411
49461
 
49412
49462
  gl_Position = projectionMatrix * modelViewPosition;
49413
49463
  }
49414
- `;
49415
- const particle_fragmentShader = `
49464
+ `
49465
+ );
49466
+ const particle_fragmentShader = (
49467
+ /*glsl*/
49468
+ `
49469
+ //artibutes
49416
49470
  varying vec2 vUv;
49417
49471
  varying vec3 vInstanceColor;
49418
49472
  varying float vInstanceOpacity;
@@ -49420,12 +49474,25 @@ varying vec3 vInstanceSeedTime;
49420
49474
  varying vec2 vFlipbookUv0;
49421
49475
  varying vec2 vFlipbookUv1;
49422
49476
 
49477
+ //textures
49423
49478
  uniform sampler2D uColorMap;
49424
49479
  uniform sampler2D uAlphaMap;
49425
49480
  uniform sampler2D uMap;
49481
+
49482
+ //uniforms
49483
+ uniform float uLightInfluence;
49426
49484
  uniform float uOpacity;
49427
49485
  uniform vec2 uFlipbookSize;
49428
49486
 
49487
+ //light uniforms
49488
+ struct DirectionalLight {
49489
+ vec3 direction;
49490
+ vec3 color;
49491
+ };
49492
+ uniform DirectionalLight directionalLights[NUM_DIR_LIGHTS];
49493
+
49494
+ uniform vec3 ambientLightColor;
49495
+
49429
49496
  void main() {
49430
49497
  float seed = vInstanceSeedTime.x;
49431
49498
  float time = vInstanceSeedTime.y;
@@ -49453,12 +49520,25 @@ void main() {
49453
49520
  vec4 finalColor = opacityColor;
49454
49521
  finalColor.rgb = mix(opacityColor.rgb, opacityColor.rgb * colorTex.rgb, colorTex.a);
49455
49522
 
49523
+ // Apply lighting
49524
+ vec3 light = ambientLightColor;
49525
+ #if NUM_DIR_LIGHTS > 0
49526
+ for (int i = 0; i < NUM_DIR_LIGHTS; i++) {
49527
+ light += directionalLights[i].color;
49528
+ }
49529
+ #endif
49530
+
49531
+ finalColor = vec4(mix(finalColor.rgb, finalColor.rgb * light, uLightInfluence), finalColor.a);
49532
+
49456
49533
  gl_FragColor = finalColor;
49457
49534
  }
49458
- `;
49535
+ `
49536
+ );
49459
49537
  const particle_fragmentShader_additive = particle_fragmentShader.replace(
49460
49538
  "//#ADDITIVE_INSERT",
49461
- `if (opacityColor.r + opacityColor.g + opacityColor.b <= 0.05) {
49539
+ /*glsl*/
49540
+ `
49541
+ if (opacityColor.r + opacityColor.g + opacityColor.b <= 0.05) {
49462
49542
  discard;
49463
49543
  }`
49464
49544
  );
@@ -49624,6 +49704,7 @@ class EmitterDesc extends DisposableDesc {
49624
49704
  shapeInOut = 0;
49625
49705
  opacity = 1;
49626
49706
  lightEmission = 1;
49707
+ lightInfluence = 0;
49627
49708
  blending = AdditiveBlending;
49628
49709
  color = new ColorSequence();
49629
49710
  size = new NumberSequence();
@@ -49660,7 +49741,7 @@ class EmitterDesc extends DisposableDesc {
49660
49741
  return this.texture === other.texture && this.alphaTexture === other.alphaTexture && this.colorTexture === other.colorTexture && this.rate === other.rate;
49661
49742
  }
49662
49743
  isSame(other) {
49663
- return !this.needsRegeneration(other) && this.lockedToPart === other.lockedToPart && this.lifetime.isSame(other.lifetime) && this.spreadAngle.isSame(other.spreadAngle) && this.speed.isSame(other.speed) && this.rotation.isSame(other.rotation) && this.rotationSpeed.isSame(other.rotationSpeed) && this.localAcceleration.isSame(other.localAcceleration) && this.acceleration.isSame(other.acceleration) && this.drag === other.drag && this.timeScale === other.timeScale && this.orientation === other.orientation && this.zOffset === other.zOffset && this.offset.isSame(other.offset) && this.shapeInOut === other.shapeInOut && this.opacity === other.opacity && this.lightEmission === other.lightEmission && this.blending === other.blending && this.color.isSame(other.color) && this.size.isSame(other.size) && this.squash.isSame(other.squash) && this.transparency.isSame(other.transparency) && this.normalizeSizeKeypointTime === other.normalizeSizeKeypointTime && this.flipbookLayout === other.flipbookLayout && this.flipbookBlendFrames === other.flipbookBlendFrames && this.flipbookFramerate.isSame(other.flipbookFramerate) && this.flipbookMode === other.flipbookMode && this.flipbookSizeX === other.flipbookSizeX && this.flipbookSizeY === other.flipbookSizeY && this.flipbookStartRandom === other.flipbookStartRandom;
49744
+ return !this.needsRegeneration(other) && this.lockedToPart === other.lockedToPart && this.lifetime.isSame(other.lifetime) && this.spreadAngle.isSame(other.spreadAngle) && this.speed.isSame(other.speed) && this.rotation.isSame(other.rotation) && this.rotationSpeed.isSame(other.rotationSpeed) && this.localAcceleration.isSame(other.localAcceleration) && this.acceleration.isSame(other.acceleration) && this.drag === other.drag && this.timeScale === other.timeScale && this.orientation === other.orientation && this.zOffset === other.zOffset && this.offset.isSame(other.offset) && this.shapeInOut === other.shapeInOut && this.opacity === other.opacity && this.lightEmission === other.lightEmission && this.lightInfluence === other.lightInfluence && this.blending === other.blending && this.color.isSame(other.color) && this.size.isSame(other.size) && this.squash.isSame(other.squash) && this.transparency.isSame(other.transparency) && this.normalizeSizeKeypointTime === other.normalizeSizeKeypointTime && this.flipbookLayout === other.flipbookLayout && this.flipbookBlendFrames === other.flipbookBlendFrames && this.flipbookFramerate.isSame(other.flipbookFramerate) && this.flipbookMode === other.flipbookMode && this.flipbookSizeX === other.flipbookSizeX && this.flipbookSizeY === other.flipbookSizeY && this.flipbookStartRandom === other.flipbookStartRandom;
49664
49745
  }
49665
49746
  fromEmitterDesc(other) {
49666
49747
  this.lockedToPart = other.lockedToPart;
@@ -49680,6 +49761,7 @@ class EmitterDesc extends DisposableDesc {
49680
49761
  this.shapeInOut = other.shapeInOut;
49681
49762
  this.opacity = other.opacity;
49682
49763
  this.lightEmission = other.lightEmission;
49764
+ this.lightInfluence = other.lightInfluence;
49683
49765
  this.blending = other.blending;
49684
49766
  this.color = other.color.clone();
49685
49767
  this.size = other.size.clone();
@@ -49777,16 +49859,21 @@ class EmitterDesc extends DisposableDesc {
49777
49859
  side: DoubleSide,
49778
49860
  blending: this.blending,
49779
49861
  opacity: this.opacity,
49862
+ lights: true,
49780
49863
  vertexShader: particle_vertexShader,
49781
49864
  fragmentShader: this.blending === AdditiveBlending ? particle_fragmentShader_additive : particle_fragmentShader,
49782
- uniforms: {
49783
- uMap: { value: mapToUse },
49784
- uAlphaMap: { value: alphaMapToUse },
49785
- uColorMap: { value: colorMapToUse },
49786
- uOpacity: { value: this.opacity },
49787
- uZOffset: { value: this.zOffset },
49788
- uFlipbookSize: { value: new Vector2$1(1 / flipbookSizeX, 1 / flipbookSizeY) }
49789
- }
49865
+ uniforms: UniformsUtils.merge([
49866
+ UniformsLib.lights,
49867
+ {
49868
+ uMap: { value: mapToUse },
49869
+ uAlphaMap: { value: alphaMapToUse },
49870
+ uColorMap: { value: colorMapToUse },
49871
+ uLightInfluence: { value: this.lightInfluence },
49872
+ uOpacity: { value: this.opacity },
49873
+ uZOffset: { value: this.zOffset },
49874
+ uFlipbookSize: { value: new Vector2$1(1 / flipbookSizeX, 1 / flipbookSizeY) }
49875
+ }
49876
+ ])
49790
49877
  });
49791
49878
  this.resultMaterial = material;
49792
49879
  this.result = new InstancedMesh(geometry, material, this.maxCount);
@@ -49879,7 +49966,9 @@ class EmitterDesc extends DisposableDesc {
49879
49966
  if (this.resultMaterial) {
49880
49967
  this.resultMaterial.uniforms.uOpacity.value = this.opacity;
49881
49968
  this.resultMaterial.uniforms.uZOffset.value = this.zOffset;
49969
+ this.resultMaterial.uniforms.uLightInfluence.value = this.lightInfluence;
49882
49970
  this.resultMaterial.uniforms.uFlipbookSize.value.set(1 / flipbookSizeX, 1 / flipbookSizeY);
49971
+ this.resultMaterial.needsUpdate = true;
49883
49972
  }
49884
49973
  for (let i = 0; i < this.result.count; i++) {
49885
49974
  const particle = this.particles[i];
@@ -50061,6 +50150,7 @@ class EmitterGroupDesc extends RenderDesc {
50061
50150
  if (child.HasProperty("Transparency")) emitterDesc.transparency = child.Prop("Transparency");
50062
50151
  if (child.HasProperty("LightEmission")) emitterDesc.lightEmission = child.Prop("LightEmission");
50063
50152
  emitterDesc.blending = emitterDesc.lightEmission === 0 ? NormalBlending : AdditiveBlending;
50153
+ if (child.HasProperty("LightInfluence")) emitterDesc.lightInfluence = child.Prop("LightInfluence");
50064
50154
  if (child.HasProperty("ZOffset")) emitterDesc.zOffset = child.Prop("ZOffset");
50065
50155
  if (child.HasProperty("Orientation")) emitterDesc.orientation = child.Prop("Orientation");
50066
50156
  if (child.HasProperty("LockedToPart")) emitterDesc.lockedToPart = child.Prop("LockedToPart");
@@ -50179,7 +50269,8 @@ class EmitterGroupDesc extends RenderDesc {
50179
50269
  lifetime: new NumberRange(5, 5),
50180
50270
  timeScale,
50181
50271
  color: ColorSequence.fromColor(color),
50182
- blending: NormalBlending
50272
+ blending: NormalBlending,
50273
+ lightInfluence: 1
50183
50274
  }));
50184
50275
  }
50185
50276
  dispose(renderer, scene) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roavatar-renderer",
3
- "version": "1.5.7",
3
+ "version": "1.5.8",
4
4
  "description": "A renderer for Roblox avatars, used by the RoAvatar extension.",
5
5
  "author": "steinan",
6
6
  "type": "module",