From 98963ba0bb151e31764550f323030e673e9f6a69 Mon Sep 17 00:00:00 2001 From: MaZiFAU <marco.alexander.zimmer@fau.de> Date: Fri, 24 Sep 2021 13:24:08 +0200 Subject: [PATCH] fixed level creation/ instantiation --- .../FactHandling/SolutionOrganizer.cs | 14 ++++++++++---- Assets/Scripts/Loading/Stage.cs | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs index 329ae8bf..0126fd20 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 87ec2f07..f63431ef 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) -- GitLab