예제 #1
0
        /** 计算新的更新包的资源大小 */
        public static void countNewVersionSize(VersionSaveData data, VersionReData re)
        {
            re.size         = 0;
            re.isOnlyConfig = true;

            data.resourceDic.forEachValue(v =>
            {
                ResourceSaveData oldData = _versionData.resourceDic.get(v.name);

                if (oldData != null)
                {
                    //需要下载的部分
                    if (oldData.version < v.version ||
                        (v.state == ResourceSaveStateType.None && ResourceSaveType.needFirst(v.saveType) && oldData.state == ResourceSaveStateType.None))
                    {
                        re.size += v.size;

                        if (re.isOnlyConfig && !v.name.StartsWith(ShineGlobal.configDirPath))
                        {
                            re.isOnlyConfig = false;
                        }
                    }
                }
            });

            if (re.size == 0)
            {
                re.isOnlyConfig = false;
            }
        }
예제 #2
0
        /** 预备下载 */
        public static int preDownLoad()
        {
            _needLoadSize = 0;
            _loadQueue    = new SQueue <ResourceSaveData>();

            _versionData.resourceDic.forEachValue(v =>
            {
                //未处理的且需要下载的部分
                if (v.state == ResourceSaveStateType.None && ResourceSaveType.needFirst(v.saveType))
                {
                    _loadQueue.offer(v);
                    _needLoadSize += v.size;
                }
            });

            return(_needLoadSize);
        }