예제 #1
0
파일: ModTek.cs 프로젝트: Tyler-IN/ModTek
        public static void TryAddToVersionManifest(VersionManifest manifest)
        {
            foreach (var entryKvp in NewManifestEntries)
            {
                var id       = entryKvp.Key;
                var newEntry = entryKvp.Value;

                if (newEntry.ShouldMergeJSON && manifest.Contains(id, newEntry.Type))
                {
                    // read the manifest pointed entry and hash the contents
                    JsonHashToId.Add(File.ReadAllText(manifest.Get(id, newEntry.Type).FilePath).GetHashCode(), id);

                    // The manifest already contains this information, so we need to queue it to be merged
                    var partialJson = File.ReadAllText(newEntry.Path);

                    if (!JsonMerges.ContainsKey(id))
                    {
                        JsonMerges.Add(id, new List <string>());
                    }

                    Log($"\tAdding id {id} to JSONMerges");
                    JsonMerges[id].Add(partialJson);
                }
                else
                {
                    // This is a new definition or a replacement that doesn't get merged, so add or update the manifest
                    Log($"\tAddOrUpdate({id}, {newEntry.Path}, {newEntry.Type}, {DateTime.Now}, {newEntry.AssetBundleName}, {newEntry.AssetBundlePersistent})");
                    manifest.AddOrUpdate(id, newEntry.Path, newEntry.Type, DateTime.Now, newEntry.AssetBundleName, newEntry.AssetBundlePersistent);
                }
            }
        }