def button_event(evt): global n2mat, bl_mat_index, n2_shader_index, texture_param_index if(evt == BL_MAT_CHANGED): bl_mat_index = bl_mats_menu.val n2mat = n2exporter.n2Material(bl_mats[bl_mat_index]) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) if(evt == NEBULA_SHADER_CHANGED): n2_shader_index = n2_shader_menu.val n2mat.CreateShaderFromName(n2_shaders[n2_shader_index]) n2mat.SetDefaults() if(evt == SHADER_PARAM_CHANGED): params = n2mat.GetShader().m_params for key in params: param = params[key] if(not n2exporter.texture_param_types.has_key(param.m_type) and (not n2exporter.misc_param_types.has_key(param.m_type))): val = shader_params_menu[param.m_name].val n2mat.SetParamValue(param.m_name, val) elif(param.m_type == "Vector"): x = shader_params_menu[param.m_name + "_x"].val y = shader_params_menu[param.m_name + "_y"].val z = shader_params_menu[param.m_name + "_z"].val w = shader_params_menu[param.m_name + "_w"].val v = n2exporter.nVector(x, y, z, w) n2mat.SetParamValue(param.m_name, n2exporter.VectorToString(v)) if(evt == TEXTURE_PARAM_CHANGED): texture_param_index = shader_params_menu["TextureParams"].val if(evt == TEXTURE_SELECT_CLICKED): Blender.Window.FileSelector(chooseTexture, "Choose Texture", n2.lookup("/sys/servers/file2").manglepath("textures:")) Draw.Redraw(1)
def button_event(evt): global n2mat, bl_mat_index, n2_shader_index, texture_param_index if (evt == BL_MAT_CHANGED): bl_mat_index = bl_mats_menu.val n2mat = n2exporter.n2Material(bl_mats[bl_mat_index]) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) if (evt == NEBULA_SHADER_CHANGED): n2_shader_index = n2_shader_menu.val n2mat.CreateShaderFromName(n2_shaders[n2_shader_index]) n2mat.SetDefaults() if (evt == SHADER_PARAM_CHANGED): params = n2mat.GetShader().m_params for key in params: param = params[key] if (not n2exporter.texture_param_types.has_key(param.m_type) and (not n2exporter.misc_param_types.has_key(param.m_type))): val = shader_params_menu[param.m_name].val n2mat.SetParamValue(param.m_name, val) elif (param.m_type == "Vector"): x = shader_params_menu[param.m_name + "_x"].val y = shader_params_menu[param.m_name + "_y"].val z = shader_params_menu[param.m_name + "_z"].val w = shader_params_menu[param.m_name + "_w"].val v = n2exporter.nVector(x, y, z, w) n2mat.SetParamValue(param.m_name, n2exporter.VectorToString(v)) if (evt == TEXTURE_PARAM_CHANGED): texture_param_index = shader_params_menu["TextureParams"].val if (evt == TEXTURE_SELECT_CLICKED): Blender.Window.FileSelector( chooseTexture, "Choose Texture", n2.lookup("/sys/servers/file2").manglepath("textures:")) Draw.Redraw(1)
n2mats = n2exporter.Getn2Materials() n2_shaders = n2exporter.Getn2Shaders() bl_mats = [] #mat_dict = {} n2exporter.BuildLookupTable() bl_mats = n2exporter.lookup_table.keys() n2mat = None # Get current objects material if any an set as active material objs = Object.GetSelected() if (len(objs) and objs[0].getType() == "Mesh" and len(objs[0].getData(mesh=1).materials) and objs[0].getData(mesh=1).materials[0] != None): mat_name = objs[0].getData(mesh=1).materials[0].getName() print "mat_name: %s" % mat_name n2mat = n2exporter.n2Material(mat_name) bl_mat_index = bl_mats.index(mat_name) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) elif (len(mats)): mat_name = mats[0].getName() n2mat = n2exporter.n2Material(mat_name) bl_mat_index = bl_mats.index(mat_name) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) Draw.Register(draw, draw_event, button_event) else: print "Config Error|Go to Misc>Nebula Config" Draw.PupMenu( "Startup Checks Failed%t|Startup Cheks Failed, check console")
mats = Material.Get() n2mats = n2exporter.Getn2Materials() n2_shaders = n2exporter.Getn2Shaders() bl_mats = [] #mat_dict = {} n2exporter.BuildLookupTable() bl_mats = n2exporter.lookup_table.keys() n2mat = None # Get current objects material if any an set as active material objs = Object.GetSelected() if(len(objs) and objs[0].getType()=="Mesh" and len(objs[0].getData(mesh=1).materials) and objs[0].getData(mesh=1).materials[0]!=None): mat_name = objs[0].getData(mesh=1).materials[0].getName() print "mat_name: %s" % mat_name n2mat = n2exporter.n2Material(mat_name) bl_mat_index = bl_mats.index(mat_name) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) elif(len(mats)): mat_name = mats[0].getName() n2mat = n2exporter.n2Material(mat_name) bl_mat_index = bl_mats.index(mat_name) n2_shader_index = n2_shaders.index(n2mat.GetShader().m_name) Draw.Register(draw, draw_event, button_event) else: print "Config Error|Go to Misc>Nebula Config" Draw.PupMenu("Startup Checks Failed%t|Startup Cheks Failed, check console")