2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								import  bpy 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  bpy . props  import  * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  re 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  multiprocessing 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . assets  as  assets 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . logicnode . replacement 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . logicnode . tree_variables 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . make 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . nodes_logic 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . utils 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  lnx . utils_vs 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if  lnx . is_reload ( __name__ ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    assets  =  lnx . reload_module ( assets ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . logicnode . replacement  =  lnx . reload_module ( lnx . logicnode . replacement ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . logicnode . tree_variables  =  lnx . reload_module ( lnx . logicnode . tree_variables ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . make  =  lnx . reload_module ( lnx . make ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . nodes_logic  =  lnx . reload_module ( lnx . nodes_logic ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . utils  =  lnx . reload_module ( lnx . utils ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . utils_vs  =  lnx . reload_module ( lnx . utils_vs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . enable_reload ( __name__ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Leenkx version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								lnx_version  =  ' 2025.1 ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								lnx_commit  =  ' $Id: 6b2644d47db169cedd95593497cc283207d23a74 $ ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_project_html5_copy ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_html5_copy ' ,  False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_project_html5_copy ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    self [ ' lnx_project_html5_copy ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  not  value : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_html5_start_browser ' ]  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_project_html5_start_browser ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_html5_start_browser ' ,  False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_project_html5_start_browser ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    self [ ' lnx_project_html5_start_browser ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_project_name ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    value  =  lnx . utils . safestr ( value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  len ( value )  >  0 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_name ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_name ' ]  =  lnx . utils . blend_name ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_project_name ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_name ' ,  lnx . utils . blend_name ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_project_package ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    value  =  lnx . utils . safestr ( value ) . replace ( ' . ' ,  ' _ ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( len ( value )  >  0 )  and  ( not  value . isdigit ( ) )  and  ( not  value [ 0 ] . isdigit ( ) ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_package ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_project_package ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_package ' ,  ' lnx ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_version ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    value  =  value . strip ( ) . replace ( '   ' ,  ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  re . match ( r ' ^ \ d+( \ . \ d+) { 1,3}$ ' ,  value )  is  not  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        check  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        v_i  =  value . split ( ' . ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        for  item  in  v_i : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                i  =  int ( item ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            except  ValueError : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                check  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  check : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            self [ ' lnx_project_version ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_version ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_version ' ,  ' 1.0.0 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_project_bundle ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    value  =  lnx . utils . safestr ( value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    v_a  =  value . strip ( ) . split ( ' . ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( len ( value )  >  0 )  and  ( not  value . isdigit ( ) )  and  ( not  value [ 0 ] . isdigit ( ) )  and  ( len ( v_a )  >  1 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        check  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        for  item  in  v_a : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  ( item . isdigit ( ) )  or  ( item [ 0 ] . isdigit ( ) ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                check  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  check : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            self [ ' lnx_project_bundle ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_project_bundle ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  self . get ( ' lnx_project_bundle ' ,  ' org.leenkx3d ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_android_build_apk ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  len ( lnx . utils . get_android_sdk_root_path ( ) )  >  0 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  self . get ( ' lnx_project_android_build_apk ' ,  False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        set_android_build_apk ( self ,  False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_android_build_apk ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    self [ ' lnx_project_android_build_apk ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  not  value : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd  =  bpy . data . worlds [ ' Lnx ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_project_android_rename_apk  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_project_android_copy_apk  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_project_android_run_avd  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_win_build_arch ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  self . get ( ' lnx_project_win_build_arch ' ,  - 1 )  ==  - 1 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  lnx . utils . get_os_is_windows_64 ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            return  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  self . get ( ' lnx_project_win_build_arch ' ,  ' x64 ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_win_build_arch ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    self [ ' lnx_project_win_build_arch ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  set_win_build ( self ,  value ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  lnx . utils . get_os_is_windows ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_win_build ' ]  =  value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        self [ ' lnx_project_win_build ' ]  =  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( self [ ' lnx_project_win_build ' ]  ==  0 )  or  ( self [ ' lnx_project_win_build ' ]  ==  1 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd  =  bpy . data . worlds [ ' Lnx ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_project_win_build_open  =  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  get_win_build ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  lnx . utils . get_os_is_windows ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  self . get ( ' lnx_project_win_build ' ,  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  init_properties ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    global  lnx_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_recompile  =  BoolProperty ( name = " Recompile " ,  description = " Recompile sources on next play " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_version  =  StringProperty ( name = " Version " ,  description = " Leenkx SDK version " ,  default = " " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_commit  =  StringProperty ( name = " Version Commit " ,  description = " Leenkx SDK version " ,  default = " " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_name  =  StringProperty ( name = " Name " ,  description = " Exported project name " ,  default = " " ,  update = assets . invalidate_compiler_cache ,  set = set_project_name ,  get = get_project_name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_package  =  StringProperty ( name = " Package " ,  description = " Package name for scripts " ,  default = " lnx " ,  update = assets . invalidate_compiler_cache ,  set = set_project_package ,  get = get_project_package ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_version  =  StringProperty ( name = " Version " ,  description = " Exported project version " ,  default = " 1.0.0 " ,  update = assets . invalidate_compiler_cache ,  set = set_version ,  get = get_version ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_version_autoinc  =  BoolProperty ( name = " Auto-increment Build Number " ,  description = " Auto-increment build number " ,  default = True ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_bundle  =  StringProperty ( name = " Bundle " ,  description = " Exported project bundle " ,  default = " org.leenkx3d " ,  update = assets . invalidate_compiler_cache ,  set = set_project_bundle ,  get = get_project_bundle ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-19 19:03:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # External Blend Files 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_external_blends_path  =  StringProperty ( name = " External Blends " ,  description = " Directory containing external blend files to include in export " ,  default = " " ,  subtype = ' DIR_PATH ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    # Android Settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_sdk_min  =  IntProperty ( name = " Minimal Version SDK " ,  description = " Minimal Version Android SDK " ,  default = 23 ,  min = 14 ,  max = 30 ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_sdk_target  =  IntProperty ( name = " Target Version SDK " ,  description = " Target Version Android SDK " ,  default = 26 ,  min = 26 ,  max = 30 ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_sdk_compile  =  IntProperty ( name = " Maximal Version SDK " ,  description = " Maximal Android SDK Version " ,  default = 30 ,  min = 26 ,  max = 30 ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_build_apk  =  BoolProperty ( name = " Building APK After Publishing " ,  description = " Starting APK build after publishing " ,  default = False ,  update = assets . invalidate_compiler_cache ,  get = get_android_build_apk ,  set = set_android_build_apk ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_rename_apk  =  BoolProperty ( name = " Rename APK To Project Name " ,  description = " Rename APK file to project name + version after build " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_copy_apk  =  BoolProperty ( name = " Copy APK To Specified Folder " ,  description = " Copy the APK file to the folder specified in the settings after build " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_run_avd  =  BoolProperty ( name = " Run Emulator After Building APK " ,  description = " Starting android emulator after APK build " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_android_list_avd  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( '   ' ,  '   ' ,  '   ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Emulator " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # HTML5 Settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_html5_copy  =  BoolProperty ( name = " Copy Files To Specified Folder " ,  description = " Copy files to the folder specified in the settings after publish " ,  default = False ,  update = assets . invalidate_compiler_cache ,  set = set_project_html5_copy ,  get = get_project_html5_copy ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_html5_start_browser  =  BoolProperty ( name = " Run Browser After Copy " ,  description = " Run browser after copy " ,  default = False ,  update = assets . invalidate_compiler_cache ,  set = set_project_html5_start_browser ,  get = get_project_html5_start_browser ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_html5_popupmenu_in_browser  =  BoolProperty ( name = " Disable Browser Context Menu " ,  description = " Disable the browser context menu for the canvas element on the page " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Windows Settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_list_vs  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = lnx . utils_vs . supported_versions , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Visual Studio Version " ,  default = ' 17 ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' nothing ' ,  ' Nothing ' ,  ' Nothing ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' open ' ,  ' Open in Visual Studio ' ,  ' Open in Visual Studio ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' compile ' ,  ' Compile ' ,  ' Compile the application ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' compile_and_run ' ,  ' Compile and Run ' ,  ' Compile and run the application ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Action After Publishing " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build_mode  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Debug ' ,  ' Debug ' ,  ' Debug ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Release ' ,  ' Release ' ,  ' Release ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Mode " ,  default = ' Debug ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build_arch  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' x64 ' ,  ' x64 ' ,  ' x64 ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' x86 ' ,  ' x86 ' ,  ' x86 ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Architecture " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build_log  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Summary ' ,  ' Summary ' ,  ' Show the error and warning summary at the end ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' NoSummary ' ,  ' No Summary ' ,  ' Don \' t show the error and warning summary at the end ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' WarningsAndErrorsOnly ' ,  ' Warnings and Errors Only ' ,  ' Show only warnings and errors ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' WarningsOnly ' ,  ' Warnings Only ' ,  ' Show only warnings ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' ErrorsOnly ' ,  ' Errors Only ' ,  ' Show only errors ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Compile Log Parameter " ,  update = assets . invalidate_compiler_cache , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        default = " Summary " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build_cpu  =  IntProperty ( name = " CPU Count " ,  description = " Specifies the maximum number of concurrent processes to use when building " ,  default = 1 ,  min = 1 ,  max = multiprocessing . cpu_count ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_win_build_open  =  BoolProperty ( name = " Open Build Directory " ,  description = " Open the build directory after successfully assemble " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_icon  =  StringProperty ( name = " Icon (PNG) " ,  description = " Exported project icon, must be a PNG image " ,  default = " " ,  subtype = " FILE_PATH " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_project_root  =  StringProperty ( name = " Root " ,  description = " Set root folder for linked assets " ,  default = " " ,  subtype = " DIR_PATH " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Disabled ' ,  ' Disabled ' ,  ' Disabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Auto ' ,  ' Auto ' ,  ' Auto ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Enabled ' ,  ' Enabled ' ,  ' Enabled ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Physics " ,  default = ' Auto ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_engine  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Bullet ' ,  ' Bullet ' ,  ' Bullet ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Oimo ' ,  ' Oimo ' ,  ' Oimo ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Physics Engine " ,  default = ' Bullet ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-02 06:26:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_fixed_step  =  FloatProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Fixed Step " ,  default = 1 / 60 ,  min = 0 ,  max = 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Physics steps for fixed update " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_wireframe  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Collider Wireframes " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Draw wireframes of the physics collider meshes and suspensions of raycast vehicle simulations " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_raycast  =  BoolProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Raycasts " ,  default = False , 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-10 21:21:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        description = " Draw raycasts to trace the results " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_aabb  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Axis-aligned Minimum Bounding Boxes " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Draw axis-aligned minimum bounding boxes (AABBs) of the physics collider meshes " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_contact_points  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Contact Points " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Visualize contact points of multiple colliders " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_constraints  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Constraints " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Draw axis gizmos for important constraint points " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_constraint_limits  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Constraint Limits " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Draw additional constraint information such as distance or angle limits " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_normals  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Face Normals " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            " Draw the normal vectors of the triangles of the physics collider meshes. " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            "  This only works with Bullet physics, for mesh collision shapes " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-11 19:41:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_physics_dbg_draw_axis_gizmo  =  BoolProperty ( 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Axis Gizmos " ,  default = False , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            " Draw a small axis gizmo at the origin of the collision shape. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            "  Only works if  \" Collider Wireframes \"  is enabled as well " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_navigation  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Disabled ' ,  ' Disabled ' ,  ' Disabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Auto ' ,  ' Auto ' ,  ' Auto ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Enabled ' ,  ' Enabled ' ,  ' Enabled ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Navigation " ,  default = ' Auto ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_navigation_engine  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Recast ' ,  ' Recast ' ,  ' Recast ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Navigation Engine " ,  default = ' Recast ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_ui  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Disabled ' ,  ' Disabled ' ,  ' Disabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Enabled ' ,  ' Enabled ' ,  ' Enabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Auto ' ,  ' Auto ' ,  ' Auto ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Zui " ,  default = ' Auto ' ,  description = " Include UI library " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_network  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Disabled ' ,  ' Disabled ' ,  ' Disabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Enabled ' ,  ' Enabled ' ,  ' Enabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Auto ' ,  ' Auto ' ,  ' Auto ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Networking " ,  default = ' Auto ' ,  description = " Include Network library " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_audio  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Disabled ' ,  ' Disabled ' ,  ' Disabled ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Enabled ' ,  ' Enabled ' ,  ' Enabled ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Audio " ,  default = ' Enabled ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_khafile  =  PointerProperty ( name = " Append Khafile " ,  description = " Source appended to the project ' s khafile.js after it is generated " ,  update = assets . invalidate_compiler_cache ,  type = bpy . types . Text ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_canvas_img_scaling_quality  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Canvas Image Quality ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = ' The quality with which to scale images drawn to Kha canvases ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' low ' ,  ' Low ' ,  ' Low quality. Scaling usually takes place using a point filter. ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' high ' ,  ' High ' ,  ' High quality. Scaling usually takes place using a bilinear filter. ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        default = ' low ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_texture_quality  =  FloatProperty ( name = " Texture Quality " ,  default = 1.0 ,  min = 0.0 ,  max = 1.0 ,  subtype = ' FACTOR ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_sound_quality  =  FloatProperty ( name = " Sound Quality " ,  default = 0.9 ,  min = 0.0 ,  max = 1.0 ,  subtype = ' FACTOR ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_copy_override  =  BoolProperty ( name = " Copy Override " ,  description = " Overrides any existing files when copying " ,  default = False ,  update = assets . invalidate_compiled_data ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_minimize  =  BoolProperty ( name = " Binary Scene Data " ,  description = " Export scene data in binary " ,  default = True ,  update = assets . invalidate_compiled_data ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_minify_js  =  BoolProperty ( name = " Minify JS " ,  description = " Minimize JavaScript output when publishing " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_no_traces  =  BoolProperty ( name = " No Traces " ,  description = " Don ' t compile trace calls in the program when publishing " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_optimize_data  =  BoolProperty ( name = " Optimize Data " ,  description = " Export more efficient geometry and shader data when publishing, prolongs build times " ,  default = True ,  update = assets . invalidate_compiled_data ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_deinterleaved_buffers  =  BoolProperty ( name = " Deinterleaved Buffers " ,  description = " Use deinterleaved vertex buffers " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_export_tangents  =  BoolProperty ( name = " Precompute Tangents " ,  description = " Precompute tangents for normal mapping, otherwise computed in shader " ,  default = True ,  update = assets . invalidate_compiled_data ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_batch_meshes  =  BoolProperty ( name = " Batch Meshes " ,  description = " Group meshes by materials to speed up rendering " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_batch_materials  =  BoolProperty ( name = " Batch Materials " ,  description = " Marge similar materials into single pipeline state " ,  default = False ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_stream_scene  =  BoolProperty ( name = " Stream Scene " ,  description = " Stream scene content " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_lod_gen_levels  =  IntProperty ( name = " Levels " ,  description = " Number of levels to generate " ,  default = 3 ,  min = 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_lod_gen_ratio  =  FloatProperty ( name = " Decimate Ratio " ,  description = " Decimate ratio " ,  default = 0.8 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_cache_build  =  BoolProperty ( name = " Cache Build " ,  description = " Cache build files to speed up compilation " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_assert_level  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' Warning ' ,  ' Warning ' ,  ' Warning level, warnings don \' t throw an LnxAssertException ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' Error ' ,  ' Error ' ,  ' Error level. If assertions with this level fail, an LnxAssertException is thrown ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' NoAssertions ' ,  ' No Assertions ' ,  ' Ignore all assertions ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Assertion Level " ,  description = " Ignore all assertions below this level (assertions are turned off completely for published builds) " ,  default = ' Warning ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_assert_quit  =  BoolProperty ( name = " Quit On Assertion Fail " ,  description = " Whether to close the game when an  ' Error '  level assertion fails " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_live_patch  =  BoolProperty ( name = " Live Patch " ,  description = " Live patching for Krom " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clear_on_compile  =  BoolProperty ( name = " Clear Console " ,  description = " Clears the system console on compile " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_play_camera  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Scene ' ,  ' Scene ' ,  ' Scene ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Viewport ' ,  ' Viewport ' ,  ' Viewport ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Camera " ,  description = " Viewport camera " ,  default = ' Scene ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_play_scene  =  PointerProperty ( name = " Scene " ,  description = " Scene to launch " ,  update = assets . invalidate_compiler_cache ,  type = bpy . types . Scene ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_play_renderpath  =  StringProperty ( name = " Render Path " ,  description = " Default renderpath for debugging " ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Debug Console 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_debug_console  =  BoolProperty ( name = " Enable " ,  description = " Show inspector in player and enable debug draw. \n Requires that Zui is not disabled " ,  default = lnx . utils . get_debug_console_auto ( ) ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_debug_console_position  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Left ' ,  ' Left ' ,  ' Left ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Center ' ,  ' Center ' ,  ' Center ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Right ' ,  ' Right ' ,  ' Right ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Position " ,  description = " Position Debug Console " ,  default = ' Right ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_debug_console_scale  =  FloatProperty ( name = " Scale Console " ,  description = " Scale Debug Console " ,  default = 1.0 ,  min = 0.3 ,  max = 10.0 ,  subtype = ' FACTOR ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_debug_console_visible  =  BoolProperty ( name = " Visible " ,  description = " Setting the console visibility at application start " ,  default = True ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_debug_console_trace_pos  =  BoolProperty ( name = " Print With Position " ,  description = " Whether to prepend the position of print/trace statements to the printed text " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_verbose_output  =  BoolProperty ( name = " Verbose Output " ,  description = " Print additional information to the console during compilation " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_runtime  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Krom ' ,  ' Krom ' ,  ' Krom ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 20:35:42 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								               ( ' Browser ' ,  ' Browser ' ,  ' Browser ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 20:59:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								               ( ' Hashlink ' ,  ' Hashlink ' ,  ' Hashlink ' ) ] , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Runtime " ,  description = " Runtime to use when launching the game " ,  default = ' Krom ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_loadscreen  =  BoolProperty ( name = " Loading Screen " ,  description = " Show asset loading progress on published builds " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_vsync  =  BoolProperty ( name = " VSync " ,  description = " Vertical Synchronization " ,  default = True ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_dce  =  BoolProperty ( name = " DCE " ,  description = " Enable dead code elimination for publish builds " ,  default = True ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_asset_compression  =  BoolProperty ( name = " Asset Compression " ,  description = " Enable scene data compression with LZ4 when publishing. Warning: This will slow down export! " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_single_data_file  =  BoolProperty ( name = " Single Data File " ,  description = " Pack exported meshes and materials into single file " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_write_config  =  BoolProperty ( name = " Write Config " ,  description = " Allow this project to be configured at runtime via a JSON file " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_compiler_inline  =  BoolProperty ( name = " Compiler Inline " ,  description = " Favor speed over size " ,  default = True ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_winmode  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items  =  [ ( ' Window ' ,  ' Window ' ,  ' Window ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2025-03-19 12:34:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 ( ' Fullscreen ' ,  ' Fullscreen ' ,  ' Fullscreen ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2025-03-19 16:26:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 ( ' Headless ' ,  ' Headless (HTML) ' ,  ' Run without rendering/windowing (logic nodes only) ' ) ] , 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        name = " Mode " ,  default = ' Window ' ,  description = ' Window mode to start in ' ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_winorient  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items  =  [ ( ' Multi ' ,  ' Multi ' ,  ' Multi ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Portrait ' ,  ' Portrait ' ,  ' Portrait ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Landscape ' ,  ' Landscape ' ,  ' Landscape ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Orientation " ,  default = ' Landscape ' ,  description = ' Set screen orientation on mobile devices ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_winresize  =  BoolProperty ( name = " Resizable " ,  description = " Allow window resize " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_winmaximize  =  BoolProperty ( name = " Maximizable " ,  description = " Allow window maximize " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_winminimize  =  BoolProperty ( name = " Minimizable " ,  description = " Allow window minimize " ,  default = True ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For object 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_instanced  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items  =  [ ( ' Off ' ,  ' Off ' ,  ' No instancing of children ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Loc ' ,  ' Loc ' ,  ' Instances use their unique position (ipos) ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Loc + Rot ' ,  ' Loc + Rot ' ,  ' Instances use their unique position and rotation (ipos and irot) ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Loc + Scale ' ,  ' Loc + Scale ' ,  ' Instances use their unique position and scale (ipos and iscl) ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 ( ' Loc + Rot + Scale ' ,  ' Loc + Rot + Scale ' ,  ' Instances use their unique position, rotation and scale (ipos, irot, iscl) ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Instanced Children " ,  default = ' Off ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = ' Whether to use instancing to draw the children of this object. If enabled, this option defines what attributes may vary between the instances ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        update = assets . invalidate_instance_cache , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_export  =  BoolProperty ( name = " Export " ,  description = " Export object data " ,  default = True ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-19 18:37:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_sorting_index  =  IntProperty ( name = " Sorting Index " ,  description = " Sorting index for the Render ' s Draw Order " ,  default = 0 ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_spawn  =  BoolProperty ( name = " Spawn " ,  description = " Auto-add this object when creating scene " ,  default = True ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_mobile  =  BoolProperty ( name = " Mobile " ,  description = " Object moves during gameplay " ,  default = False ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_visible  =  BoolProperty ( name = " Visible " ,  description = " Render this object " ,  default = True ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_visible_shadow  =  BoolProperty ( name = " Lighting " ,  description = " Object contributes to the lighting even if invisible " ,  default = True ,  override = { ' LIBRARY_OVERRIDABLE ' } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_soft_body_margin  =  FloatProperty ( name = " Soft Body Margin " ,  description = " Collision margin " ,  default = 0.04 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_linear_factor  =  FloatVectorProperty ( name = " Linear Factor " ,  size = 3 ,  description = " Set to 0 to lock axis " ,  default = [ 1 , 1 , 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_angular_factor  =  FloatVectorProperty ( name = " Angular Factor " ,  size = 3 ,  description = " Set to 0 to lock axis " ,  default = [ 1 , 1 , 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_angular_friction  =  FloatProperty ( name = " Angular Friction " ,  description = " Angular Friction " ,  default = 0.1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_trigger  =  BoolProperty ( name = " Trigger " ,  description = " Disable contact response " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_deactivation_time  =  FloatProperty ( name = " Deactivation Time " ,  description = " Delay putting rigid body into sleep " ,  default = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_ccd  =  BoolProperty ( name = " Continuous Collision Detection " ,  description = " Improve collision for fast moving objects " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-02 06:26:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_interpolate  =  BoolProperty ( name = " Interpolation " ,  description = " Smooths out the object ' s transform on physics steps " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_collision_filter_mask  =  bpy . props . BoolVectorProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            name = " Collision Collections Filter Mask " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            description = " Collision collections rigid body interacts with " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            default = ( True ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ,  False ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            size = 20 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            subtype = ' LAYER ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-11 19:21:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Linear velocity limits 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_linear_velocity_min  =  FloatProperty ( name = " Linear Velocity Min " ,  description = " Minimum linear velocity " ,  default = 0.0 ,  min = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_linear_velocity_max  =  FloatProperty ( name = " Linear Velocity Max " ,  description = " Maximum linear velocity " ,  default = 0.0 ,  min = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Angular velocity limits 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_angular_velocity_min  =  FloatProperty ( name = " Angular Velocity Min " ,  description = " Minimum angular velocity " ,  default = 0.0 ,  min = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_angular_velocity_max  =  FloatProperty ( name = " Angular Velocity Max " ,  description = " Maximum angular velocity " ,  default = 0.0 ,  min = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Lock translation axes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_translation_x  =  BoolProperty ( name = " Lock Translation X " ,  description = " Lock movement along X axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_translation_y  =  BoolProperty ( name = " Lock Translation Y " ,  description = " Lock movement along Y axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_translation_z  =  BoolProperty ( name = " Lock Translation Z " ,  description = " Lock movement along Z axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Lock rotation axes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_rotation_x  =  BoolProperty ( name = " Lock Rotation X " ,  description = " Lock rotation around X axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_rotation_y  =  BoolProperty ( name = " Lock Rotation Y " ,  description = " Lock rotation around Y axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_rb_lock_rotation_z  =  BoolProperty ( name = " Lock Rotation Z " ,  description = " Lock rotation around Z axis " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_relative_physics_constraint  =  BoolProperty ( name = " Relative Physics Constraint " ,  description = " Add physics constraint relative to the parent object or collection when spawned " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_animation_enabled  =  BoolProperty ( name = " Animation " ,  description = " Enable skinning & timeline animation " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_tilesheet  =  StringProperty ( name = " Tilesheet " ,  description = " Set tilesheet animation " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_tilesheet_action  =  StringProperty ( name = " Tilesheet Action " ,  description = " Set startup action " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Object . lnx_use_custom_tilesheet_node  =  BoolProperty ( name = " Use custom tilesheet node " ,  description = " Use custom tilesheet shader node " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For speakers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Speaker . lnx_play_on_start  =  BoolProperty ( name = " Play on Start " ,  description = " Play this sound automatically " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Speaker . lnx_loop  =  BoolProperty ( name = " Loop " ,  description = " Loop this sound " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Speaker . lnx_stream  =  BoolProperty ( name = " Stream " ,  description = " Stream this sound " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For mesh 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Mesh . lnx_cached  =  BoolProperty ( name = " Mesh Cached " ,  description = " No need to reexport mesh data " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Mesh . lnx_aabb  =  FloatVectorProperty ( name = " AABB " ,  size = 3 ,  default = [ 0 , 0 , 0 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Mesh . lnx_dynamic_usage  =  BoolProperty ( name = " Dynamic Usage " ,  description = " Mesh data can change at runtime " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Curve . lnx_cached  =  BoolProperty ( name = " Mesh Cached " ,  description = " No need to reexport curve data " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Curve . lnx_aabb  =  FloatVectorProperty ( name = " AABB " ,  size = 3 ,  default = [ 0 , 0 , 0 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Curve . lnx_dynamic_usage  =  BoolProperty ( name = " Dynamic Data Usage " ,  description = " Curve data can change at runtime " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . MetaBall . lnx_cached  =  BoolProperty ( name = " Mesh Cached " ,  description = " No need to reexport metaball data " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . MetaBall . lnx_aabb  =  FloatVectorProperty ( name = " AABB " ,  size = 3 ,  default = [ 0 , 0 , 0 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . MetaBall . lnx_dynamic_usage  =  BoolProperty ( name = " Dynamic Data Usage " ,  description = " Metaball data can change at runtime " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For armature 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Armature . lnx_cached  =  BoolProperty ( name = " Armature Cached " ,  description = " No need to reexport armature data " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-03-31 20:17:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Armature . lnx_autobake  =  BoolProperty ( name = " Auto Bake " ,  description = " Bake constraints automatically " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Armature . lnx_relative_bone_constraints  =  BoolProperty ( name = " Relative Bone Constraints " ,  description = " Constraint are applied relative to Armature ' s parent " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For camera 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Camera . lnx_frustum_culling  =  BoolProperty ( name = " Frustum Culling " ,  description = " Perform frustum culling for this camera " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Render path generator 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . rp_preset  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' Desktop ' ,  ' Desktop ' ,  ' Desktop ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Mobile ' ,  ' Mobile ' ,  ' Mobile ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' Max ' ,  ' Max ' ,  ' Max ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' 2D/Baked ' ,  ' 2D/Baked ' ,  ' 2D/Baked ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Preset " ,  description = " Render path preset " ,  default = ' Desktop ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_name  =  StringProperty ( name = " Environment Texture " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_irr_name  =  StringProperty ( name = " Environment Irradiance " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_num_mips  =  IntProperty ( name = " Number of mips " ,  default = 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_color  =  FloatVectorProperty ( name = " Environment Color " ,  size = 4 ,  default = [ 0 , 0 , 0 , 1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_strength  =  FloatProperty ( name = " Environment Strength " ,  default = 1.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_sun_direction  =  FloatVectorProperty ( name = " Sun Direction " ,  size = 3 ,  default = [ 0 , 0 , 0 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_turbidity  =  FloatProperty ( name = " Turbidity " ,  default = 1.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_envtex_ground_albedo  =  FloatProperty ( name = " Ground Albedo " ,  default = 0.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_nishita_density  =  FloatVectorProperty ( name = " Nishita Density " ,  size = 3 ,  default = [ 1 ,  1 ,  1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_cast_shadow  =  BoolProperty ( name = " Cast Shadow " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_receive_shadow  =  BoolProperty ( name = " Receive Shadow " ,  description = " Requires forward render path " ,  default = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-23 19:57:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_depth_write  =  BoolProperty ( name = " Write Depth " ,  description = " Allow this material to write to the depth buffer " ,  default = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_depth_read  =  BoolProperty ( name = " Read Depth " ,  description = " Allow this material to read from a depth texture which is copied from the depth buffer. The meshes using this material will be drawn after all meshes that don ' t read from the depth texture " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_overlay  =  BoolProperty ( name = " Overlay " ,  description = " Renders the material, unshaded, over other shaded materials " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_decal  =  BoolProperty ( name = " Decal " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-19 17:43:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_compare_mode  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' always ' ,  ' Always ' ,  ' Always ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' never ' ,  ' Never ' ,  ' Never ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' less ' ,  ' Less ' ,  ' Less ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' less_equal ' ,  ' Less Equal ' ,  ' Less Equal ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' greater ' ,  ' Greater ' ,  ' Greater ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' greater_equal ' ,  ' Greater Equal ' ,  ' Greater Equal ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' equal ' ,  ' Equal ' ,  ' Equal ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ( ' not_equal ' ,  ' Not Equal ' ,  ' Not Equal ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Compare Mode " ,  default = ' less ' ,  description = " Comparison mode for the material " ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_two_sided  =  BoolProperty ( name = " Two-Sided " ,  description = " Flip normal when drawing back-face " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_ignore_irradiance  =  BoolProperty ( name = " Ignore Irradiance " ,  description = " Ignore irradiance for material " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_cull_mode  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' none ' ,  ' Both ' ,  ' None ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' clockwise ' ,  ' Front ' ,  ' Clockwise ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' counter_clockwise ' ,  ' Back ' ,  ' Counter-Clockwise ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Cull Mode " ,  default = ' clockwise ' ,  description = " Draw geometry faces " ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-19 17:43:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_next_pass  =  StringProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Next Pass " ,  default = ' ' ,  description = " Next pass for the material " ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_discard  =  BoolProperty ( name = " Alpha Test " ,  default = False ,  description = " Do not render fragments below specified opacity threshold " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_discard_opacity  =  FloatProperty ( name = " Mesh Opacity " ,  default = 0.2 ,  min = 0 ,  max = 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_discard_opacity_shadows  =  FloatProperty ( name = " Shadows Opacity " ,  default = 0.1 ,  min = 0 ,  max = 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_custom_material  =  StringProperty ( name = " Custom Material " ,  description = " Write custom material " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_billboard  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' off ' ,  ' Off ' ,  ' Off ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' spherical ' ,  ' Spherical ' ,  ' Spherical ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' cylindrical ' ,  ' Cylindrical ' ,  ' Cylindrical ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Billboard " ,  default = ' off ' ,  description = " Track camera " ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_tilesheet_flag  =  BoolProperty ( name = " Tilesheet Flag " ,  description = " This material is used for tilesheet " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_particle_flag  =  BoolProperty ( name = " Particle Flag " ,  description = " This material is used for particles " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_particle_fade  =  BoolProperty ( name = " Particle Fade " ,  description = " Fade particles in and out " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending  =  BoolProperty ( name = " Blending " ,  description = " Enable additive blending " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_source  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' blend_one ' ,  ' One ' ,  ' One ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' blend_zero ' ,  ' Zero ' ,  ' Zero ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_alpha ' ,  ' Source Alpha ' ,  ' Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_alpha ' ,  ' Destination Alpha ' ,  ' Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_alpha ' ,  ' Inverse Source Alpha ' ,  ' Inverse Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_alpha ' ,  ' Inverse Destination Alpha ' ,  ' Inverse Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_color ' ,  ' Source Color ' ,  ' Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_color ' ,  ' Destination Color ' ,  ' Destination Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_color ' ,  ' Inverse Source Color ' ,  ' Inverse Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_color ' ,  ' Inverse Destination Color ' ,  ' Inverse Destination Color ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Source ' ,  default = ' blend_one ' ,  description = ' Blending factor ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_destination  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' blend_one ' ,  ' One ' ,  ' One ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' blend_zero ' ,  ' Zero ' ,  ' Zero ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_alpha ' ,  ' Source Alpha ' ,  ' Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_alpha ' ,  ' Destination Alpha ' ,  ' Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_alpha ' ,  ' Inverse Source Alpha ' ,  ' Inverse Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_alpha ' ,  ' Inverse Destination Alpha ' ,  ' Inverse Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_color ' ,  ' Source Color ' ,  ' Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_color ' ,  ' Destination Color ' ,  ' Destination Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_color ' ,  ' Inverse Source Color ' ,  ' Inverse Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_color ' ,  ' Inverse Destination Color ' ,  ' Inverse Destination Color ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Destination ' ,  default = ' blend_one ' ,  description = ' Blending factor ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_operation  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' add ' ,  ' Add ' ,  ' Add ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' subtract ' ,  ' Subtract ' ,  ' Subtract ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' reverse_subtract ' ,  ' Reverse Subtract ' ,  ' Reverse Subtract ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' min ' ,  ' Min ' ,  ' Min ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' max ' ,  ' Max ' ,  ' Max ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Operation ' ,  default = ' add ' ,  description = ' Blending operation ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_source_alpha  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' blend_one ' ,  ' One ' ,  ' One ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' blend_zero ' ,  ' Zero ' ,  ' Zero ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_alpha ' ,  ' Source Alpha ' ,  ' Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_alpha ' ,  ' Destination Alpha ' ,  ' Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_alpha ' ,  ' Inverse Source Alpha ' ,  ' Inverse Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_alpha ' ,  ' Inverse Destination Alpha ' ,  ' Inverse Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_color ' ,  ' Source Color ' ,  ' Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_color ' ,  ' Destination Color ' ,  ' Destination Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_color ' ,  ' Inverse Source Color ' ,  ' Inverse Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_color ' ,  ' Inverse Destination Color ' ,  ' Inverse Destination Color ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Source (Alpha) ' ,  default = ' blend_one ' ,  description = ' Blending factor ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_destination_alpha  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' blend_one ' ,  ' One ' ,  ' One ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' blend_zero ' ,  ' Zero ' ,  ' Zero ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_alpha ' ,  ' Source Alpha ' ,  ' Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_alpha ' ,  ' Destination Alpha ' ,  ' Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_alpha ' ,  ' Inverse Source Alpha ' ,  ' Inverse Source Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_alpha ' ,  ' Inverse Destination Alpha ' ,  ' Inverse Destination Alpha ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' source_color ' ,  ' Source Color ' ,  ' Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' destination_color ' ,  ' Destination Color ' ,  ' Destination Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_source_color ' ,  ' Inverse Source Color ' ,  ' Inverse Source Color ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' inverse_destination_color ' ,  ' Inverse Destination Color ' ,  ' Inverse Destination Color ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Destination (Alpha) ' ,  default = ' blend_one ' ,  description = ' Blending factor ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_blending_operation_alpha  =  EnumProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        items = [ ( ' add ' ,  ' Add ' ,  ' Add ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' subtract ' ,  ' Subtract ' ,  ' Subtract ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' reverse_subtract ' ,  ' Reverse Subtract ' ,  ' Reverse Subtract ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' min ' ,  ' Min ' ,  ' Min ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								               ( ' max ' ,  ' Max ' ,  ' Max ' ) ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = ' Operation (Alpha) ' ,  default = ' add ' ,  description = ' Blending operation ' ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For scene 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_export  =  BoolProperty ( name = " Export " ,  description = " Export scene data " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_terrain_textures  =  StringProperty ( name = " Textures " ,  description = " Set root folder for terrain assets " ,  default = " //Bundled/ " ,  subtype = " DIR_PATH " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_terrain_sectors  =  IntVectorProperty ( name = " Sectors " ,  description = " Number of sectors to generate " ,  default = [ 1 , 1 ] ,  size = 2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_terrain_sector_size  =  FloatProperty ( name = " Sector Size " ,  description = " Dimensions for single sector " ,  default = 16 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_terrain_height_scale  =  FloatProperty ( name = " Height Scale " ,  description = " Scale height from the 0-1 range " ,  default = 5 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Scene . lnx_terrain_object  =  PointerProperty ( name = " Object " ,  type = bpy . types . Object ,  description = " Terrain root object " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # For light 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Light . lnx_clip_start  =  FloatProperty ( name = " Clip Start " ,  default = 0.1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Light . lnx_clip_end  =  FloatProperty ( name = " Clip End " ,  default = 50.0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Light . lnx_fov  =  FloatProperty ( name = " Field of View " ,  default = 0.84 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Light . lnx_shadows_bias  =  FloatProperty ( name = " Bias " ,  description = " Depth offset to fight shadow acne " ,  default = 1.0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-02 16:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # For world 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_light_ies_texture  =  BoolProperty ( name = " IES Texture (iestexture.png) " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_light_clouds_texture  =  BoolProperty ( name = " Clouds Texture (cloudstexture.png) " ,  default = False ,  update = assets . invalidate_compiler_cache ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_rpcache_list  =  CollectionProperty ( type = bpy . types . PropertyGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_scripts_list  =  CollectionProperty ( type = bpy . types . PropertyGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_bundled_scripts_list  =  CollectionProperty ( type = bpy . types . PropertyGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_canvas_list  =  CollectionProperty ( type = bpy . types . PropertyGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_wasm_list  =  CollectionProperty ( type = bpy . types . PropertyGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . world_defs  =  StringProperty ( name = " World Shader Defs " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . compo_defs  =  StringProperty ( name = " Compositor Shader Defs " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_use_clouds  =  BoolProperty ( name = " Clouds " ,  default = False ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_darken_clouds  =  BoolProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Darken Clouds at Night " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Darkens the clouds when the sun is low. This setting is for artistic purposes and is not physically correct " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        default = False ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_lower  =  FloatProperty ( name = " Lower " ,  default = 1.0 ,  min = 0.1 ,  max = 10.0 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_upper  =  FloatProperty ( name = " Upper " ,  default = 1.0 ,  min = 0.1 ,  max = 10.0 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_wind  =  FloatVectorProperty ( name = " Wind " ,  default = [ 1.0 ,  0.0 ] ,  size = 2 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_secondary  =  FloatProperty ( name = " Secondary " ,  default = 1.0 ,  min = 0.1 ,  max = 10.0 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_precipitation  =  FloatProperty ( name = " Precipitation " ,  default = 1.0 ,  min = 0.1 ,  max = 10.0 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_clouds_steps  =  IntProperty ( name = " Steps " ,  default = 24 ,  min = 1 ,  max = 240 ,  update = assets . invalidate_shader_cache ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . export_uvs  =  BoolProperty ( name = " Export UVs " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . export_vcols  =  BoolProperty ( name = " Export VCols " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . export_tangents  =  BoolProperty ( name = " Export Tangents " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_skip_context  =  StringProperty ( name = " Skip Context " ,  default = ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_material_id  =  IntProperty ( name = " ID " ,  default = 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . NodeSocket . is_uniform  =  BoolProperty ( name = " Is Uniform " ,  description = " Mark node sockets to be processed as material uniforms " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . NodeTree . lnx_cached  =  BoolProperty ( name = " Node Tree Cached " ,  description = " No need to reexport node tree " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . signature  =  StringProperty ( name = " Signature " ,  description = " Unique string generated from material nodes " ,  default = " " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Material . lnx_cached  =  BoolProperty ( name = " Material Cached " ,  description = " No need to reexport material data " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Node . lnx_material_param  =  BoolProperty ( name = " Parameter " ,  description = " Control this node from script " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Node . lnx_watch  =  BoolProperty ( name = " Watch " ,  description = " Watch value of this node in debug console " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Node . lnx_version  =  IntProperty ( name = " Node Version " ,  description = " The version of an instanced node " ,  default = 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Particles 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-01 22:16:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . ParticleSettings . lnx_auto_start  =  BoolProperty ( name = " Auto Start " ,  description = " Automatically start this particle system on load " ,  default = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-09-24 01:51:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . ParticleSettings . lnx_dynamic_emitter  =  BoolProperty ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        name = " Dynamic " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        description = " Particles have independent transform updates following emitter compared to a static baked particle system used if emitters dont generally move around. " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        default = True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-01 22:16:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . ParticleSettings . lnx_is_unique  =  BoolProperty ( name = " Is Unique " ,  description = " Make this particle system look different each time it starts " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . ParticleSettings . lnx_loop  =  BoolProperty ( name = " Loop " ,  description = " Loop this particle system " ,  default = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-01 22:16:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bpy . types . ParticleSettings . lnx_count_mult  =  FloatProperty ( name = " Multiply Count " ,  description = " Multiply particle count when rendering in Leenkx " ,  default = 1.0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    # Actions 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Action . lnx_root_motion_pos  =  BoolProperty ( name = " Root Motion Position " ,  description = " Enable position root motion " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . Action . lnx_root_motion_rot  =  BoolProperty ( name = " Root Motion Rotation " ,  description = " Enable rotation root motion " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_pos_x  =  BoolProperty ( name = " Position X " ,  description = " Retarget Position X " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_pos_y  =  BoolProperty ( name = " Position Y " ,  description = " Retarget Position Y " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_pos_z  =  BoolProperty ( name = " Position Z " ,  description = " Retarget Position Z " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_rot_x  =  BoolProperty ( name = " Rotation X " ,  description = " Retarget Rotation X " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_rot_y  =  BoolProperty ( name = " Rotation Y " ,  description = " Retarget Rotation Y " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_rot_z  =  BoolProperty ( name = " Rotation Z " ,  description = " Retarget Rotation Z " ,  default = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_action_retarget_rot_z  =  BoolProperty ( name = " Rotation Z " ,  description = " Retarget Rotation Z " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_retarget_lnxature  =  PointerProperty ( name = " Armature " ,  description = " Armature " ,  type = bpy . types . Object ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_retarget_overwrite  =  BoolProperty ( name = " Overwrite " ,  description = " Overwrite action " ,  default = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_retarget_from  =  StringProperty ( name = " From Bone " ,  description = " From Bone " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bpy . types . World . lnx_retarget_to  =  StringProperty ( name = " To Bone " ,  description = " To Bone " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    create_wrd ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  create_wrd ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ' Lnx '  not  in  bpy . data . worlds : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd  =  bpy . data . worlds . new ( ' Lnx ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . use_fake_user  =  True  # Store data world object, add fake user to keep it alive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_version  =  lnx_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_commit  =  lnx_commit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  init_properties_on_load ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ' Lnx '  not  in  bpy . data . worlds : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        init_properties ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # New project? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  bpy . data . filepath  ==  ' ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd  =  bpy . data . worlds [ ' Lnx ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_debug_console  =  lnx . utils . get_debug_console_auto ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . utils . fetch_script_names ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  update_leenkx_world ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    global  lnx_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    wrd  =  bpy . data . worlds [ ' Lnx ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # Outdated project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    file_version  =  tuple ( map ( int ,  wrd . lnx_version . split ( ' . ' ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    sdk_version  =  tuple ( map ( int ,  lnx_version . split ( ' . ' ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  bpy . data . filepath  !=  ' '  and  ( file_version  <  sdk_version  or  wrd . lnx_commit  !=  lnx_commit ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # This allows for seamless migration from earlier versions of Leenkx 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        for  rp  in  wrd . lnx_rplist :   # TODO: deprecated 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 19:05:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  hasattr ( rp ,  ' rp_gi ' )  and  rp . rp_gi  !=  ' Off ' : 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-22 16:18:30 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                rp . rp_gi  =  ' Off ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                rp . rp_voxels  =  rp . rp_gi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # For some breaking changes we need to use a special update 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # routine first before regularly replacing nodes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  file_version  <  ( 2021 ,  8 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            lnx . logicnode . replacement . node_compat_sdk2108 ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  file_version  <  ( 2022 ,  3 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            lnx . logicnode . tree_variables . node_compat_sdk2203 ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  file_version  <  ( 2022 ,  9 ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            lnx . logicnode . tree_variables . node_compat_sdk2209 ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        lnx . logicnode . replacement . replace_all ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        print ( f ' Project updated to SDK v { lnx_version } ( { lnx_commit } ) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_version  =  lnx_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        wrd . lnx_commit  =  lnx_commit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        lnx . make . clean ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  register ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    init_properties ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    lnx . utils . fetch_bundled_script_names ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  unregister ( ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pass