コード例 #1
0
    public bool CheckReverseDependencyAtlasFilter(string atlasPrefab)
    {
        bool needFiltrate = false;

        if (string.IsNullOrEmpty(atlasPrefab))
        {
            return(false);
        }

        AtlasFiltrateInfo info = null;

        if (m_reverseDependencyFilter.TryGetValue(atlasPrefab, out info))
        {
            if (info.IsWholeFiltrate)
            {
                needFiltrate = true;
            }
            else
            {
                needFiltrate = false;
            }
        }
        else
        {
            needFiltrate = false;
        }

        return(needFiltrate);
    }
コード例 #2
0
    private KeyValuePair <string, AtlasFiltrateInfo> FixAtlasFiltrateInfo(string readStr)
    {
        KeyValuePair <string, AtlasFiltrateInfo> filtrateInfo = new KeyValuePair <string, AtlasFiltrateInfo>(string.Empty, null);

        if (string.IsNullOrEmpty(readStr))
        {
            return(filtrateInfo);
        }

        if (readStr.EndsWith(".atlasproj"))
        {
            AtlasFiltrateInfo newInfo = new AtlasFiltrateInfo();

            newInfo.IsWholeFiltrate = true;

            filtrateInfo = new KeyValuePair <string, AtlasFiltrateInfo>(readStr, newInfo);
        }
        else
        {
            int spaceIndex = readStr.LastIndexOf(' ');
            if (spaceIndex > 0)
            {
                AtlasFiltrateInfo newInfo = new AtlasFiltrateInfo();

                string atlasPath = readStr.Substring(0, spaceIndex);
                newInfo.IsWholeFiltrate = false;
                newInfo.SpriteTbl.Add(readStr.Substring(spaceIndex + 1, readStr.Length - spaceIndex - 1));

                filtrateInfo = new KeyValuePair <string, AtlasFiltrateInfo>(atlasPath, newInfo);
            }
        }

        return(filtrateInfo);
    }
コード例 #3
0
    private void UpdateAtlasFilter(string readStr, ref Dictionary <string, AtlasFiltrateInfo> atlasFilter)
    {
        if (string.IsNullOrEmpty(readStr))
        {
            return;
        }

        if (null == atlasFilter)
        {
            atlasFilter = new Dictionary <string, AtlasFiltrateInfo>();
        }

        KeyValuePair <string, AtlasFiltrateInfo> filtrateInfo = FixAtlasFiltrateInfo(readStr);

        if (!string.IsNullOrEmpty(filtrateInfo.Key))
        {
            AtlasFiltrateInfo existInfo = null;

            if (atlasFilter.TryGetValue(filtrateInfo.Key, out existInfo))
            {
                if (
                    (false == existInfo.IsWholeFiltrate) &&
                    (true == filtrateInfo.Value.IsWholeFiltrate)
                    )
                {
                    atlasFilter.Remove(filtrateInfo.Key);
                    atlasFilter.Add(filtrateInfo.Key, filtrateInfo.Value);
                }
                else if (
                    (false == existInfo.IsWholeFiltrate) &&
                    (false == filtrateInfo.Value.IsWholeFiltrate)
                    )
                {
                    foreach (var item in filtrateInfo.Value.SpriteTbl)
                    {
                        if (!existInfo.SpriteTbl.Contains(item))
                        {
                            existInfo.SpriteTbl.Add(item);
                        }
                    }
                }
            }
            else
            {
                atlasFilter.Add(filtrateInfo.Key, filtrateInfo.Value);
            }
        }
    }
コード例 #4
0
    public bool CheckNoneDependencySpriteFilter(string atlasPrefab, string spriteName)
    {
        bool needFiltrate = false;

        if (
            string.IsNullOrEmpty(atlasPrefab) ||
            string.IsNullOrEmpty(spriteName)
            )
        {
            return(false);
        }

        AtlasFiltrateInfo info = null;

        if (m_noneDependencyFilter.TryGetValue(atlasPrefab, out info))
        {
            if (info.IsWholeFiltrate)
            {
                needFiltrate = true;
            }
            else
            {
                if (info.SpriteTbl.Contains(spriteName))
                {
                    needFiltrate = true;
                }
                else
                {
                    needFiltrate = false;
                }
            }
        }
        else
        {
            needFiltrate = false;
        }

        return(needFiltrate);
    }