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); }
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); } }
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); }
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); } }
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); }