Ejemplo n.º 1
0
 public AssetInfo(IncludeStateFlags state, List <AssetUniqueID> links, string spritePackingTag)
 {
     this.state = state;
     linkInfo   = new LinkInfo()
     {
         links = links, spritePackingTag = spritePackingTag
     };
     inboundLinks = null;
 }
Ejemplo n.º 2
0
 public AssetInfo()
 {
     state    = 0;
     linkInfo = new LinkInfo()
     {
         links = null, spritePackingTag = null
     };
     inboundLinks = null;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// ユニークIDの梱包情報取得
        /// </summary>
        public IncludeStateFlags GetIncludeStateFlags(AssetUniqueID uniqueID)
        {
            IncludeStateFlags result = 0;

            if (analyzeData.ContainsKey(uniqueID))
            {
                result = analyzeData[uniqueID].state;
            }
            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// パスの梱包情報取得
        /// </summary>
        public IncludeStateFlags GetIncludeStateFlags(string path)
        {
            IncludeStateFlags result = 0;

            if (pathToGuid.ContainsKey(path))
            {
                var uniqueID = new AssetUniqueID(pathToGuid[path]);
                result = GetIncludeStateFlags(uniqueID);
            }
            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 残りを除外判定
        /// </summary>
        private void ExcludeForLeftovers(ref float doneCount, float progressUnit)
        {
            foreach (var analyzePath in pathToGuid.Keys)
            {
                var analyzeUniqueID = new AssetUniqueID(pathToGuid[analyzePath]);

                var includeCount = 0;
                if (!analyzeData.ContainsKey(analyzeUniqueID) || analyzeData[analyzeUniqueID].state == 0)
                {
                    var linkInfos = GetLinkUniqueIDsFromAssetPath(analyzePath);
                    foreach (var linkInfo in linkInfos)
                    {
                        if (!analyzeData.ContainsKey(linkInfo.Key))
                        {
                            analyzeData.Add(linkInfo.Key, new AssetInfo());
                        }
                        var dat = analyzeData[linkInfo.Key];
                        IncludeStateFlags datState = 0;
                        dat.linkInfo = linkInfo.Value;
                        if (!string.IsNullOrEmpty(dat.spritePackingTag))
                        {
                            var spritePackingTagUniqueID = ConvertSpritePackingTagToUniqueID(dat.spritePackingTag);
                            if (!analyzeData.ContainsKey(spritePackingTagUniqueID))
                            {
                                analyzeData.Add(spritePackingTagUniqueID, new AssetInfo(0, new List <AssetUniqueID>(), null));
                            }
                            analyzeData[spritePackingTagUniqueID].links.Add(analyzeUniqueID);

                            datState = analyzeData[spritePackingTagUniqueID].state;
                        }
                        if (datState == 0)
                        {
                            datState = IncludeStateFlags.NonInclude;
                        }
                        else
                        {
                            ++includeCount;
                        }
                        dat.state = datState;
                    }
                    var includeGuidState = IsIncludeReturn.False;
                    if (0 < includeCount)
                    {
                        includeGuidState = ((linkInfos.Count == includeCount)? IsIncludeReturn.True: IsIncludeReturn.Ambiguous);
                    }
                    includeGuid.Add(analyzeUniqueID.guid, includeGuidState);

                    ++doneCount;
                    analyzeProgress = doneCount * progressUnit;
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 梱包情報を梱包判定に変換
        /// </summary>
        private static IsIncludeReturn ConvertIncludeStateFlagsToIsIncludeReturn(IncludeStateFlags flags)
        {
            var result = IsIncludeReturn.Unknown;

            if (flags == 0)
            {
                //empty.
            }
            else if (flags == IncludeStateFlags.NonInclude)
            {
                result = IsIncludeReturn.False;
            }
            else
            {
                result = IsIncludeReturn.True;
            }
            return(result);
        }