bool CheckPhyGeomIfNeedImport(CGfxMeshImportOption option, string phyGeomType) { mPhyAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(CEngine.Instance.FileManager.RemoveExtension(MeshPrimitives.Name.Address) + phyGeomType); if (EngineNS.CEngine.Instance.FileManager.FileExists(mPhyAbsFilePath.Address)) { var userDesire = _OnCreaterAssetImportMessageDumping(this, AssetImportMessageType.AMT_FileExist, 0, "Save", ImportPercent); mOperationResult = FileOperation(userDesire, mPhyAbsFilePath); } if (mOperationResult == AssetImportMessageType.AMT_IgnoreFile) { ImportPercent = 1.0f; _OnCreaterAssetImportMessageDumping(this, AssetImportMessageType.AMT_Import, 0, "Skip", ImportPercent); return(false); } if (mOperationResult == AssetImportMessageType.AMT_RenameFile) { int index = GetValidFileNameSuffix(AssetImportOption.AbsSavePath, option.Name, phyGeomType); mVmsAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(AssetImportOption.AbsSavePath + "/" + option.Name + index.ToString() + phyGeomType); mGmsAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(AssetImportOption.AbsSavePath + "/" + option.Name + index.ToString() + phyGeomType); return(true); } if (mOperationResult == AssetImportMessageType.AMT_DeleteOriginFile) { return(true); } return(true); }
public AssetImportMessageType FileOperation(AssetImportMessageType messageType, RName file) { var operationResult = AssetImportMessageType.AMT_UnKnown; switch (messageType) { case AssetImportMessageType.AMT_DeleteOriginFile: { EngineNS.CEngine.Instance.FileManager.DeleteFile(file.Address); EngineNS.CEngine.Instance.FileManager.DeleteFile(file.Address + EditorCommon.Program.ResourceInfoExt); operationResult = AssetImportMessageType.AMT_DeleteOriginFile; } break; case AssetImportMessageType.AMT_IgnoreFile: { operationResult = AssetImportMessageType.AMT_IgnoreFile; } break; case AssetImportMessageType.AMT_RenameFile: { operationResult = AssetImportMessageType.AMT_RenameFile; } break; default: operationResult = AssetImportMessageType.AMT_UnKnown; break; } return(operationResult); }
public override bool CheckIfNeedImport() { var option = AssetImportOption as CGfxMeshImportOption; if (option.AsPhyGemoConvex || option.AsPhyGemoTri) { if (option.AsPhyGemoConvex) { return(CheckPhyGeomIfNeedImport(option, CEngineDesc.PhyConvexGeom)); } else if (option.AsPhyGemoTri) { return(CheckPhyGeomIfNeedImport(option, CEngineDesc.PhyTriangleMeshGeom)); } else if (option.AsPhyGemoHeightField) { return(CheckPhyGeomIfNeedImport(option, CEngineDesc.PhyHeightFieldGeom)); } } else { mVmsAbsFilePath = MeshPrimitives.Name; mGmsAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(AssetImportOption.AbsSavePath + "/" + option.Name + CEngineDesc.MeshExtension); if (EngineNS.CEngine.Instance.FileManager.FileExists(mVmsAbsFilePath.Address)) { var userDesire = _OnCreaterAssetImportMessageDumping(this, AssetImportMessageType.AMT_FileExist, 0, "Save", ImportPercent); mOperationResult = FileOperation(userDesire, mVmsAbsFilePath); if (option.CreateGms) { FileOperation(userDesire, mGmsAbsFilePath); } } if (mOperationResult == AssetImportMessageType.AMT_IgnoreFile) { ImportPercent = 1.0f; _OnCreaterAssetImportMessageDumping(this, AssetImportMessageType.AMT_Import, 0, "Skip", ImportPercent); return(false); } if (mOperationResult == AssetImportMessageType.AMT_RenameFile) { int index = GetValidFileNameSuffix(AssetImportOption.AbsSavePath, option.Name, CEngineDesc.MeshSourceExtension); mVmsAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(AssetImportOption.AbsSavePath + "/" + option.Name + index.ToString() + CEngineDesc.MeshSourceExtension); mGmsAbsFilePath = RName.EditorOnly_GetRNameFromAbsFile(AssetImportOption.AbsSavePath + "/" + option.Name + index.ToString() + CEngineDesc.MeshExtension); return(true); } if (mOperationResult == AssetImportMessageType.AMT_DeleteOriginFile) { return(true); } } return(true); }
private AssetImportMessageType AssetCreater_OnCreaterAssetImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent) { var totalPercent = 0.0f; using (var it = SingleAsset_File.AssetCreaters.GetEnumerator()) { while (it.MoveNext()) { var creater = it.Current.Value; totalPercent += creater.ImportPercent; } } return((AssetImportMessageType)OnAssetImportMessageDumping?.Invoke(this, SingleAsset_File.FileOption.Name, SingleAsset_File.FileOption.Name, type, level, info, totalPercent / SingleAsset_File.AssetCreaters.Count)); }
private AssetImportMessageType MutiFiles_OnCreaterAssetImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent) { var creater = sender as CGfxAssetCreater; return((AssetImportMessageType)OnAssetImportMessageDumping?.Invoke(this, creater.AssetImportOption.Name, creater.AssetImportOption.Name, type, level, info, 0)); }
protected void _NativeImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent) { ImportPercent = percent * 0.5f; _OnCreaterAssetImportMessageDumping(sender, type, level, info, ImportPercent); }
protected AssetImportMessageType _OnCreaterAssetImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent) { return((AssetImportMessageType)OnCreaterAssetImportMessageDumping?.Invoke(sender, type, level, AssetImportOption.Name + ":" + info, ImportPercent)); }