diff --git a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs index 329ae8bfe288ff869f670030740b2b3a73474ed4..0126fd20176537178b846b04ff3e5416907816f2 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs @@ -89,7 +89,7 @@ public List<Fact> getMasterFactsByIndex (int i) return ValidationSet[i].MasterIDs.Select(id => this[id]).ToList(); } - public new void store(string name, List<Directories> hierarchie = null, bool use_install_folder = false) + public new void store(string name, List<Directories> hierarchie = null, bool use_install_folder = false, bool overwrite = true) { hierarchie ??= new List<Directories>(); hierarchie.AddRange(hierVal.AsEnumerable()); @@ -97,11 +97,17 @@ public List<Fact> getMasterFactsByIndex (int i) base.store(name + endingSol, hierarchie, use_install_folder); string path_o = path_Val; - path_Val = CreatePathToFile(out _, name + endingVal, "JSON", hierarchie, use_install_folder); + path_Val = CreatePathToFile(out bool exists, name + endingVal, "JSON", hierarchie, use_install_folder); + hierarchie.RemoveRange(hierarchie.Count - hierVal.Count, hierVal.Count); + + if (exists && !overwrite) + { + path_Val = path_o; + return; + } + JSONManager.WriteToJsonFile(path_Val, this.ValidationSet, 0); path_Val = path_o; - - hierarchie.RemoveRange(hierarchie.Count - hierVal.Count, hierVal.Count); } public static bool load(ref SolutionOrganizer set, bool draw, string name, List<Directories> hierarchie = null, bool use_install_folder = false) diff --git a/Assets/Scripts/Loading/Stage.cs b/Assets/Scripts/Loading/Stage.cs index 87ec2f07acd49b5383394d54cf2715671fe6350a..f63431ef272be372862ac7393d7976a06de82251 100644 --- a/Assets/Scripts/Loading/Stage.cs +++ b/Assets/Scripts/Loading/Stage.cs @@ -274,8 +274,9 @@ public void store(bool reset_player = false) path = path_o; hierarchie.AddRange(hierStage.AsEnumerable()); - if(solution != null && solution.ValidationSet.Count > 0 && !solution.ValidationSet.Aggregate(false, (last, next) => last || next.IsEmpty())) - solution.store(name, hierarchie, use_install_folder); + if(solution != null) + solution.store(name, hierarchie, use_install_folder, + overwrite: solution.ValidationSet.Count > 0 && !solution.ValidationSet.Aggregate(false, (last, next) => last || next.IsEmpty())); } if (player_record != null)