@galacean/effects-core 2.1.0-alpha.3 → 2.1.0-alpha.5

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.
@@ -150,10 +150,6 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
150
150
  * 合成的相机对象
151
151
  */
152
152
  readonly camera: Camera;
153
- /**
154
- * 合成全局时间
155
- */
156
- globalTime: number;
157
153
  /**
158
154
  * 后处理渲染配置
159
155
  */
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.1.0-alpha.3
6
+ * Version: v2.1.0-alpha.5
7
7
  */
8
8
 
9
9
  'use strict';
@@ -4255,6 +4255,9 @@ var MaterialBlending;
4255
4255
  /**
4256
4256
  * 自发光
4257
4257
  */ RenderMode3D["emissive"] = "emissive";
4258
+ /**
4259
+ * 漫反射
4260
+ */ RenderMode3D["diffuse"] = "diffuse";
4258
4261
  })(RenderMode3D || (RenderMode3D = {}));
4259
4262
 
4260
4263
  var TextOverflow;
@@ -10307,10 +10310,11 @@ var BezierCurve = /*#__PURE__*/ function(ValueGetter) {
10307
10310
  timeEnd: Number(e.x)
10308
10311
  };
10309
10312
  }
10313
+ this.keyTimeData = Object.keys(this.curveMap);
10310
10314
  };
10311
10315
  _proto.getValue = function getValue(time) {
10312
10316
  var result = 0;
10313
- var keyTimeData = Object.keys(this.curveMap);
10317
+ var keyTimeData = this.keyTimeData;
10314
10318
  var keyTimeStart = this.curveMap[keyTimeData[0]].timeStart;
10315
10319
  var keyTimeEnd = this.curveMap[keyTimeData[keyTimeData.length - 1]].timeEnd;
10316
10320
  // const keyTimeStart = Number(keyTimeData[0].split('&')[0]);
@@ -11587,7 +11591,7 @@ var valueDefine = "#ifdef SHADER_VERTEX\n#define CURVE_VALUE_TEXTURE uVCurveValu
11587
11591
 
11588
11592
  var screenMeshVert = "precision highp float;attribute vec2 aPos;varying vec2 uv;void main(){gl_Position=vec4(aPos,0.,1.0);uv=(aPos+vec2(1.0))/2.;}";
11589
11593
 
11590
- var colorGradingFrag = "precision highp float;\n#define HALF_MAX 60000.0\n#define ACEScc_MIDGRAY 0.4135884\nvarying vec2 uv;uniform sampler2D _GaussianTex;uniform sampler2D _SceneTex;uniform float _BloomIntensity;uniform float _Brightness;uniform float _Saturation;uniform float _Contrast;uniform bool _UseBloom;uniform bool _UseToneMapping;uniform vec3 _VignetteColor;uniform vec2 _VignetteCenter;uniform float _VignetteIntensity;uniform float _VignetteSmoothness;uniform float _VignetteRoundness;mat3 LinearToACES=mat3(0.59719,0.07600,0.02840,0.35458,0.90834,0.13383,0.04823,0.01566,0.83777);mat3 ACESToLinear=mat3(1.60475,-0.10208,-0.00327,-0.53108,1.10813,-0.07276,-0.07367,-0.00605,1.07602);float log10(float x){return log(x)/log(10.0);}vec3 log10(vec3 v){return vec3(log10(v.x),log10(v.y),log10(v.z));}vec3 LinearToLogC(vec3 x){return 0.244161*log10(5.555556*x+0.047996)+0.386036;}vec3 LogCToLinear(vec3 x){return(pow(vec3(10.0),(x-0.386036)/0.244161)-0.047996)/5.555556;}vec3 rrt_and_odt_fit(vec3 col){vec3 a=col*(col+0.0245786)-0.000090537;vec3 b=col*(0.983729*col+0.4329510)+0.238081;return a/b;}vec3 ACESToneMapping(vec3 col){vec3 aces=LinearToACES*col;aces=rrt_and_odt_fit(aces);col=ACESToLinear*aces;return col;}vec3 LinearToSrgb(vec3 c){return mix(1.055*pow(c,vec3(1./2.4))-0.055,12.92*c,step(c,vec3(0.0031308)));}vec3 GammaCorrection(vec3 c){return pow(c,vec3(1.0/2.2));}vec3 ApplyVignette(vec3 inputColor,vec2 uv,vec2 center,float intensity,float roundness,float smoothness,vec3 color){vec2 dist=abs(uv-center)*intensity;dist.x*=roundness;float vfactor=pow(clamp((1.0-dot(dist,dist)),0.0,1.0),smoothness);return inputColor*mix(color,vec3(1.0),vfactor);}void main(){vec4 hdrColor=texture2D(_SceneTex,uv);hdrColor*=hdrColor.a;hdrColor.rgb=pow(hdrColor.rgb,vec3(2.2));vec3 finalColor=hdrColor.rgb;if(_UseBloom){vec4 bloomColor=texture2D(_GaussianTex,uv);bloomColor.rgb*=_BloomIntensity;finalColor+=bloomColor.rgb;}if(_VignetteIntensity>0.0){finalColor=ApplyVignette(finalColor,uv,_VignetteCenter,_VignetteIntensity,_VignetteRoundness,_VignetteSmoothness,_VignetteColor);}finalColor=finalColor*_Brightness;vec3 colorLog=LinearToLogC(finalColor);colorLog=(colorLog-ACEScc_MIDGRAY)*_Contrast+ACEScc_MIDGRAY;finalColor=LogCToLinear(colorLog);finalColor=max(finalColor,0.0);float luminance=0.2125*finalColor.r+0.7154*finalColor.g+0.0721*finalColor.b;vec3 luminanceColor=vec3(luminance,luminance,luminance);finalColor=(finalColor-luminanceColor)*_Saturation+luminanceColor;finalColor=max(finalColor,0.0);if(_UseToneMapping){finalColor=max(vec3(0.0),ACESToneMapping(finalColor));}gl_FragColor=vec4(clamp(GammaCorrection(finalColor),0.0,1.0),1.0);}";
11594
+ var colorGradingFrag = "precision highp float;\n#define HALF_MAX 60000.0\n#define ACEScc_MIDGRAY 0.4135884\nvarying vec2 uv;uniform sampler2D _GaussianTex;uniform sampler2D _SceneTex;uniform float _BloomIntensity;uniform float _Brightness;uniform float _Saturation;uniform float _Contrast;uniform bool _UseBloom;uniform bool _UseToneMapping;uniform vec3 _VignetteColor;uniform vec2 _VignetteCenter;uniform float _VignetteIntensity;uniform float _VignetteSmoothness;uniform float _VignetteRoundness;mat3 LinearToACES=mat3(0.59719,0.07600,0.02840,0.35458,0.90834,0.13383,0.04823,0.01566,0.83777);mat3 ACESToLinear=mat3(1.60475,-0.10208,-0.00327,-0.53108,1.10813,-0.07276,-0.07367,-0.00605,1.07602);float log10(float x){return log(x)/log(10.0);}vec3 log10(vec3 v){return vec3(log10(v.x),log10(v.y),log10(v.z));}vec3 LinearToLogC(vec3 x){return 0.244161*log10(5.555556*x+0.047996)+0.386036;}vec3 LogCToLinear(vec3 x){return(pow(vec3(10.0),(x-0.386036)/0.244161)-0.047996)/5.555556;}vec3 rrt_and_odt_fit(vec3 col){vec3 a=col*(col+0.0245786)-0.000090537;vec3 b=col*(0.983729*col+0.4329510)+0.238081;return a/b;}vec3 ACESToneMapping(vec3 col){vec3 aces=LinearToACES*col;aces=rrt_and_odt_fit(aces);col=ACESToLinear*aces;return col;}vec3 LinearToSrgb(vec3 c){return mix(1.055*pow(c,vec3(1./2.4))-0.055,12.92*c,step(c,vec3(0.0031308)));}vec3 GammaCorrection(vec3 c){return pow(c,vec3(1.0/2.2));}vec3 ApplyVignette(vec3 inputColor,vec2 uv,vec2 center,float intensity,float roundness,float smoothness,vec3 color){vec2 dist=abs(uv-center)*intensity;dist.x*=roundness;float vfactor=pow(clamp((1.0-dot(dist,dist)),0.0,1.0),smoothness);return inputColor*mix(color,vec3(1.0),vfactor);}void main(){vec4 hdrColor=texture2D(_SceneTex,uv);hdrColor.rgb=pow(hdrColor.rgb,vec3(2.2));vec3 finalColor=hdrColor.rgb;if(_UseBloom){vec4 bloomColor=texture2D(_GaussianTex,uv);bloomColor.rgb*=_BloomIntensity;finalColor+=bloomColor.rgb;}if(_VignetteIntensity>0.0){finalColor=ApplyVignette(finalColor,uv,_VignetteCenter,_VignetteIntensity,_VignetteRoundness,_VignetteSmoothness,_VignetteColor);}finalColor=finalColor*_Brightness;vec3 colorLog=LinearToLogC(finalColor);colorLog=(colorLog-ACEScc_MIDGRAY)*_Contrast+ACEScc_MIDGRAY;finalColor=LogCToLinear(colorLog);finalColor=max(finalColor,0.0);float luminance=0.2125*finalColor.r+0.7154*finalColor.g+0.0721*finalColor.b;vec3 luminanceColor=vec3(luminance,luminance,luminance);finalColor=(finalColor-luminanceColor)*_Saturation+luminanceColor;finalColor=max(finalColor,0.0);if(_UseToneMapping){finalColor=max(vec3(0.0),ACESToneMapping(finalColor));}float alpha=min(hdrColor.a,1.0);gl_FragColor=vec4(clamp(GammaCorrection(finalColor),0.0,1.0),alpha);}";
11591
11595
 
11592
11596
  var gaussianDown_frag = "precision highp float;varying vec2 uv;uniform sampler2D _MainTex;uniform vec2 _TextureSize;float GaussWeight2D(float x,float y,float sigma){float PI=3.14159265358;float E=2.71828182846;float sigma_2=pow(sigma,2.0);float a=-(x*x+y*y)/(2.0*sigma_2);return pow(E,a)/(2.0*PI*sigma_2);}vec3 GaussNxN(sampler2D tex,vec2 uv,vec2 stride,float sigma){vec3 color=vec3(0.,0.,0.);const int r=5/2;float weight=0.0;for(int i=-r;i<=r;i++){for(int j=-r;j<=r;j++){float w=GaussWeight2D(float(i),float(j),sigma);vec2 coord=uv+vec2(i,j)*stride;color+=texture2D(tex,coord).rgb*w;weight+=w;}}color/=weight;return color;}void main(){vec4 mainColor=texture2D(_MainTex,uv);vec3 color=mainColor.rgb;color=GaussNxN(_MainTex,uv,1.0/_TextureSize,1.0);gl_FragColor=vec4(color,1.0);}";
11593
11597
 
@@ -18074,10 +18078,10 @@ var ParticleMesh = /*#__PURE__*/ function() {
18074
18078
  };
18075
18079
  _proto.onUpdate = function onUpdate(dt) {
18076
18080
  var aPosArray = this.geometry.getAttributeData("aPos"); // vector3
18077
- var particleCount = Math.ceil(aPosArray.length / 12);
18078
- this.applyTranslation(particleCount, dt);
18079
- this.applyRotation(particleCount, dt);
18080
- this.applyLinearMove(particleCount, dt);
18081
+ var vertexCount = Math.ceil(aPosArray.length / 12);
18082
+ this.applyTranslation(vertexCount, dt);
18083
+ this.applyRotation(vertexCount, dt);
18084
+ this.applyLinearMove(vertexCount, dt);
18081
18085
  };
18082
18086
  _proto.minusTime = function minusTime(time) {
18083
18087
  var aOffset = this.geometry.getAttributeData("aOffset");
@@ -18111,7 +18115,9 @@ var ParticleMesh = /*#__PURE__*/ function() {
18111
18115
  aPos: new Float32Array(48),
18112
18116
  aRot: new Float32Array(32),
18113
18117
  aOffset: new Float32Array(16),
18114
- aTranslation: new Float32Array(12)
18118
+ aTranslation: new Float32Array(12),
18119
+ aLinearMove: new Float32Array(12),
18120
+ aRotation0: new Float32Array(36)
18115
18121
  };
18116
18122
  var useSprite = this.useSprite;
18117
18123
  if (useSprite) {
@@ -18220,13 +18226,13 @@ var ParticleMesh = /*#__PURE__*/ function() {
18220
18226
  geometry.setDrawCount(this.particleCount * 6);
18221
18227
  }
18222
18228
  };
18223
- _proto.applyTranslation = function applyTranslation(particleCount, deltaTime) {
18229
+ _proto.applyTranslation = function applyTranslation(vertexCount, deltaTime) {
18224
18230
  var localTime = this.time;
18225
18231
  var aTranslationArray = this.geometry.getAttributeData("aTranslation");
18226
18232
  var aVelArray = this.geometry.getAttributeData("aVel"); // vector3
18227
18233
  var aOffsetArray = this.geometry.getAttributeData("aOffset");
18228
- if (aTranslationArray.length < particleCount * 3) {
18229
- aTranslationArray = this.expandArray(aTranslationArray, particleCount * 3);
18234
+ if (aTranslationArray.length < vertexCount * 3) {
18235
+ aTranslationArray = this.expandArray(aTranslationArray, vertexCount * 3);
18230
18236
  }
18231
18237
  // const velocity = this.cachedVelocity;
18232
18238
  var velocityX = 0;
@@ -18234,7 +18240,7 @@ var ParticleMesh = /*#__PURE__*/ function() {
18234
18240
  var velocityZ = 0;
18235
18241
  var uAcceleration = this.mesh.material.getVector4("uAcceleration");
18236
18242
  var uGravityModifierValue = this.mesh.material.getVector4("uGravityModifierValue");
18237
- for(var i = 0; i < particleCount; i++){
18243
+ for(var i = 0; i < vertexCount; i += 4){
18238
18244
  var velOffset = i * 12 + 3;
18239
18245
  velocityX = aVelArray[velOffset];
18240
18246
  velocityY = aVelArray[velOffset + 1];
@@ -18266,24 +18272,36 @@ var ParticleMesh = /*#__PURE__*/ function() {
18266
18272
  var aTranslationOffset = i * 3;
18267
18273
  if (aOffsetArray[i * 4 + 2] < localTime) {
18268
18274
  // const translation = velocity.multiply(deltaTime / 1000);
18269
- aTranslationArray[aTranslationOffset] += velocityX * (deltaTime / 1000);
18270
- aTranslationArray[aTranslationOffset + 1] += velocityY * (deltaTime / 1000);
18271
- aTranslationArray[aTranslationOffset + 2] += velocityZ * (deltaTime / 1000);
18275
+ var aTranslationX = velocityX * (deltaTime / 1000);
18276
+ var aTranslationY = velocityY * (deltaTime / 1000);
18277
+ var aTranslationZ = velocityZ * (deltaTime / 1000);
18278
+ aTranslationArray[aTranslationOffset] += aTranslationX;
18279
+ aTranslationArray[aTranslationOffset + 1] += aTranslationY;
18280
+ aTranslationArray[aTranslationOffset + 2] += aTranslationZ;
18281
+ aTranslationArray[aTranslationOffset + 3] += aTranslationX;
18282
+ aTranslationArray[aTranslationOffset + 4] += aTranslationY;
18283
+ aTranslationArray[aTranslationOffset + 5] += aTranslationZ;
18284
+ aTranslationArray[aTranslationOffset + 6] += aTranslationX;
18285
+ aTranslationArray[aTranslationOffset + 7] += aTranslationY;
18286
+ aTranslationArray[aTranslationOffset + 8] += aTranslationZ;
18287
+ aTranslationArray[aTranslationOffset + 9] += aTranslationX;
18288
+ aTranslationArray[aTranslationOffset + 10] += aTranslationY;
18289
+ aTranslationArray[aTranslationOffset + 11] += aTranslationZ;
18272
18290
  }
18273
18291
  }
18274
18292
  this.geometry.setAttributeData("aTranslation", aTranslationArray);
18275
18293
  };
18276
- _proto.applyRotation = function applyRotation(particleCount, deltaTime) {
18294
+ _proto.applyRotation = function applyRotation(vertexCount, deltaTime) {
18277
18295
  var aRotationArray = this.geometry.getAttributeData("aRotation0");
18278
18296
  var aOffsetArray = this.geometry.getAttributeData("aOffset");
18279
18297
  var aRotArray = this.geometry.getAttributeData("aRot"); // vector3
18280
18298
  var aSeedArray = this.geometry.getAttributeData("aSeed"); // float
18281
18299
  var localTime = this.time;
18282
18300
  var aRotationMatrix = this.cachedRotationMatrix;
18283
- if (aRotationArray.length < particleCount * 9) {
18284
- aRotationArray = this.expandArray(aRotationArray, particleCount * 9);
18301
+ if (aRotationArray.length < vertexCount * 9) {
18302
+ aRotationArray = this.expandArray(aRotationArray, vertexCount * 9);
18285
18303
  }
18286
- for(var i = 0; i < particleCount; i++){
18304
+ for(var i = 0; i < vertexCount; i += 4){
18287
18305
  var time = localTime - aOffsetArray[i * 4 + 2];
18288
18306
  var duration = aOffsetArray[i * 4 + 3];
18289
18307
  var life = clamp$1(time / duration, 0.0, 1.0);
@@ -18361,20 +18379,25 @@ var ParticleMesh = /*#__PURE__*/ function() {
18361
18379
  var aRotationOffset = i * 9;
18362
18380
  var matrixArray = aRotationMatrix.elements;
18363
18381
  aRotationArray.set(matrixArray, aRotationOffset);
18382
+ if (i + 4 <= vertexCount) {
18383
+ aRotationArray.set(matrixArray, aRotationOffset + 9);
18384
+ aRotationArray.set(matrixArray, aRotationOffset + 18);
18385
+ aRotationArray.set(matrixArray, aRotationOffset + 27);
18386
+ }
18364
18387
  }
18365
18388
  this.geometry.setAttributeData("aRotation0", aRotationArray);
18366
18389
  };
18367
- _proto.applyLinearMove = function applyLinearMove(particleCount, deltaTime) {
18390
+ _proto.applyLinearMove = function applyLinearMove(vertexCount, deltaTime) {
18368
18391
  var aLinearMoveArray = this.geometry.getAttributeData("aLinearMove");
18369
18392
  var aOffsetArray = this.geometry.getAttributeData("aOffset");
18370
18393
  var aSeedArray = this.geometry.getAttributeData("aSeed"); // float
18371
18394
  var localTime = this.time;
18372
- if (aLinearMoveArray.length < particleCount * 3) {
18373
- aLinearMoveArray = this.expandArray(aLinearMoveArray, particleCount * 3);
18395
+ if (aLinearMoveArray.length < vertexCount * 3) {
18396
+ aLinearMoveArray = this.expandArray(aLinearMoveArray, vertexCount * 3);
18374
18397
  }
18375
18398
  var linearMove = this.cachedLinearMove;
18376
18399
  if (this.linearVelOverLifetime && this.linearVelOverLifetime.enabled) {
18377
- for(var i = 0; i < particleCount; i++){
18400
+ for(var i = 0; i < vertexCount; i += 4){
18378
18401
  var time = localTime - aOffsetArray[i * 4 + 2];
18379
18402
  var duration = aOffsetArray[i * 4 + 3];
18380
18403
  // const life = math.clamp(time / duration, 0.0, 1.0);
@@ -18431,6 +18454,15 @@ var ParticleMesh = /*#__PURE__*/ function() {
18431
18454
  aLinearMoveArray[aLinearMoveOffset] = linearMove.x;
18432
18455
  aLinearMoveArray[aLinearMoveOffset + 1] = linearMove.y;
18433
18456
  aLinearMoveArray[aLinearMoveOffset + 2] = linearMove.z;
18457
+ aLinearMoveArray[aLinearMoveOffset + 3] = linearMove.x;
18458
+ aLinearMoveArray[aLinearMoveOffset + 4] = linearMove.y;
18459
+ aLinearMoveArray[aLinearMoveOffset + 5] = linearMove.z;
18460
+ aLinearMoveArray[aLinearMoveOffset + 6] = linearMove.x;
18461
+ aLinearMoveArray[aLinearMoveOffset + 7] = linearMove.y;
18462
+ aLinearMoveArray[aLinearMoveOffset + 8] = linearMove.z;
18463
+ aLinearMoveArray[aLinearMoveOffset + 9] = linearMove.x;
18464
+ aLinearMoveArray[aLinearMoveOffset + 10] = linearMove.y;
18465
+ aLinearMoveArray[aLinearMoveOffset + 11] = linearMove.z;
18434
18466
  }
18435
18467
  }
18436
18468
  this.geometry.setAttributeData("aLinearMove", aLinearMoveArray);
@@ -21183,6 +21215,7 @@ exports.VFXItem = /*#__PURE__*/ function(EffectsObject) {
21183
21215
  var component = _step.value;
21184
21216
  if (component.enabled && !component.isStartCalled) {
21185
21217
  component.onStart();
21218
+ component.isStartCalled = true;
21186
21219
  }
21187
21220
  }
21188
21221
  for(var _iterator1 = _create_for_of_iterator_helper_loose(this.components), _step1; !(_step1 = _iterator1()).done;){
@@ -25406,7 +25439,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
25406
25439
  }));
25407
25440
  _this.url = scene.url;
25408
25441
  _this.assigned = true;
25409
- _this.globalTime = 0;
25410
25442
  _this.interactive = true;
25411
25443
  _this.handleItemMessage = handleItemMessage;
25412
25444
  _this.createRenderFrame();
@@ -25569,7 +25601,6 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
25569
25601
  * 重置状态函数
25570
25602
  */ _proto.reset = function reset() {
25571
25603
  this.rendererOptions = null;
25572
- this.globalTime = 0;
25573
25604
  this.rootItem.ended = false;
25574
25605
  this.pluginSystem.resetComposition(this, this.renderFrame);
25575
25606
  };
@@ -25607,9 +25638,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
25607
25638
  if (!this.assigned || this.paused) {
25608
25639
  return;
25609
25640
  }
25610
- var time = this.getUpdateTime(deltaTime * this.speed);
25611
- this.globalTime += time;
25612
- this.updateRootComposition();
25641
+ var dt = this.getUpdateTime(deltaTime * this.speed);
25642
+ this.updateRootComposition(dt / 1000);
25613
25643
  this.updateVideo();
25614
25644
  // 更新 model-tree-plugin
25615
25645
  this.updatePluginLoaders(deltaTime);
@@ -25618,8 +25648,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
25618
25648
  this.callAwake(this.rootItem);
25619
25649
  this.rootItem.beginPlay();
25620
25650
  }
25621
- this.sceneTicking.update.tick(time);
25622
- this.sceneTicking.lateUpdate.tick(time);
25651
+ this.sceneTicking.update.tick(dt);
25652
+ this.sceneTicking.lateUpdate.tick(dt);
25623
25653
  this.updateCamera();
25624
25654
  this.prepareRender();
25625
25655
  if (this.shouldDispose()) {
@@ -25760,9 +25790,9 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
25760
25790
  };
25761
25791
  /**
25762
25792
  * 更新主合成组件
25763
- */ _proto.updateRootComposition = function updateRootComposition() {
25793
+ */ _proto.updateRootComposition = function updateRootComposition(deltaTime) {
25764
25794
  if (this.rootComposition.isActiveAndEnabled) {
25765
- var localTime = this.toLocalTime(this.globalTime / 1000);
25795
+ var localTime = this.toLocalTime(this.time + deltaTime);
25766
25796
  this.rootComposition.time = localTime;
25767
25797
  }
25768
25798
  };
@@ -28105,7 +28135,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem, true);
28105
28135
  registerPlugin("particle", ParticleLoader, exports.VFXItem, true);
28106
28136
  registerPlugin("cal", CalculateLoader, exports.VFXItem, true);
28107
28137
  registerPlugin("interact", InteractLoader, exports.VFXItem, true);
28108
- var version = "2.1.0-alpha.3";
28138
+ var version = "2.1.0-alpha.5";
28109
28139
  logger.info("Core version: " + version + ".");
28110
28140
 
28111
28141
  exports.AbstractPlugin = AbstractPlugin;