public static string GetClassName(EngineNS.RName rname) { return(rname.PureName()); }
public override string ToString() { return(MapRName.PureName()); }
protected override async Task <bool> MoveToFolderOverride(string absFolder, EngineNS.RName currentResourceName) { var tagRName = EngineNS.RName.EditorOnly_GetRNameFromAbsFile(absFolder + currentResourceName.PureName(true)); var rc = EngineNS.CEngine.Instance.RenderContext; if (EngineNS.CEngine.Instance.FileManager.FileExists(tagRName.Address)) { if (EditorCommon.MessageBox.Show($"文件夹{absFolder}已存在文件{currentResourceName.PureName()},是否替换?") != EditorCommon.MessageBox.enMessageBoxResult.Yes) { return(false); } } // var EngineNS.CEngine.Instance.FileManager.MoveFile(currentResourceName.Address + EngineNS.Graphics.CGfxMaterial.ShaderDefineExtension, tagRName.Address + EngineNS.Graphics.CGfxMaterial.ShaderDefineExtension); // code EngineNS.CEngine.Instance.FileManager.MoveFile(currentResourceName.Address + EngineNS.Graphics.CGfxMaterial.ShaderIncludeExtension, tagRName.Address + EngineNS.Graphics.CGfxMaterial.ShaderIncludeExtension); // link if (EngineNS.CEngine.Instance.FileManager.FileExists(currentResourceName.Address + EngineNS.Graphics.CGfxMaterial.ShaderLinkExtension)) { EngineNS.CEngine.Instance.FileManager.MoveFile(currentResourceName.Address + EngineNS.Graphics.CGfxMaterial.ShaderLinkExtension, tagRName.Address + EngineNS.Graphics.CGfxMaterial.ShaderLinkExtension); } // snapshot if (EngineNS.CEngine.Instance.FileManager.FileExists(currentResourceName.Address + EditorCommon.Program.SnapshotExt)) { EngineNS.CEngine.Instance.FileManager.MoveFile(currentResourceName.Address + EditorCommon.Program.SnapshotExt, tagRName.Address + EditorCommon.Program.SnapshotExt); } // material EngineNS.CEngine.Instance.FileManager.MoveFile(currentResourceName.Address, tagRName.Address); var mat = await EngineNS.CEngine.Instance.MaterialManager.GetMaterialAsync(rc, tagRName, true); mat.Name = tagRName; mat.SaveMaterial(); // 刷新所有材质实例 // 刷新所有打开的材质实例编辑器 //var matInsFiles = EngineNS.CEngine.Instance.FileManager.GetFiles(EngineNS.CEngine.Instance.FileManager.Content, "*" + EngineNS.CEngineDesc.MaterialInstanceExtension, System.IO.SearchOption.AllDirectories); //List<string> refreshedMatIns = new List<string>(); //foreach (var ctrlData in EditorCommon.PluginAssist.Process.ControlsDic) //{ // if (ctrlData.Key.GetExtension() == EngineNS.CEngineDesc.MaterialInstanceExtension.TrimStart('.')) // { // var matIns = await EngineNS.CEngine.Instance.MaterialInstanceManager.GetMaterialInstanceAsync(rc, ctrlData.Key); // if (matIns.Material.Name == currentResourceName) // { // EngineNS.CEngine.Instance.MaterialInstanceManager.RemoveMaterialFromDic(ctrlData.Key); // var matInsEditor = ctrlData.Value.Content as MaterialInstanceEditorControl; // var insResInfo = matInsEditor.CurrentContext.ResInfo as MaterialInstanceResourceInfo; // insResInfo.ParentMaterialRName = tagRName; // await insResInfo.Save(); // matIns.OnlySetMaterialName(tagRName); // refreshedMatIns.Add(tagRName.Address); // matIns.SaveMaterialInstance(); // } // } //} //foreach(var file in matInsFiles) //{ // var relFile = EngineNS.CEngine.Instance.FileManager._GetRelativePathFromAbsPath(file, EngineNS.CEngine.Instance.FileManager.Content); // var rName = EngineNS.CEngine.Instance.FileManager.GetRName(relFile); // if (refreshedMatIns.Contains(rName.Address)) // continue; // var rInfo = await EditorCommon.Resources.ResourceInfoManager.Instance.CreateResourceInfoFromResource(rName.Address) as ResourceInfos.MaterialInstanceResourceInfo; // await rInfo.Load(rName.Address + EditorCommon.Program.ResourceInfoExt); // if (rInfo.ParentMaterialRName == currentResourceName) // { // rInfo.ParentMaterialRName = tagRName; // await rInfo.Save(); // var matIns = await EngineNS.CEngine.Instance.MaterialInstanceManager.GetMaterialInstanceAsync(rc, rName); // EngineNS.CEngine.Instance.MaterialInstanceManager.RemoveMaterialFromDic(rName); // matIns.OnlySetMaterialName(tagRName); // //matIns.Editor_SetMaterial(mat); // matIns.SaveMaterialInstance(); // } //} return(true); }