@@ -146,12 +146,15 @@ func _apply(
146146 if property_name == "shader" or property_name == "render_priority" or property_name .begins_with ("shader_parameter/" ):
147147 target_shader_material .set (property_name , source_shader_material .get (property_name ))
148148
149- shader_meta .factory .call (mmat , variant , material , texture_map , model_path , options . diffuse_color )
149+ shader_meta .factory .call (mmat , variant , material , texture_map , model_path , options )
150150 var transparency : MaterialManager .Transparency = MaterialManager .Transparency .Disabled
151151 if mmat .transparent or options .force_transparent :
152152 transparency = MaterialManager .Transparency .AlphaScissor
153153 target_shader_material .set_shader_parameter ("transparency" , transparency )
154154 target_shader_material .set_shader_parameter ("alpha_scissor_threshold" , 0.5 )
155+ target_shader_material .set_shader_parameter ("emission_enabled" , options .selfillum_enabled )
156+ target_shader_material .set_shader_parameter ("emission_color" , options .selfillum_color if options .selfillum_color else Color (1.0 , 1.0 , 1.0 , 1.0 ))
157+ target_shader_material .set_shader_parameter ("emission_energy" , options .selfillum_energy )
155158
156159
157160func _apply_default_material (
@@ -160,7 +163,7 @@ func _apply_default_material(
160163 material : ShaderMaterial ,
161164 texture_map : TextureMap ,
162165 model_path : String ,
163- diffuse_color : Color ,
166+ options : MaterialManager . MaterialOptions ,
164167) -> void :
165168 var diffuse_texture : String = variant .get_texture_path (texture_map .albedo )
166169 var normalmap_texture : String = variant .get_texture_path (texture_map .normalmap )
@@ -178,7 +181,7 @@ func _apply_default_material(
178181 1.0
179182 ))
180183 else :
181- material .set_shader_parameter ("albedo" , diffuse_color )
184+ material .set_shader_parameter ("albedo" , options . diffuse_color )
182185
183186 if normalmap_texture :
184187 material .set_shader_parameter ("texture_normal" , MaterialManager .load_texture (model_path , normalmap_texture , true ))
@@ -192,14 +195,17 @@ func _apply_default_material(
192195
193196 if variant .has_parameter ("reflection" ):
194197 material .set_shader_parameter ("metallic" , variant .get_parameter ("reflection" ))
198+ material .set_shader_parameter ("emission_enabled" , options .selfillum_enabled )
199+ material .set_shader_parameter ("emission_color" , options .selfillum_color )
200+ material .set_shader_parameter ("emission_energy" , options .selfillum_energy )
195201
196202func _apply_parallax (
197203 mmat : MaszynaMaterial ,
198204 variant : MaszynaMaterial .MaszynaMaterialVariant ,
199205 material : ShaderMaterial ,
200206 texture_map : TextureMap ,
201207 model_path : String ,
202- diffuse_color : Color ,
208+ options : MaterialManager . MaterialOptions ,
203209) -> void :
204210 var diffuse_texture_path : String = variant .get_texture_path (texture_map .albedo )
205211 var normalmap_texture_path : String = variant .get_texture_path (texture_map .normalmap )
@@ -223,7 +229,7 @@ func _apply_parallax(
223229
224230 var albedo_multiplier :Color = Color (1.0 , 1.0 , 1.0 , 1.0 )
225231 if not diffuse_texture_path :
226- albedo_multiplier = diffuse_color
232+ albedo_multiplier = options . diffuse_color
227233
228234 if variant .has_parameter ("diffuse" ):
229235 albedo_multiplier = Color (
@@ -262,7 +268,7 @@ func _apply_water(
262268 material : ShaderMaterial ,
263269 texture_map : TextureMap ,
264270 model_path : String ,
265- diffuse_color : Color ,
271+ options : MaterialManager . MaterialOptions ,
266272) -> void :
267273 var diffuse_texture_path : String = variant .get_texture_path (texture_map .albedo )
268274 var normalmap_texture_path : String = variant .get_texture_path (texture_map .normalmap )
0 commit comments