Forráskód Böngészése

Fixing SimpleMaterial serialization and clone

Added experimental decorators feature to gulpfile
luaacro 9 éve
szülő
commit
672be8dbb6

+ 2 - 1
materialsLibrary/gulpfile.js

@@ -33,7 +33,8 @@ gulp.task('default', ["copyReference"], function () {
                 noExternalResolve: false,
                 target: 'ES5',
                 declarationFiles: true,
-                typescript: require('typescript')
+                typescript: require('typescript'),
+                experimentalDecorators: true
             }));
 
         var js = compilOutput.js;

+ 3 - 12
materialsLibrary/materials/simple/babylon.simpleMaterial.ts

@@ -58,8 +58,10 @@ module BABYLON {
     }
 
     export class SimpleMaterial extends Material {
+        @serializeAsTexture()
         public diffuseTexture: BaseTexture;
 
+        @serialize("diffuseColor")
         public diffuseColor = new Color3(1, 1, 1);
         public disableLighting = false;
 
@@ -344,18 +346,7 @@ module BABYLON {
         }
 
         public clone(name: string): SimpleMaterial {
-            var newMaterial = new SimpleMaterial(name, this.getScene());
-
-            // Base material
-            this.copyTo(newMaterial);
-
-            // Simple material
-            if (this.diffuseTexture && this.diffuseTexture.clone) {
-                newMaterial.diffuseTexture = this.diffuseTexture.clone();
-            }
-
-            newMaterial.diffuseColor = this.diffuseColor.clone();
-            return newMaterial;
+            return SerializationHelper.Clone<SimpleMaterial>(() => new SimpleMaterial(name, this.getScene()), this);
         }
         
         public serialize(): any {