diff options
Diffstat (limited to 'js/helper-classes/RDGE/Materials/FlatMaterial.js')
-rw-r--r-- | js/helper-classes/RDGE/Materials/FlatMaterial.js | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/js/helper-classes/RDGE/Materials/FlatMaterial.js b/js/helper-classes/RDGE/Materials/FlatMaterial.js index 3e3ae25e..e2f23d75 100644 --- a/js/helper-classes/RDGE/Materials/FlatMaterial.js +++ b/js/helper-classes/RDGE/Materials/FlatMaterial.js | |||
@@ -71,10 +71,11 @@ function FlatMaterial() | |||
71 | 71 | ||
72 | this.setProperty = function( prop, value ) | 72 | this.setProperty = function( prop, value ) |
73 | { | 73 | { |
74 | // make sure we have legitimate imput | 74 | // make sure we have legitimate input |
75 | if (this.validateProperty( prop, value )) | 75 | if (this.validateProperty( prop, value )) |
76 | { | 76 | { |
77 | this._color = value.slice(0); | 77 | this._propValues[prop] = value; |
78 | if (this._shader && this._shader.colorMe) | ||
78 | this._shader.colorMe[prop].set(value); | 79 | this._shader.colorMe[prop].set(value); |
79 | } | 80 | } |
80 | } | 81 | } |
@@ -84,7 +85,7 @@ function FlatMaterial() | |||
84 | { | 85 | { |
85 | // this function should be overridden by subclasses | 86 | // this function should be overridden by subclasses |
86 | var exportStr = "material: " + this.getShaderName() + "\n"; | 87 | var exportStr = "material: " + this.getShaderName() + "\n"; |
87 | exportStr = "name: " + this.getName() + "\n"; | 88 | exportStr += "name: " + this.getName() + "\n"; |
88 | 89 | ||
89 | if (this._shader) | 90 | if (this._shader) |
90 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; | 91 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; |
@@ -100,19 +101,35 @@ function FlatMaterial() | |||
100 | var pu = new ParseUtils( importStr ); | 101 | var pu = new ParseUtils( importStr ); |
101 | var material = pu.nextValue( "material: " ); | 102 | var material = pu.nextValue( "material: " ); |
102 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); | 103 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); |
103 | this.setName( pu.nextValue( "material: ") ); | 104 | this.setName( pu.nextValue( "name: ") ); |
104 | var color = pu.nextValue( "color: " ); | 105 | |
106 | var rtnStr; | ||
107 | try | ||
108 | { | ||
109 | var color = eval( "[" + pu.nextValue( "color: " ) + "]" ); | ||
110 | |||
111 | this.setProperty( "color", color); | ||
105 | 112 | ||
106 | var endKey = "endMaterial\n"; | 113 | var endKey = "endMaterial\n"; |
107 | var index = importStr.indexOf( endKey ) + endKey.len; | 114 | var index = importStr.indexOf( endKey ); |
108 | var rtnStr = importStr.substr( index ); | 115 | index += endKey.length; |
116 | rtnStr = importStr.substr( index ); | ||
117 | } | ||
118 | catch (e) | ||
119 | { | ||
120 | throw new Error( "could not import material: " + importStr ); | ||
121 | } | ||
122 | |||
109 | return rtnStr; | 123 | return rtnStr; |
110 | } | 124 | } |
111 | 125 | ||
112 | this.update = function( time ) | 126 | this.update = function( time ) |
113 | { | 127 | { |
114 | } | 128 | } |
129 | |||
115 | } | 130 | } |
131 | // used to create unique names | ||
132 | var flatMaterialCounter = 0; | ||
116 | 133 | ||
117 | /////////////////////////////////////////////////////////////////////////////////////// | 134 | /////////////////////////////////////////////////////////////////////////////////////// |
118 | // RDGE shader | 135 | // RDGE shader |