diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs index 753c1c6840fc9b971c347b820a8c5992106f31d7..48e937b367f56c5cdc3f5a7164badc44db36f6b8 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs @@ -89,11 +89,11 @@ public FactOrganizer(bool invoke = false) this.invoke = invoke; } - private static void FactOrganizerFromPublic(ref FactOrganizer set, PublicFactOrganizer exposed, bool invoke) + private static void FactOrganizerFromPublic(ref FactOrganizer set, PublicFactOrganizer exposed, bool invoke, out Dictionary<string, string> old_to_new) { // TODO: other strategy needed when MMT save/load supported // map old URIs to new ones - Dictionary<string, string> old_to_new = new Dictionary<string, string>(); + old_to_new = new Dictionary<string, string>(); // combine T:Fact to Fact Dictionary<string, Fact> old_FactDict = new Dictionary<string, Fact>(); @@ -486,8 +486,9 @@ public void store(string name, List<Directories> hierarchie = null, bool use_ins JSONManager.WriteToJsonFile(path, new PublicFactOrganizer(this), 0); } - public static bool load(ref FactOrganizer set, bool draw, string name, List<Directories> hierarchie = null, bool use_install_folder = false) + public static bool load(ref FactOrganizer set, bool draw, string name, List<Directories> hierarchie, bool use_install_folder, out Dictionary<string, string> old_to_new) { + old_to_new = null; hierarchie ??= new List<Directories>(); hierarchie.AddRange(hierState.AsEnumerable()); @@ -497,7 +498,7 @@ public static bool load(ref FactOrganizer set, bool draw, string name, List<Dire return false; PublicFactOrganizer de_json = JSONManager.ReadFromJsonFile<PublicFactOrganizer>(path); - FactOrganizerFromPublic(ref set, de_json, draw); + FactOrganizerFromPublic(ref set, de_json, draw, out old_to_new); return true; } diff --git a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs index ac1200f71c20e8548c1e32dedeba6d7cbd7acc92..de1d3076ce155e5f09e52d1e8d2ee14903ed883e 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs @@ -56,7 +56,7 @@ public static bool load(ref SolutionOrganizer set, bool draw, string name, List< FactOrganizer save = StageStatic.stage.factState; StageStatic.stage.factState = new SolutionOrganizer(false) as FactOrganizer; - loadable = FactOrganizer.load(ref StageStatic.stage.factState, draw, name + endingSol, hierarchie, use_install_folder); + loadable = FactOrganizer.load(ref StageStatic.stage.factState, draw, name + endingSol, hierarchie, use_install_folder, out Dictionary<string, string> old_to_new); if (loadable) set = (SolutionOrganizer) StageStatic.stage.factState; @@ -69,10 +69,13 @@ public static bool load(ref SolutionOrganizer set, bool draw, string name, List< var JsonTmp = JSONManager.ReadFromJsonFile < List<(HashSet<string> MasterIDs, string ComparerString)> > (path); foreach (var element in JsonTmp) { + // Get all FactComparer var FactCompTypes = Assembly.GetExecutingAssembly().GetTypes().Where(typeof(FactComparer).IsAssignableFrom); + // Select and create FactComparer by name var typ = FactCompTypes.First(t => t.Name == element.ComparerString); FactComparer Comparer = Activator.CreateInstance(typ) as FactComparer; - set.ValidationSet.Add((element.MasterIDs, Comparer)); + // Parse and add + set.ValidationSet.Add((new HashSet<string>(element.MasterIDs.Select(k => old_to_new[k])), Comparer)); } return true; diff --git a/Assets/Scripts/Loading/Stage.cs b/Assets/Scripts/Loading/Stage.cs index 765c8455074f14ee0ca1b271819147ef5b9eff42..29cfeb7e31a3f6941e1bfa7e22e20fd872f97b7f 100644 --- a/Assets/Scripts/Loading/Stage.cs +++ b/Assets/Scripts/Loading/Stage.cs @@ -169,7 +169,7 @@ public bool DeepLoad() factState ??= new FactOrganizer(false); - loadable = FactOrganizer.load(ref factState, false, name, hierarchie, false); + loadable = FactOrganizer.load(ref factState, false, name, hierarchie, false, out _); hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); return true; diff --git a/Packages/manifest.json b/Packages/manifest.json index 6e9d7a6443908d44559409a1b69902a4327bf80b..ed355067501ec00f317ccdd16d47f4d9c3acbfaf 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -3,8 +3,8 @@ "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", "com.unity.ads": "3.7.5", - "com.unity.analytics": "3.5.3", - "com.unity.collab-proxy": "1.7.1", + "com.unity.analytics": "3.6.11", + "com.unity.collab-proxy": "1.9.0", "com.unity.ide.rider": "2.0.7", "com.unity.ide.visualstudio": "2.0.11", "com.unity.ide.vscode": "1.2.3", @@ -12,7 +12,7 @@ "com.unity.nuget.newtonsoft-json": "2.0.0", "com.unity.probuilder": "4.2.1", "com.unity.purchasing": "3.2.2", - "com.unity.test-framework": "1.1.27", + "com.unity.test-framework": "1.1.29", "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.4.8", "com.unity.toolchain.win-x86_64-linux-x86_64": "0.1.21-preview", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index c6fe66412f16c71d9fb99fb3b5027421a317709f..ec0f115c7095eaed356d2f3f10fa0ac6d84b2180 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -22,7 +22,7 @@ "url": "https://packages.unity.com" }, "com.unity.analytics": { - "version": "3.5.3", + "version": "3.6.11", "depth": 0, "source": "registry", "dependencies": { @@ -31,12 +31,10 @@ "url": "https://packages.unity.com" }, "com.unity.collab-proxy": { - "version": "1.7.1", + "version": "1.9.0", "depth": 0, "source": "registry", - "dependencies": { - "com.unity.nuget.newtonsoft-json": "2.0.0" - }, + "dependencies": {}, "url": "https://packages.unity.com" }, "com.unity.ext.nunit": { @@ -133,7 +131,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.27", + "version": "1.1.29", "depth": 0, "source": "registry", "dependencies": { diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 2c2c446275283a443a16919a61f802a6a6f14408..565025152d1379cdfd30614c97f415ba2e1e926c 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2020.3.17f1 -m_EditorVersionWithRevision: 2020.3.17f1 (a4537701e4ab) +m_EditorVersion: 2020.3.18f1 +m_EditorVersionWithRevision: 2020.3.18f1 (a7d1c678663c)