Exemple #1
0
        /// <summary>
        /// 当前场景资源是否下载完了
        /// 需要判断队列中是否存在和是否正在下载
        /// </summary>
        /// <returns></returns>
        public bool IsCurSceneDownloadFinish()
        {
            int  curCount    = BackDownload.GetDataCount(DataLevel.CurScene);
            bool downloading = BackDownload.IsDateLevelDownloading(DataLevel.CurScene);

            UpdateLog.DEBUG_LOG(string.Format("当前场景资源个数剩余:{0} {1} ,是否还有正在下载的:{2}", curCount, DataLevel.CurScene, downloading));
            return(curCount == 0 && downloading == false);
        }
Exemple #2
0
        /// <summary>
        /// 静默后台更新所有资源
        /// </summary>
        public void BackDownloadTotalData()
        {
            Flow8ExCheckResource resource = InstanceFlow8Ex;

            if (resource.BackDownloadList != null)
            {
                for (int i = 0; i < resource.BackDownloadList.Count; i++)
                {
                    BackDownload.AddDataToPool(resource.BackDownloadList[i], DataLevel.Low);
                    _totalBaseResSize += resource.BackDownloadList[i].FileSize;
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 下载资源
        /// </summary>
        /// <param name="absolutPath"></param>
        /// <param name="callback"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public bool DownloadResource(string absolutPath, UpdateAction <string, bool, object> callback, object obj)
        {
            string      fixPath = absolutPath;
            MapFileData data    = null;

            if (!IsExistOrDownloaded(absolutPath, out data, out fixPath))
            {
                if (data != null)
                {
                    lock (BackDownload.GetLocker())
                    {
                        //暂停中,则不接受请求,原样返回
                        if (IsPaused())
                        {
                            UpdateLog.WARN_LOG("当前是暂停状态,直接返回请求:" + absolutPath);
                            data.DownloadCallBack = null;
                            data.ArgObj           = null;
                            callback(fixPath, false, obj);
                            return(true);
                        }
                        else
                        {
                            data.DownloadCallBack = callback;
                            data.ArgObj           = obj;
                            data.DataLevel        = DataLevel.High;
                        }
                    }

                    if (!data.Downloading)
                    {
                        BackDownload.AddDataToPool(data, DataLevel.High);
                    }
                    else
                    {
                        UpdateLog.WARN_LOG("resource is downloading: " + fixPath);
                    }
                }
                else
                {
                    //UpdateLog.WARN_LOG("no map data found: " + absolutPath);
                    callback(absolutPath, false, obj);
                    return(true);
                }
            }
            else
            {
                callback(fixPath, true, obj);
            }

            return(false);
        }
Exemple #4
0
        private void AddDataList(IEnumerable dataList, DataLevel level, bool append = false)
        {
            if (dataList != null && !append)
            {
                BackDownload.ClearData(level);
                if (_sceneResList.ContainsKey(level) && _sceneResList[level] != null)
                {
                    _sceneResList[level].Clear();
                }
            }
            Flow8ExCheckResource resource = InstanceFlow8Ex;
            string      fixPath           = "";
            IEnumerator enumerator        = dataList.GetEnumerator();

            while (enumerator.MoveNext())
            {
                //不存在的文件才加入到下载队列
                if (!Exist(enumerator.Current as string, out fixPath))
                {
                    lock (BackDownload.GetLocker())
                    {
                        MapFileData mapFileData = resource.GetMapFileDataByPath(fixPath);
                        if (((mapFileData == null) || mapFileData.Downloading) || mapFileData.Downloaded)
                        {
                            UpdateLog.WARN_LOG("no map data: " + fixPath);
                        }
                        else
                        {
                            mapFileData.FullPath = fixPath;
                            if (mapFileData.DataLevel > level)
                            {
                                mapFileData.DataLevel = level;
                            }
                            BackDownload.AddDataToPool(mapFileData, level);
                            //添加到当前场景资源列表,用于统计大小,显示进度
                            AddToCurSceneResList(level, mapFileData);
                        }
                    }
                }
            }
        }
Exemple #5
0
 /// <summary>
 /// 是否静默更新下载完了
 /// </summary>
 /// <returns></returns>
 public bool IsBaseResDownloadFinish()
 {
     return(BackDownload.GetDataCount(DataLevel.Low) == 0);
 }
Exemple #6
0
 /// <summary>
 /// 是否暂停当前场景更新
 /// </summary>
 /// <returns></returns>
 public bool IsCurScenePaused()
 {
     return(BackDownload.IsCurScenePaused());
 }
Exemple #7
0
 /// <summary>
 /// 是否暂停静默更新
 /// </summary>
 /// <returns></returns>
 public bool IsBaseResPaused()
 {
     return(BackDownload.IsBaseResPaused());
 }
Exemple #8
0
 /// <summary>
 /// 恢复当前场景下载
 /// </summary>
 public void ResumeCurSceneDownload()
 {
     BackDownload.ResumeLevel(DataLevel.CurScene);
 }
Exemple #9
0
 /// <summary>
 /// 暂停当前场景下载
 /// </summary>
 public void PauseCurSceneDownload()
 {
     BackDownload.PauseLevel(DataLevel.CurScene);
 }
Exemple #10
0
 /// <summary>
 /// 恢复后台下载,与pause成对
 /// </summary>
 public void ResumeBaseDownload()
 {
     BackDownload.ResumeLevel(DataLevel.Low);
 }
Exemple #11
0
 /// <summary>
 /// 暂停后台下载
 /// </summary>
 public void PauseBaseDownload()
 {
     BackDownload.PauseLevel(DataLevel.Low);
 }
Exemple #12
0
 /// <summary>
 /// 恢复所有
 /// </summary>
 public void ResumeAll()
 {
     BackDownload.ResumeAll();
 }
Exemple #13
0
 /// <summary>
 /// 暂停所有
 /// </summary>
 public void PauseAll()
 {
     BackDownload.PauseAll();
 }