示例#1
0
    public void RemoveDownloadIndex(string indexNames, DownloadType type)
    {
        FCIndexDownloadInfo targetDownloadInfo = downloadList.Find(delegate(FCIndexDownloadInfo obj)
        {
            if (indexNames == obj.IndexDownloadName && type == obj.IndexDownloadType)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        });

        if (targetDownloadInfo != null)
        {
            downloadList.Remove(targetDownloadInfo);
        }

        if (curDownloadingIndex != null &&
            curDownloadingIndex.IndexDownloadName == indexNames &&
            curDownloadingIndex.IndexDownloadType == type)
        {
            curDownloadingIndex = null;
        }
    }
示例#2
0
 public void RemoveAllDownloads(DownloadType type)
 {
     downloadList.RemoveAll(delegate(FCIndexDownloadInfo obj)
     {
         return(obj.IndexDownloadType == type);
     });
     curDownloadingIndex = null;
 }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        if (!IsDownloadManagerInited || DCInfoCache == null || !DCInfoCache.Ready)
        {
            return;
        }

        if (curDownloadingIndex == null && downloadList.Count > 0)
        {
            curDownloadingIndex = downloadList[0];
            StartDownloadIndex(curDownloadingIndex);
        }
    }
示例#4
0
 public void AddDownloadIndex(string[] indexNames, DownloadType type)
 {
     foreach (string targetIndexName in indexNames)
     {
         if (!downloadList.Exists(delegate(FCIndexDownloadInfo obj) {
             return(obj.IndexDownloadName == targetIndexName);
         }))
         {
             FCIndexDownloadInfo newInfo = new FCIndexDownloadInfo(targetIndexName, type);
             downloadList.Add(newInfo);
             Debug.Log("FCdonwload mananger add new index: " + newInfo.IndexDownloadName);
         }
     }
 }
示例#5
0
    private void StartDownloadIndex(FCIndexDownloadInfo info)
    {
        DynamicContent.OnSuccess = delegate
        {
            if (info.IndexDownloadType == DownloadType.DT_Background)
            {
                AddIndexIntoStorageList(info.IndexDownloadName);
            }
            if (OnDownloadSuccess != null)
            {
                OnDownloadSuccess(curDownloadingIndex);
            }
            if (!downloadedIndexList.Contains(info))
            {
                downloadedIndexList.Add(info);
            }
            curDownloadingIndex = null;
            downloadList.RemoveAt(0);

            if (downloadList.Count == 0 && OnAllDownloadFinished != null)
            {
                OnAllDownloadFinished();
            }
        };

        DynamicContent.OnFail = delegate {
            if (info.IndexDownloadType == DownloadType.DT_Background)
            {
            }
            if (OnDownloadFailed != null)
            {
                OnDownloadFailed(curDownloadingIndex);
            }
        };
        if (OnStartNewDownload != null)
        {
            OnStartNewDownload(curDownloadingIndex);
        }
        //DynamicContent.Init(URL_TO_AMAZON_S3);
        DynamicContentParam param = new DynamicContentParam();

        param.SpecialIndexName        = curDownloadingIndex.IndexDownloadName;
        param.IsAddonContent          = false;
        param.DCInfoCache             = DCInfoCache;
        param.TargetIndexDownloadInfo = curDownloadingIndex;
        DynamicContent.StartContentUpdate(param);
    }
示例#6
0
    public float UpdateDownloadingProgress(string[] indexNames, bool isCheckCacheLoad)
    {
        List <FCIndexDownloadInfo> targetList     = new List <FCIndexDownloadInfo>();
        List <FCIndexDownloadInfo> downloadedList = new List <FCIndexDownloadInfo>();

        foreach (string curIndexName in indexNames)
        {
            FCIndexDownloadInfo info = downloadList.Find(delegate(FCIndexDownloadInfo obj)
            {
                return(obj.IndexDownloadName == curIndexName);
            });
            if (info != null)
            {
                targetList.Add(info);
                continue;
            }

            info = downloadedIndexList.Find(delegate(FCIndexDownloadInfo obj)
            {
                return(obj.IndexDownloadName == curIndexName);
            });
            if (info != null)
            {
                downloadedList.Add(info);
                continue;
            }
        }

        int indexFinished = downloadedList.Count;        //indexNames.Length - targetList.Count;

        float percentagePerIndex = MaxPercentage / indexNames.Length;
        float totalPercentage    = indexFinished * percentagePerIndex;

        foreach (FCIndexDownloadInfo curIndexInfo in targetList)
        {
            float totalAssetBundleFinished = 0.0f;
            if (curIndexInfo.IndexDownloadInfo == null || curIndexInfo.IndexDownloadInfo.assetBundleInfo.Length == 0)
            {
                continue;
            }
            foreach (InJoy.AssetBundles.AssetBundleInfo curBundleInfo in curIndexInfo.IndexDownloadInfo.assetBundleInfo)
            {
                if (!isCheckCacheLoad)
                {
                    if (curBundleInfo.downloadInfo.CurDownloadSource == DownloadManager.Download.DownloadSource.Online)
                    {
                        totalAssetBundleFinished += curBundleInfo.downloadInfo.ReceivingProgress;
                    }
                }
                else
                {
                    totalAssetBundleFinished += curBundleInfo.downloadInfo.ReceivingProgress;
                }
            }
            float indexFinishedPercentage = totalAssetBundleFinished / curIndexInfo.IndexDownloadInfo.assetBundleInfo.Length;
            totalPercentage += percentagePerIndex * indexFinishedPercentage;
        }
        //Debug.Log("Download Index Count : " + indexNames.Length);
        //Debug.Log("Download Percentage : " + totalPercentage);
        return(totalPercentage);
    }
示例#7
0
 public void RestartAllDownloads()
 {
     curDownloadingIndex = null;
 }