Пример #1
0
 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);
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
 protected void _NativeImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent)
 {
     ImportPercent = percent * 0.5f;
     _OnCreaterAssetImportMessageDumping(sender, type, level, info, ImportPercent);
 }
Пример #7
0
 protected AssetImportMessageType _OnCreaterAssetImportMessageDumping(object sender, AssetImportMessageType type, int level, string info, float percent)
 {
     return((AssetImportMessageType)OnCreaterAssetImportMessageDumping?.Invoke(sender, type, level, AssetImportOption.Name + ":" + info, ImportPercent));
 }