Exemplo n.º 1
0
        private PatchData MakePatchData(string path, uint crc, string[] names)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }
            if (names == null)
            {
                return(null);
            }
            if (names.Length <= 0)
            {
                return(null);
            }

            var name = Path.GetFileName(path);

            var refPath = path.Remove(0, mOutPath.Length);

            if (refPath.StartsWith("/"))
            {
                refPath = refPath.Remove(0, "/".Length);
            }

            refPath = refPath.Replace(name, string.Empty);

            var file = new FileInfo(path);

            if (file == null)
            {
                return(null);
            }

            var size = file.Length;

            if (size <= 0)
            {
                return(null);
            }

            name = name.Replace(".asset", ".lzf");
            var data = new PatchData(name, 0, crc, size, names, refPath);

            if (data == null)
            {
                return(null);
            }

            return(data);
        }
Exemplo n.º 2
0
        public void UpdateData(PatchData data)
        {
            if (mDatas == null)
            {
                return;
            }

            if (mDatas.ContainsKey(data.Name))
            {
                mDatas[data.Name].CRC   = data.CRC;
                mDatas[data.Name].Names = data.Names;
            }
            else
            {
                mDatas.Add(data.Name, data);
            }
        }
Exemplo n.º 3
0
        private Dictionary <string, PatchData> GetPatchDatas(JsonUnity json)
        {
            var datas = new Dictionary <string, PatchData>();
            var array = json.GetArrayWithKey("Datas");

            JsonObject obj  = null;
            PatchData  data = null;

            for (var i = default(int); i < array.GetCount(); ++i)
            {
                obj  = array.GetObjectWithIndex(i);
                data = new PatchData(obj);
                datas.Add(string.Format("{0}{1}", data.Path, data.Name), data);
            }

            return(datas);
        }
Exemplo n.º 4
0
        public PatchList(string jsonData)
        {
            if (string.IsNullOrEmpty(jsonData))
            {
                return;
            }

            var json = new JsonUnity(jsonData);

            if (json == null)
            {
                return;
            }

            if (!string.IsNullOrEmpty(json.GetError()))
            {
                return;
            }

            if (mDatas == null)
            {
                mDatas = new Dictionary <string, PatchData>();
            }

            mDatas.Clear();

            var array = json.GetArrayWithKey("Datas");

            if (array == null)
            {
                return;
            }

            JsonObject obj  = null;
            PatchData  data = null;

            for (var i = default(int); i < array.GetCount(); ++i)
            {
                obj  = array.GetObjectWithIndex(i);
                data = new PatchData(obj);

                mDatas.Add(string.Format("{0}{1}", data.Path, data.Name), data);
            }
        }
Exemplo n.º 5
0
        private Dictionary <string, PatchData> GetCompareDatas(Dictionary <string, PatchData> newDatas, string text)
        {
            var json = new JsonUnity(text);

            if (json == null)
            {
                return(newDatas);
            }

            var error = json.GetError();

            if (!string.IsNullOrEmpty(error))
            {
                Debug.LogError(error);
                return(newDatas);
            }

            var array = json.GetArrayWithKey("Datas");

            if (array == null)
            {
                return(newDatas);
            }

            JsonObject obj  = null;
            PatchData  info = null;

            mDatas = new Dictionary <string, PatchData>();
            for (var i = default(int); i < array.GetCount(); ++i)
            {
                obj  = array.GetObjectWithIndex(i);
                info = new PatchData(obj);
                mDatas.Add(info.Name, info);
            }

            var       updateDatas = new Dictionary <string, PatchData>();
            PatchData data        = null;
            var       path        = string.Empty;
            var       name        = string.Empty;

            foreach (KeyValuePair <string, PatchData> pair in newDatas)
            {
                data = pair.Value;
                name = data.Name.Replace(".lzf", ".asset");
                path = string.Format("{0}/{1}{2}", Application.persistentDataPath, data.Path, name);
                if (File.Exists(path))
                {
                    if (mDatas.ContainsKey(data.Name))
                    {
                        if (data.Path.Contains("data/"))
                        {
                            if (data.Name[default(int)].Equals(mDatas[data.Name].Names[default(int)]))
                            {
                                continue;
                            }
                        }
                        else
                        {
                            if (data.CRC.Equals(mDatas[data.Name].CRC))
                            {
                                continue;
                            }
                        }

                        updateDatas.Add(data.Name, data);
                    }
                    else
                    {
                        updateDatas.Add(data.Name, data);
                    }
                }
                else
                {
                    updateDatas.Add(data.Name, data);
                }
            }

            return(updateDatas);
        }