/// <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); }
/// <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; } } }
/// <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); }
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); } } } } }
/// <summary> /// 是否静默更新下载完了 /// </summary> /// <returns></returns> public bool IsBaseResDownloadFinish() { return(BackDownload.GetDataCount(DataLevel.Low) == 0); }
/// <summary> /// 是否暂停当前场景更新 /// </summary> /// <returns></returns> public bool IsCurScenePaused() { return(BackDownload.IsCurScenePaused()); }
/// <summary> /// 是否暂停静默更新 /// </summary> /// <returns></returns> public bool IsBaseResPaused() { return(BackDownload.IsBaseResPaused()); }
/// <summary> /// 恢复当前场景下载 /// </summary> public void ResumeCurSceneDownload() { BackDownload.ResumeLevel(DataLevel.CurScene); }
/// <summary> /// 暂停当前场景下载 /// </summary> public void PauseCurSceneDownload() { BackDownload.PauseLevel(DataLevel.CurScene); }
/// <summary> /// 恢复后台下载,与pause成对 /// </summary> public void ResumeBaseDownload() { BackDownload.ResumeLevel(DataLevel.Low); }
/// <summary> /// 暂停后台下载 /// </summary> public void PauseBaseDownload() { BackDownload.PauseLevel(DataLevel.Low); }
/// <summary> /// 恢复所有 /// </summary> public void ResumeAll() { BackDownload.ResumeAll(); }
/// <summary> /// 暂停所有 /// </summary> public void PauseAll() { BackDownload.PauseAll(); }