Exemple #1
0
    public PROJECT_ERROR_TYPE ModifyRefTableAfterRemoveSprite(string[] spritePathTable)
    {
        PROJECT_ERROR_TYPE errorType = PROJECT_ERROR_TYPE.PROJECT_ERROR_NONE;

        if (null == spritePathTable)
        {
            return(PROJECT_ERROR_TYPE.PROJECT_ERROR_SPRITEIMAGE_PATH);
        }

        foreach (var spriteItem in spritePathTable)
        {     //遍历全部移动Sprite
            foreach (var refAssetItem in ReferenceTable)
            { //遍历全部反依赖项目,并删除移动Sprite
                refAssetItem.ReferencingSprite.Remove(System.IO.Path.GetFileNameWithoutExtension(spriteItem));
            }
        }


        //删除无用反依赖记录
        for (int i = ReferenceTable.Count - 1; i >= 0; i--)
        {
            if (0 == ReferenceTable[i].ReferencingSprite.Count)
            {
                ReferenceTable.RemoveAt(i);
            }
        }


        return(errorType);
    }