private static void AddFileToContentProject(ProjectBase project, bool useContentPipeline, bool shouldLink, string fileToAddAbsolute)
{
string relativeFileName = FileManager.MakeRelative(
fileToAddAbsolute,
FileManager.GetDirectory(project.ContentProject.FullFileName) + project.ContentProject.ContentDirectory);
if (relativeFileName.StartsWith(ContentDirectoryRelative))
{
relativeFileName = relativeFileName.Substring(ContentDirectoryRelative.Length);
}
if (!useContentPipeline && project.ContentProject.IsFilePartOfProject(fileToAddAbsolute, BuildItemMembershipType.CompileOrContentPipeline))
{
ReferencedFileSave rfs = ObjectFinder.Self.GetReferencedFileSaveFromFile(fileToAddAbsolute);
if (rfs != null)
{
rfs.UseContentPipeline = false;
ContentPipelineHelper.ReactToUseContentPipelineChange(rfs);
}
}
else if (useContentPipeline && project.ContentProject.IsFilePartOfProject(fileToAddAbsolute, BuildItemMembershipType.CopyIfNewer))
{
ReferencedFileSave rfs = ObjectFinder.Self.GetReferencedFileSaveFromFile(fileToAddAbsolute);
if (rfs != null)
{
rfs.UseContentPipeline = true;
ContentPipelineHelper.ReactToUseContentPipelineChange(rfs);
}
}
else
{
project.ContentProject.AddContentBuildItem(
fileToAddAbsolute,
shouldLink ? SyncedProjectRelativeType.Linked : SyncedProjectRelativeType.Contained,
useContentPipeline);
}
PluginManager.ReceiveOutput("Added " + relativeFileName + " to project as content");
}