Bläddra i källkod

Mono: Create player script metadata when building manually

Previously this was only done when building the script for running the game. This was a problem because the user could want to build the project manually with the "Build project" button, to then run the game from the command line or similar.
Ignacio Etcheverry 6 år sedan
förälder
incheckning
5f8c30fbca

+ 1 - 0
modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj

@@ -8,6 +8,7 @@
     <RootNamespace>GodotSharpTools</RootNamespace>
     <RootNamespace>GodotSharpTools</RootNamespace>
     <AssemblyName>GodotSharpTools</AssemblyName>
     <AssemblyName>GodotSharpTools</AssemblyName>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <BaseIntermediateOutputPath>obj</BaseIntermediateOutputPath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
     <DebugSymbols>true</DebugSymbols>

+ 12 - 2
modules/mono/editor/mono_bottom_panel.cpp

@@ -156,10 +156,20 @@ void MonoBottomPanel::_build_project_pressed() {
 	if (!FileAccess::exists(GodotSharpDirs::get_project_sln_path()))
 	if (!FileAccess::exists(GodotSharpDirs::get_project_sln_path()))
 		return; // No solution to build
 		return; // No solution to build
 
 
-	String scripts_metadata_path = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor");
-	Error metadata_err = CSharpProject::generate_scripts_metadata(GodotSharpDirs::get_project_csproj_path(), scripts_metadata_path);
+	String scripts_metadata_path_editor = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor");
+	String scripts_metadata_path_player = GodotSharpDirs::get_res_metadata_dir().plus_file("scripts_metadata.editor_player");
+
+	Error metadata_err = CSharpProject::generate_scripts_metadata(GodotSharpDirs::get_project_csproj_path(), scripts_metadata_path_editor);
 	ERR_FAIL_COND(metadata_err != OK);
 	ERR_FAIL_COND(metadata_err != OK);
 
 
+	if (FileAccess::exists(scripts_metadata_path_editor)) {
+		DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+		Error copy_err = da->copy(scripts_metadata_path_editor, scripts_metadata_path_player);
+
+		ERR_EXPLAIN("Failed to copy scripts metadata file");
+		ERR_FAIL_COND(copy_err != OK);
+	}
+
 	bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools");
 	bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools");
 
 
 	if (build_success) {
 	if (build_success) {