diff --git a/.gitmodules b/.gitmodules
index 35ec1dac7..626e6cc05 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,3 +2,6 @@
path = godot-cpp
url = https://github.com/godotengine/godot-cpp.git
branch = master
+[submodule "rider-cpp-msbuild"]
+ path = rider-cpp-msbuild
+ url = https://github.com/JetBrains/rider-cpp-msbuild.git
diff --git a/Terrain3D.sln b/Terrain3D.sln
index 14fc3218e..4b57521b5 100644
--- a/Terrain3D.sln
+++ b/Terrain3D.sln
@@ -1,5 +1,4 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
+Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34024.191
MinimumVisualStudioVersion = 10.0.40219.1
@@ -7,20 +6,73 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Terrain3D", "Terrain3D.vcxp
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
+ Debug|windows-x86_32 = Debug|windows-x86_32
+ Release|windows-x86_32 = Release|windows-x86_32
+ Debug|windows-x86_64 = Debug|windows-x86_64
+ Release|windows-x86_64 = Release|windows-x86_64
+
+ Debug|linux-x86_64 = Debug|linux-x86_64
+ Release|linux-x86_64 = Release|linux-x86_64
+ Debug|linux-arm64 = Debug|linux-arm64
+ Release|linux-arm64 = Release|linux-arm64
+ Debug|linux-rv64 = Debug|linux-rv64
+ Release|linux-rv64 = Release|linux-rv64
+
+ Debug|macos = Debug|macos
+ Release|macos = Release|macos
+
+ Debug|ios-arm64 = Debug|ios-arm64
+ Release|ios-arm64 = Release|ios-arm64
+
+ Debug|android-x86_64 = Debug|android-x86_64
+ Release|android-x86_64 = Release|android-x86_64
+ Debug|android-arm64 = Debug|android-arm64
+ Release|android-arm64 = Release|android-arm64
+
+ Debug|web-wasm32 = Debug|web-wasm32
+ Release|web-wasm32 = Release|web-wasm32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|x64.ActiveCfg = Debug|x64
- {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|x64.Build.0 = Debug|x64
- {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|x86.ActiveCfg = Debug|Win32
- {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|x86.Build.0 = Debug|Win32
- {B8850C81-3339-46A9-9668-CAA004E84629}.Release|x64.ActiveCfg = Release|x64
- {B8850C81-3339-46A9-9668-CAA004E84629}.Release|x64.Build.0 = Release|x64
- {B8850C81-3339-46A9-9668-CAA004E84629}.Release|x86.ActiveCfg = Release|Win32
- {B8850C81-3339-46A9-9668-CAA004E84629}.Release|x86.Build.0 = Release|Win32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|windows-x86_32.ActiveCfg = Debug|Win32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|windows-x86_32.Build.0 = Debug|Win32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|windows-x86_32.ActiveCfg = Release|Win32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|windows-x86_32.Build.0 = Release|Win32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|windows-x86_64.ActiveCfg = Debug|x64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|windows-x86_64.Build.0 = Debug|x64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|windows-x86_64.ActiveCfg = Release|x64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|windows-x86_64.Build.0 = Release|x64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-x86_64.ActiveCfg = Debug|linux-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-x86_64.Build.0 = Debug|linux-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-x86_64.ActiveCfg = Release|linux-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-x86_64.Build.0 = Release|linux-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-arm64.ActiveCfg = Debug|linux-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-arm64.Build.0 = Debug|linux-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-arm64.ActiveCfg = Release|linux-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-arm64.Build.0 = Release|linux-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-rv64.ActiveCfg = Debug|linux-rv64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|linux-rv64.Build.0 = Debug|linux-rv64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-rv64.ActiveCfg = Release|linux-rv64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|linux-rv64.Build.0 = Release|linux-rv64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|macos.ActiveCfg = Debug|macos
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|macos.Build.0 = Debug|macos
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|macos.ActiveCfg = Release|macos
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|macos.Build.0 = Release|macos
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|ios-arm64.ActiveCfg = Debug|ios-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|ios-arm64.Build.0 = Debug|ios-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|ios-arm64.ActiveCfg = Release|ios-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|ios-arm64.Build.0 = Release|ios-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|android-x86_64.ActiveCfg = Debug|android-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|android-x86_64.Build.0 = Debug|android-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|android-x86_64.ActiveCfg = Release|android-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|android-x86_64.Build.0 = Release|android-x86_64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|android-arm64.ActiveCfg = Debug|android-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|android-arm64.Build.0 = Debug|android-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|android-arm64.ActiveCfg = Release|android-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|android-arm64.Build.0 = Release|android-arm64
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|web-wasm32.ActiveCfg = Debug|web-wasm32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Debug|web-wasm32.Build.0 = Debug|web-wasm32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|web-wasm32.ActiveCfg = Release|web-wasm32
+ {B8850C81-3339-46A9-9668-CAA004E84629}.Release|web-wasm32.Build.0 = Release|web-wasm32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Terrain3D.vcxproj b/Terrain3D.vcxproj
index 66ee340b3..7f8e7ad27 100644
--- a/Terrain3D.vcxproj
+++ b/Terrain3D.vcxproj
@@ -1,276 +1,139 @@
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 17.0
- Win32Proj
- {b8850c81-3339-46a9-9668-caa004e84629}
- Terrain3D
- 10.0
-
-
-
- Application
- true
- v143
- Unicode
-
-
- Application
- false
- v143
- true
- Unicode
-
-
- Makefile
- true
- v143
- Unicode
-
-
- Application
- false
- v143
- true
- Unicode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- scons dev_build=yes
- scons dev_build=yes
- scons --clean
- $(SolutionDir)\src;$(SolutionDir)\godot-cpp\gdextension;$(SolutionDir)\godot-cpp\gen\include;$(SolutionDir)\godot-cpp\include
- /std:c++17
- .vs
- .vs
- GDEXTENSION
-
-
-
- Level3
- true
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
-
-
-
-
- Level3
- true
- true
- true
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
- true
- true
-
-
-
-
- Level3
- true
- _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
-
-
- .vs/Terrain3D-build.log
-
-
-
-
- Level3
- true
- true
- true
- NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
-
-
- Console
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Document
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))
+
+
+
+ {B8850C81-3339-46A9-9668-CAA004E84629}
+ Terrain3D
+ MakeFileProj
+ NoUpgrade
+
+
+
+ template_debug
+ dev_build=yes
+
+
+
+ template_release
+
+
+
+
+ windows
+ x86_32
+
+
+ windows
+ x86_64
+
+
+
+
+ linux
+ x86_64
+
+
+ linux
+ arm64
+
+
+ linux
+ rv64
+
+
+
+
+ macos
+
+
+
+
+
+ ios
+ arm64
+
+
+
+
+ android
+ x86_64
+
+
+ android
+ arm64
+
+
+
+
+ web
+ wasm32
+
+
+
+ $([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))
+ $([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))
+ $([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))
+
+
+
+
+
+ single
+ threads
+
+
+
+
+ Makefile
+ false
+ v143
+ Clang_Mac
+ Clang_Linux
+ Clang_Linux
+ Clang_Linux
+ Unknown
+
+ $(RepoRoot)
+ dylib
+ $(RepoRoot)/project
+ $(RepoRoot)/src;$(RepoRoot)/godot-cpp/gen/include;$(RepoRoot)/godot-cpp/include;$(RepoRoot)/godot-cpp/gdextension;$(NMakeIncludeSearchPath);
+ GDEXTENSION;$(NMakePreprocessorDefinitions)
+
+
+
+ scons platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate) $(BuildType)
+ scons --clean platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate) && scons platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate)
+ scons --clean platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate)
+
+
+
+ cmd /V /C set "PATH=$(PATH)" ^& scons platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate) $(BuildType)
+ cmd /V /C set "PATH=$(PATH)" ^& scons --clean platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate) ^& scons platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate)
+ cmd /V /C set "PATH=$(PATH)" ^& scons --clean platform=$(GodotPlatform) arch=$(Arch) target=$(GodotTemplate)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ stdcpp17
+
+
+
+
+
+