diff --git a/Assets/Scenes/Menues/MainMenue.unity b/Assets/Scenes/Menues/MainMenue.unity index ec74b6b5ddece7365ceeef6a564731cc612ca6ae..bacf6d5d979869189a77bca65db13b6c10cdaa60 100644 --- a/Assets/Scenes/Menues/MainMenue.unity +++ b/Assets/Scenes/Menues/MainMenue.unity @@ -8550,10 +8550,30 @@ PrefabInstance: propertyPath: m_Name value: GlobalObject objectReference: {fileID: 0} + - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, + type: 3} + propertyPath: _StageError.a + value: 0.39215687 + objectReference: {fileID: 0} + - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, + type: 3} + propertyPath: _StageError.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, + type: 3} + propertyPath: _StageError.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, + type: 3} + propertyPath: _StageError.r + value: 1 + objectReference: {fileID: 0} - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, type: 3} propertyPath: _StageAccomplished.a - value: 0.3882353 + value: 0.39215687 objectReference: {fileID: 0} - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, type: 3} @@ -8598,7 +8618,7 @@ PrefabInstance: - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, type: 3} propertyPath: _StageNotYetAccomplished.a - value: 0.3882353 + value: 0.39215687 objectReference: {fileID: 0} - target: {fileID: 1491172435906319289, guid: 22a53293eaa728146a6f47093d22ca92, type: 3} diff --git a/Assets/Scripts/GlobalBehaviour.cs b/Assets/Scripts/GlobalBehaviour.cs index 0f8ffb3629933200810aa49d0ee1b3ebb6a6d73a..32a448dde619282dd17de1a912eaefe982f24399 100644 --- a/Assets/Scripts/GlobalBehaviour.cs +++ b/Assets/Scripts/GlobalBehaviour.cs @@ -10,6 +10,7 @@ public class GlobalBehaviour : MonoBehaviour public static Color StageAccomplished; public static Color StageNotYetAccomplished; + public static Color StageError; [SerializeField] private Color _hintAnimationStartColor; @@ -22,6 +23,8 @@ public class GlobalBehaviour : MonoBehaviour private Color _StageAccomplished; [SerializeField] private Color _StageNotYetAccomplished; + [SerializeField] + private Color _StageError; void Awake() { @@ -33,6 +36,7 @@ void Awake() StageAccomplished = _StageAccomplished; StageNotYetAccomplished = _StageNotYetAccomplished; + StageError = _StageError; StageStatic.ShallowLoadStages(); diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs index bd0b0d58fde25e07e7546c2c615a52823f885c5c..5bd54c5b6ab84e345f510c7b4aaf733da24209a7 100644 --- a/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs +++ b/Assets/Scripts/InteractionEngine/FactHandling/FactOrganizer.cs @@ -342,13 +342,13 @@ public bool safe_dependencies(string key, out List<string> dependencies) for (int i = pos; i < marker; i++) { // TODO: consequent != samestep != dependent (want !consequent) - if (!Workflow[i].creation) + if (!Workflow[i].creation && Workflow[i].Id != key) { // just try if (dependencies.Remove(Workflow[i].Id) && !Workflow[i].samestep) c_unsafe--; } - else if (0 < this[Workflow[i].Id].getDependentFactIds().Intersect(dependencies).Count()) + else if (0 < this[Workflow[i].Id].getDependentFactIds().Intersect(dependencies).Count() && Workflow[i].Id != key) { dependencies.Add(Workflow[i].Id); if (!Workflow[i].samestep) diff --git a/Assets/Scripts/JSONManager.cs b/Assets/Scripts/JSONManager.cs index 098f17f68a4c6dc1398fcd54a6104e89263a58e4..3a128fa77388610b12b379f73523b5ad7025c4b4 100644 --- a/Assets/Scripts/JSONManager.cs +++ b/Assets/Scripts/JSONManager.cs @@ -94,13 +94,20 @@ public OMF(float f) public class MMTDeclaration { + public string label; public static MMTDeclaration FromJson(string json) { MMTDeclaration mmtDecl = JsonConvert.DeserializeObject<MMTDeclaration>(json); + if (mmtDecl.label == null) + mmtDecl.label = string.Empty; + return mmtDecl; } public static string ToJson(MMTDeclaration mmtDecl) { + if (mmtDecl.label == null) + mmtDecl.label = string.Empty; + string json = JsonConvert.SerializeObject(mmtDecl); return json; } @@ -112,7 +119,6 @@ public static string ToJson(MMTDeclaration mmtDecl) public class MMTSymbolDeclaration : MMTDeclaration { public string kind = "general"; - public string label; public MMTTerm tp; public MMTTerm df; @@ -133,7 +139,6 @@ public MMTSymbolDeclaration(string label, MMTTerm tp, MMTTerm df) public class MMTValueDeclaration : MMTDeclaration { public string kind = "veq"; - public string label; public MMTTerm lhs; public MMTTerm valueTp; public MMTTerm value; diff --git a/Assets/Scripts/Loading/Stage.cs b/Assets/Scripts/Loading/Stage.cs index 889b38cf1e8db273d18633ef5ce5f7db477c2938..b053893f3f5c02d74c7e00fb11369b85313b7a97 100644 --- a/Assets/Scripts/Loading/Stage.cs +++ b/Assets/Scripts/Loading/Stage.cs @@ -92,16 +92,52 @@ public void deletet_record(PlayerRecord record) public bool set_record(PlayerRecord record) { - if (record != null && !player_record_list.ContainsKey(record.name)) - return false; + hierarchie ??= new List<Directories>(); + hierarchie.AddRange(hierStage.AsEnumerable()); + + if (record != null) + if(!player_record_list.ContainsKey(record.name)) + return false; + else if (!record.load(hierarchie)) + { + deletet_record(record); + hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); + return false; + } - player_record = record == null ? new PlayerRecord(record_name) : record; + player_record = record == null ? new PlayerRecord(record_name) : record.Clone(hierarchie); + player_record.name = record_name; + + hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); store(false); return true; } + public void push_record(double seconds_s = -1) + { + hierarchie ??= new List<Directories>(); + hierarchie.AddRange(hierStage.AsEnumerable()); + + if (seconds_s == -1) + seconds_s = Time.timeSinceLevelLoadAsDouble; + player_record.seconds += seconds_s; + + var push = player_record.Clone(hierarchie); + + hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); + + int i = 0; + push.name = record_name + "_" + i.ToString(); + for (; player_record_list.ContainsKey(push.name); i++) + push.name = record_name + "_" + i.ToString(); + + player_record_list.Add(push.name, push); + + store(false); + } + public void SetMode(bool create) { if (create == creatorMode) @@ -152,6 +188,7 @@ public void store(bool reset = false) hierarchie ??= new List<Directories>(); hierarchie.AddRange(hierStage.AsEnumerable()); + player_record.name = record_name; if (reset) player_record = new PlayerRecord(record_name); @@ -170,10 +207,10 @@ public void store(bool reset = false) } if (player_record != null) - player_record.store(hierarchie); + player_record.store(hierarchie, true); foreach (var track in player_record_list) - track.Value.store(hierarchie); + track.Value.store(hierarchie, false); hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); } @@ -214,7 +251,8 @@ public static bool ShallowLoad(ref Stage set, string path) set.hierarchie ??= new List<Directories>(); set.hierarchie.AddRange(hierStage.AsEnumerable()); - set.player_record.load(set.hierarchie); + if (!set.player_record.load(set.hierarchie)) + set.player_record = new PlayerRecord(set.record_name); set.hierarchie.RemoveRange(set.hierarchie.Count - hierStage.Count, hierStage.Count); return true; @@ -295,7 +333,7 @@ public void ResetSaves() public bool CheckSolved() { - float time_s = Time.time; + double time_s = Time.timeSinceLevelLoadAsDouble; bool solved = factState.DynamiclySolved(solution, out _, out List<List<string>> hits); @@ -304,21 +342,11 @@ public bool CheckSolved() foreach (var hit in hitlist) AnimateExistingFactEvent.Invoke(factState[hit]); - if (solved && player_record.time > 0) + if (solved && player_record.seconds > 0) { player_record.solved = solved; - player_record.time = time_s - player_record.time; - - int i = 0; - player_record.name = record_name + "_" + i.ToString(); - for (; player_record_list.ContainsKey(player_record.name); i++) - player_record.name = record_name + "_" + i.ToString(); - - player_record_list.Add(player_record.name, player_record); - - var old = player_record; - store(true); - player_record = old; + push_record(time_s); + store(true); // reset player_record } return solved; @@ -330,7 +358,7 @@ public class PlayerRecord { public bool solved = false; public long date = System.DateTime.Now.ToBinary(); - public float time = 0; + public double seconds = 0; [JsonIgnore] public FactOrganizer factState = null; @@ -346,13 +374,13 @@ public PlayerRecord(string name) { factState = new FactOrganizer(); } - public void store(List<Directories> hierarchie) + public void store(List<Directories> hierarchie, bool force_write) { hierarchie ??= new List<Directories>(); hierarchie.AddRange(hierStage.AsEnumerable()); if (factState != null) - factState.store(name, hierarchie, false, false); + factState.store(name, hierarchie, false, force_write); hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); } @@ -382,4 +410,20 @@ public void delete(List<Directories> hierarchie) hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); } + + public PlayerRecord Clone(List<Directories> hierarchie) + { + this.store(hierarchie, true); + + hierarchie ??= new List<Directories>(); + hierarchie.AddRange(hierStage.AsEnumerable()); + + var ret = new PlayerRecord(this.name); + ret.solved = this.solved; + ret.seconds = this.seconds; + ret.load(hierarchie); + + hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count); + return ret; + } } \ No newline at end of file diff --git a/Assets/Scripts/StageBehaviour.cs b/Assets/Scripts/StageBehaviour.cs index 0f6e1d7fa0ff17b62d7a0155e7654eb94dbe4d43..ab8da2ba504b7464a6c03bc1966bcd19ab520dbc 100644 --- a/Assets/Scripts/StageBehaviour.cs +++ b/Assets/Scripts/StageBehaviour.cs @@ -7,7 +7,7 @@ public class StageBehaviour : MonoBehaviour { void Start() { - StageStatic.LoadInitStage(StageStatic.stage.player_record.solved, gameObject); + StageStatic.LoadInitStage(true /*StageStatic.stage.player_record.solved*/, gameObject); } private void OnDestroy() diff --git a/Assets/Scripts/StageStatic.cs b/Assets/Scripts/StageStatic.cs index 045d5eeb415a6fb8ee4b229a5b86aece52f9f808..764216d4e086e8936ad4bce8822fb1dd6a4ce2d7 100644 --- a/Assets/Scripts/StageStatic.cs +++ b/Assets/Scripts/StageStatic.cs @@ -251,12 +251,12 @@ public static bool LoadInitStage(bool restore_session, GameObject gameObject = n { stage.factState.invoke = true; stage.factState.Draw(); - stage.player_record.time = stage.player_record.time > 0 ? Time.time - stage.player_record.time : -1; } else { - stage.factState = new FactOrganizer(true); - stage.player_record.time = devel ? -1 : Time.time; + stage.ResetPlay(); + if(devel) // block saving "player" progress + stage.player_record.seconds = -1; } gameObject.UpdateTagActive("DevelopingMode", devel); diff --git a/Assets/Scripts/UI/HideUI.cs b/Assets/Scripts/UI/HideUI.cs index f54b8ca883a53a6eabaed79c3e40decb571c8803..dc2a46e0e6e93894c869045c496f2b9179ec635b 100644 --- a/Assets/Scripts/UI/HideUI.cs +++ b/Assets/Scripts/UI/HideUI.cs @@ -62,7 +62,7 @@ void Update() else if (Input.GetButtonDown(modreset)) StageStatic.stage.factState.softreset(); else if (Input.GetButtonDown(modsave)) - StageStatic.stage.store(); + StageStatic.stage.push_record(); else if (Input.GetButtonDown(modload)) { StageStatic.stage.factState.hardreset(); StageStatic.LoadInitStage(StageStatic.stage.name, !StageStatic.stage.use_install_folder); diff --git a/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableCategory.cs b/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableCategory.cs index da11db8b3941018efbfaa53294b4315cd588e8c3..3410f16e843e4fa91f3ea6e6aa6eb5e57af801d5 100644 --- a/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableCategory.cs +++ b/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableCategory.cs @@ -18,12 +18,18 @@ public void Init() { var header = gameObject.GetNthChild(new List<int> { 0, 0 }); + // set text init + PopulateLocalEntryList(header, new List<string> { "err", category, "" }); + // set colour err (for now) + header.GetNthChild(new List<int> { 0, 0 }).GetComponent<UnityEngine.UI.Image>().color = + GlobalBehaviour.StageError; + var p = DrawChildren(); - // set text - PopulateLocalEntryList(header, new List<string> { ((int)(p * 100)).ToString() + "%", category, "" }); + // set text percent + PopulateLocalEntryList(header, new List<string> { ((int)(p * 100)).ToString() + "%"}); - // set colour + // set colour percent header.GetNthChild(new List<int> { 0, 0 }).GetComponent<UnityEngine.UI.Image>().color = p * GlobalBehaviour.StageAccomplished + (1 - p) * GlobalBehaviour.StageNotYetAccomplished; } diff --git a/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableStage.cs b/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableStage.cs index 968532f38a549b71ab8f8d6bd6049cb0dec037bb..8d1b62000c431741a8be7677d197172a8c5ecda8 100644 --- a/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableStage.cs +++ b/Assets/Scripts/UI/MainMenue/CollapsableStage/CollapsableStage.cs @@ -28,7 +28,7 @@ public void Init() header.GetComponent<UnityEngine.UI.Button>().onClick.AddListener(delegate { StageStatic.devel = false; // TODO: handle unable to load - Loader.LoadStage(stage.name, !stage.use_install_folder, false); + Loader.LoadStage(stage.name, !stage.use_install_folder, true); }); // set explicit edit button @@ -43,29 +43,39 @@ public void Init() public void DrawChildren() { - var record_list = stage.player_record_list.Values.OrderBy(r => r.time).ToList(); + var record_list = stage.player_record_list.Values.OrderBy(r => r.seconds).ToList(); var body = gameObject.GetNthChild(new List<int> { 1 }); body.DestroyAllChildren(); - for (int i = 0; i < record_list.Count; i++) + for (int i = 0, k = 0; i < record_list.Count; i++) { + var index = record_list[i].name; + GameObject time_entry = Instantiate(TimeEntry); time_entry.transform.SetParent(body.transform, false); PopulateLocalEntryList(time_entry, new List<string> { - (i + 1).ToString(), + stage.player_record_list[index].solved ? (++k).ToString() : "--", "", // hidden - System.TimeSpan.FromSeconds(record_list[i].time).ToString("hh':'mm':'ss") }); + System.TimeSpan.FromSeconds(stage.player_record_list[index].seconds).ToString("hh':'mm':'ss") }); + + // set colour + time_entry.GetNthChild(new List<int> { 0, 0 }).GetComponent<UnityEngine.UI.Image>().color = + stage.player_record_list[index].solved ? GlobalBehaviour.StageAccomplished : GlobalBehaviour.StageNotYetAccomplished; - var index = record_list[i].name; // set delete button time_entry.GetNthChild(new List<int> { 3, 0 }).GetComponent<UnityEngine.UI.Button>().onClick.AddListener(delegate { stage.deletet_record(stage.player_record_list[index]); this.Init(); }); + // set clone button time_entry.GetNthChild(new List<int> { 4, 0 }).GetComponent<UnityEngine.UI.Button>().onClick.AddListener(delegate { - stage.set_record(stage.player_record_list[index]); + if (!stage.set_record(stage.player_record_list[index])) + { + this.Init(); + return; + } StageStatic.devel = false; // TODO: handle unable to load Loader.LoadStage(stage.name, !stage.use_install_folder, true); diff --git a/Assets/Scripts/UI/MainMenue/PageLoader/CreateLoader.cs b/Assets/Scripts/UI/MainMenue/PageLoader/CreateLoader.cs index f6749d9b19fbc8b7f33b82ccb3d289adff6c2819..61b5cd7c03a8940cbe20673743c1f23b97f28b99 100644 --- a/Assets/Scripts/UI/MainMenue/PageLoader/CreateLoader.cs +++ b/Assets/Scripts/UI/MainMenue/PageLoader/CreateLoader.cs @@ -76,6 +76,33 @@ public void Create() protected void Error(StageStatic.StageErrorStruct error) { //TODO: inform failure & why? - throw new System.NotImplementedException("handle error"); + if (error.category) + { + throw new System.NotImplementedException("Invalid Category"); // unused + } + if (error.id) + { + throw new System.NotImplementedException("Id must be unique within a category"); // technichal a lie + } + if (error.name) // for savegame identification (could be chained with local/category/id) + { + throw new System.NotImplementedException("Name must be unique"); + } + if (error.description) + { + throw new System.NotImplementedException("Invalid Description"); // unused + } + if (error.scene) + { + throw new System.NotImplementedException("Please select a World"); + } + if (error.local) // keep custom levels custom + { + throw new System.NotImplementedException("Not allowed to create or change non-local Stages"); + } + if (error.load) + { + throw new System.NotImplementedException("Unknown error: Stage could not be loaded"); // needs work + } } } diff --git a/Assets/Stages/TechDemo A.JSON b/Assets/Stages/TechDemo A.JSON index bcdcce59aa6f7e94f2674e012666a69d89b0b96c..c2d89f9c8f211ab234e9e644112db91df3a232af 100644 --- a/Assets/Stages/TechDemo A.JSON +++ b/Assets/Stages/TechDemo A.JSON @@ -1 +1 @@ -{"number":0,"category":"Demo Category","name":"TechDemo A","description":"Improvised Level\n(Loadable)","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{"TechDemo A_save_1":{"solved":true,"date":176,"time":46.0341873,"name":"TechDemo A_save_1"},"TechDemo A_save_0":{"solved":true,"date":176,"time":67.78075,"name":"TechDemo A_save_0"}},"player_record":{"solved":false,"date":-8585700266226810927,"time":0.0,"name":"TechDemo A_save"}} \ No newline at end of file +{"number":0,"category":"Demo Category","name":"TechDemo A","description":"Improvised Level\n(Loadable)","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{},"player_record":{"solved":false,"date":-8585699525499392354,"seconds":0.0,"name":"TechDemo A_save"}} \ No newline at end of file diff --git a/Assets/Stages/ValidationSets/FactStateMachines/TechDemo A_sol.JSON b/Assets/Stages/ValidationSets/FactStateMachines/TechDemo A_sol.JSON index 73edc4f0b31956bd16e8a86101ef6a7e12bcbb6c..c921b921b62a232b4068335a174260b4b25e8e9e 100644 --- a/Assets/Stages/ValidationSets/FactStateMachines/TechDemo A_sol.JSON +++ b/Assets/Stages/ValidationSets/FactStateMachines/TechDemo A_sol.JSON @@ -1 +1 @@ -{"PointFacts":[{"Point":{"x":0.0,"y":0.0,"z":0.0,"magnitude":0.0,"sqrMagnitude":0.0},"Normal":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1304","Label":"A","hasCustomLabel":false,"LabelId":1},{"Point":{"x":0.0,"y":6.0,"z":0.0,"normalized":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"magnitude":6.0,"sqrMagnitude":36.0},"Normal":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1305","Label":"B","hasCustomLabel":false,"LabelId":2}],"LineFacts":[{"Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1304","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1305","Dir":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1306","Label":"[AB]","hasCustomLabel":false,"LabelId":0}],"RayFacts":[],"OnLineFacts":[],"AngleFacts":[],"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1304":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1305":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1306":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1304","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1305","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1306","samestep":true,"steplink":0,"creation":true}],"marker":3,"worksteps":1,"backlog":0,"soft_resetted":false,"invoke":false,"MaxLabelId":2,"UnusedLabelIds":[]} \ No newline at end of file +{"PointFacts":[{"Point":{"x":0.0,"y":0.0,"z":0.0,"magnitude":0.0,"sqrMagnitude":0.0},"Normal":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2554","Label":"A","hasCustomLabel":false,"LabelId":1},{"Point":{"x":0.0,"y":6.0,"z":0.0,"normalized":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"magnitude":6.0,"sqrMagnitude":36.0},"Normal":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2555","Label":"B","hasCustomLabel":false,"LabelId":2}],"LineFacts":[{"Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2554","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2555","Dir":{"x":0.0,"y":1.0,"z":0.0,"magnitude":1.0,"sqrMagnitude":1.0},"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2556","Label":"[AB]","hasCustomLabel":false,"LabelId":0}],"RayFacts":[],"OnLineFacts":[],"AngleFacts":[],"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2554":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2555":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2556":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2554","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2555","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2556","samestep":true,"steplink":0,"creation":true}],"marker":3,"worksteps":1,"backlog":0,"soft_resetted":false,"invoke":false,"MaxLabelId":2,"UnusedLabelIds":[]} \ No newline at end of file diff --git a/Assets/Stages/ValidationSets/TechDemo A_val.JSON b/Assets/Stages/ValidationSets/TechDemo A_val.JSON index ec5383c37a94f70807968186aa8e0c970a66d9a5..6cfcf0ae254c279b1e0ecd16f7939dfdff2de387 100644 --- a/Assets/Stages/ValidationSets/TechDemo A_val.JSON +++ b/Assets/Stages/ValidationSets/TechDemo A_val.JSON @@ -1 +1 @@ -[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/SituationTheory2?fact1306"],"SolutionIndex":[],"ComparerString":"LineFactHightDirectionComparer"}] \ No newline at end of file +[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2556"],"SolutionIndex":[],"ComparerString":"LineFactHightDirectionComparer"}] \ No newline at end of file