mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	 09bc9eb101
			
		
	
	
		09bc9eb101
		
			
		
	
	
	
	
		
			
			Change the entire navigation system. Remove editor prefix from nav mesh generator class. It is now used for baking at runtime as well. Navigation supports obstacle avoidance now with the RVO2 library. Nav system will also automatically link all nav meshes together to form one overall complete nav map.
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| Import("env")
 | |
| Import("env_modules")
 | |
| 
 | |
| env_navigation = env_modules.Clone()
 | |
| 
 | |
| # Thirdparty source files
 | |
| 
 | |
| thirdparty_obj = []
 | |
| 
 | |
| # Recast
 | |
| if env["builtin_recast"]:
 | |
|     thirdparty_dir = "#thirdparty/recastnavigation/Recast/"
 | |
|     thirdparty_sources = [
 | |
|         "Source/Recast.cpp",
 | |
|         "Source/RecastAlloc.cpp",
 | |
|         "Source/RecastArea.cpp",
 | |
|         "Source/RecastAssert.cpp",
 | |
|         "Source/RecastContour.cpp",
 | |
|         "Source/RecastFilter.cpp",
 | |
|         "Source/RecastLayers.cpp",
 | |
|         "Source/RecastMesh.cpp",
 | |
|         "Source/RecastMeshDetail.cpp",
 | |
|         "Source/RecastRasterization.cpp",
 | |
|         "Source/RecastRegion.cpp",
 | |
|     ]
 | |
|     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
 | |
| 
 | |
|     env_navigation.Prepend(CPPPATH=[thirdparty_dir + "Include"])
 | |
| 
 | |
|     env_thirdparty = env_navigation.Clone()
 | |
|     env_thirdparty.disable_warnings()
 | |
|     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
 | |
|     env.modules_sources += thirdparty_obj
 | |
| 
 | |
| # RVO2
 | |
| if env["builtin_rvo2"]:
 | |
|     thirdparty_dir = "#thirdparty/rvo2/"
 | |
|     thirdparty_sources = [
 | |
|         "Agent.cpp",
 | |
|         "KdTree.cpp",
 | |
|     ]
 | |
|     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
 | |
| 
 | |
|     env_navigation.Prepend(CPPPATH=[thirdparty_dir])
 | |
| 
 | |
|     env_thirdparty = env_navigation.Clone()
 | |
|     env_thirdparty.disable_warnings()
 | |
|     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
 | |
|     env.modules_sources += thirdparty_obj
 | |
| 
 | |
| 
 | |
| # Godot source files
 | |
| 
 | |
| module_obj = []
 | |
| 
 | |
| env_navigation.add_source_files(module_obj, "*.cpp")
 | |
| 
 | |
| env.modules_sources += module_obj
 | |
| 
 | |
| # Needed to force rebuilding the module files when the thirdparty library is updated.
 | |
| env.Depends(module_obj, thirdparty_obj)
 |