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); }
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); }
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); } } }
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); }