Skip to content
Snippets Groups Projects
Commit 3a714b4e authored by Marco Zimmer's avatar Marco Zimmer
Browse files

+ IJASONsavable is possessed, send help (WIP)

parent 19ec0e4e
No related branches found
No related tags found
No related merge requests found
Showing
with 122 additions and 148 deletions
......@@ -2,14 +2,15 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2180264
Material:
serializedVersion: 6
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LiberationSans SDF Material
m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
m_ShaderKeywords:
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
......@@ -67,6 +68,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Ambient: 0.5
- _Bevel: 0.5
......
......@@ -5,8 +5,12 @@
public class GenerateDemoFiles
{
static bool firstcall = true;
public static void GenerateAll()
{
if (!firstcall) return;
firstcall = false;
Debug.LogWarning("Generating and Overwriting Stage Files");
GenerateDemoA();
GenerateDemoB();
......
......@@ -36,7 +36,7 @@ public class GlobalBehaviour : MonoBehaviour
void Awake()
{
//GenerateDemoFiles.GenerateAll();
// GenerateDemoFiles.GenerateAll();
hintAnimationStartColor = _hintAnimationStartColor;
hintAnimationEndColor = _hintAnimationEndColor;
......
......@@ -18,7 +18,7 @@
/// Organizes (insertion/ deletion / etc. operations) and sepperates <see cref="Fact">Fact</see> spaces.
/// Keeps track of insertion/ deletion actions for <see cref="undo"/> and <see cref="redo"/>.
/// </summary>
public class FactOrganizer
public class FactOrganizer : IJSONsavable<FactOrganizer>
{
/// <summary>
/// - <c>Key</c>: <see cref="Fact.Id"/>
......@@ -91,9 +91,7 @@ public class FactOrganizer
/// @{ <summary>
/// For <see cref="store(string, List<Directories>, bool, bool)"/> and <see cref="load(ref FactOrganizer, bool, string, List<Directories>, bool, out Dictionary<string, string>)"/>
/// </summary>
protected internal string path = null;
private static List<Directories>
hierState = new List<Directories> { Directories.FactStateMachines };
public string path { get; set; } = null;
/// @}
......@@ -184,6 +182,12 @@ public meta(int workflow_id, bool active = true)
}
}
static FactOrganizer()
{
IJSONsavable<FactOrganizer>.hierarchie = new List<Directories> { Directories.FactStateMachines };
}
/// <summary>
/// Only used by <see cref="JsonConverter"/> to initiate empty instance.
/// </summary>
......@@ -211,17 +215,22 @@ public FactOrganizer(bool invoke = false)
/// <param name="source">instance to be parsed</param>
/// <param name="invoke">see <see cref="invoke"/></param>
/// <param name="old_to_new">generated to map <c>Key</c> <see cref="Fact.Id"/> of <paramref name="source"/> to corresponding <c>Value</c> <see cref="Fact.Id"/> of <paramref name="target"/></param>.
protected static void ReInitializeFactOrganizer(ref FactOrganizer target, FactOrganizer source, bool invoke, out Dictionary<string, string> old_to_new)
protected static T ReInitializeFactOrganizer<T>
(FactOrganizer source, bool invoke, out Dictionary<string, string> old_to_new)
where T : FactOrganizer, new()
{
// TODO: other strategy needed when MMT save/load supported
// map old URIs to new ones
old_to_new = new Dictionary<string, string>();
// initiate
target.invoke = invoke;
target.MaxLabelId = source.MaxLabelId;
target.UnusedLabelIds = source.UnusedLabelIds;
target.FactDict = new Dictionary<string, Fact>();
T target = new T()
{
invoke = invoke,
MaxLabelId = source.MaxLabelId,
UnusedLabelIds = source.UnusedLabelIds,
FactDict = new Dictionary<string, Fact>(),
};
// work Workflow
foreach (var sn in source.Workflow)
......@@ -259,6 +268,7 @@ protected static void ReInitializeFactOrganizer(ref FactOrganizer target, FactOr
target.undo();
target.soft_resetted = source.soft_resetted;
return target;
}
/// <summary>
......@@ -666,65 +676,8 @@ public void fastforward()
redo();
}
/// @{
/// TODO? move to interface?
/// TODO: document
public void store(string name, List<Directories> hierarchie = null, bool use_install_folder = false, bool overwrite = true)
{
hierarchie ??= new List<Directories>();
hierarchie.AddRange(hierState.AsEnumerable());
string path_o = path;
path = CreatePathToFile(out bool exists, name, "JSON", hierarchie, use_install_folder);
hierarchie.RemoveRange(hierarchie.Count - hierState.Count, hierState.Count);
if (!exists || overwrite)
JSONManager.WriteToJsonFile(path, this);
path = path_o;
}
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());
string path = CreatePathToFile(out bool loadable, name, "JSON", hierarchie, use_install_folder);
hierarchie.RemoveRange(hierarchie.Count - hierState.Count, hierState.Count);
if (!loadable)
return false;
FactOrganizer de_json = JSONManager.ReadFromJsonFile<FactOrganizer>(path);
ReInitializeFactOrganizer(ref set, de_json, draw, out old_to_new);
set.path = path;
return true;
}
public static void delete(string name, List<Directories> hierarchie, bool use_install_folder)
{
hierarchie ??= new List<Directories>();
hierarchie.AddRange(hierState.AsEnumerable());
string path = CreatePathToFile(out bool _, name, "JSON", hierarchie, use_install_folder);
hierarchie.RemoveRange(hierarchie.Count - hierState.Count, hierState.Count);
delete(path);
}
public static void delete(string path)
{
if (File.Exists(path))
File.Delete(path);
}
public void delete()
{
delete(path);
}
/// @}
FactOrganizer IJSONsavable<FactOrganizer>._IJPstProcess(FactOrganizer raw_payload)
=> ReInitializeFactOrganizer<FactOrganizer>(raw_payload, false, out _);
/// <summary>
/// Call this after assigning a stored instance in an empty world, that was not drawn.
......
......@@ -15,17 +15,9 @@ public class SolutionOrganizer : FactOrganizer, IJSONsavable<SolutionOrganizer>
/// @{ <summary> adds to the end of the file name of a </summary>
private const string
/// <summary> SolutionFile (stores <see cref="SolutionOrganizer">this</see>) </summary>
endingSol = "_sol",
/// <summary> ValidationFile (stores <see cref="ValidationSet"/>) </summary>
endingVal = "_val";
/// @}
/// <summary>
/// \copydoc FactOrganizer.hierState
/// Additional value for <see cref="ValidationSet"/>
/// </summary>
private static List<Directories>
hierVal = new List<Directories> { Directories.ValidationSets };
/// <summary>
/// A collection of constrains of which *all* have to be <see langword="true"/>
......@@ -125,6 +117,11 @@ public bool IsEmpty()
}
}
static SolutionOrganizer()
{
IJSONsavable<SolutionOrganizer>.hierarchie = new List<Directories> { Directories.ValidationSets };
}
/// \copydoc FactOrganizer.FactOrganizer()
public SolutionOrganizer(): base()
{
......@@ -144,33 +141,20 @@ public List<Fact> getMasterFactsByIndex (int i)
}
*/
/// @{
/// TODO? move to interface?
/// TODO: document
bool IJSONsavable<SolutionOrganizer>.store(List<Directories> hierarchie, string name, bool use_install_folder, bool overwrite)
string IJSONsavable<SolutionOrganizer>._IJGetName(string name) => name + endingVal;
SolutionOrganizer IJSONsavable<SolutionOrganizer>._IJPstProcess(SolutionOrganizer raw_payload)
{
return (this as IJSONsavable<SolutionOrganizer>).store(hierarchie, name + endingVal, use_install_folder, overwrite);
}
SolutionOrganizer payload =
ReInitializeFactOrganizer<SolutionOrganizer>
(raw_payload, false, out Dictionary<string, string> old_to_new);
bool IJSONsavable<SolutionOrganizer>.load(List<Directories> hierarchie, string name, out SolutionOrganizer payload, bool use_install_folder)
{
payload = null;
if (!(this as IJSONsavable<SolutionOrganizer>).load(hierarchie, name, out SolutionOrganizer JsonTmp, use_install_folder))
return false;
payload = ReInitializeFactOrganizer(JsonTmp, false, out Dictionary<string, string> old_to_new)
as SolutionOrganizer;
payload.path = path;
foreach (var element in JsonTmp.ValidationSet)
foreach (var element in raw_payload.ValidationSet)
// Parse and add
{
element.MasterIDs = new HashSet<string>(element.MasterIDs.Select(k => old_to_new[k]));
payload.ValidationSet.Add(element);
}
return true;
return payload;
}
/// @}
}
......@@ -21,51 +21,83 @@
protected static List<Directories>
hierarchie = new List<Directories> { Directories.misc };
public bool store(List<Directories> hierarchie, string name, bool use_install_folder = false, bool overwrite = true)
#region OverridableMethods
protected virtual string _IJGetName(string name) => name;
protected virtual List<Directories> _IJGetHierarchie(List<Directories> hierarchie_base)
{
return store(hierarchie, name, this, use_install_folder, overwrite);
hierarchie_base ??= new List<Directories>();
return hierarchie_base.Concat(hierarchie).ToList();
}
protected virtual T _IJGetRawObject(string path) => JSONManager.ReadFromJsonFile<T>(path);
protected virtual T _IJPreProcess(T payload) => payload;
protected virtual T _IJPstProcess(T payload) => payload;
#endregion OverridableMethods
public virtual bool store(List<Directories> hierarchie, string name, IJSONsavable<T> payload, bool use_install_folder = false, bool overwrite = true)
#region MethodTemplates
public bool store(List<Directories> hierarchie, string name, bool use_install_folder = false, bool overwrite = true)
{
hierarchie ??= new List<Directories>();
List<Directories> new_hierarchie = hierarchie.Concat(IJSONsavable<T>.hierarchie) as List<Directories>;
return store(hierarchie, name, (T) this, use_install_folder, overwrite);
}
string path = CreatePathToFile(out bool exists, name, "JSON", new_hierarchie, use_install_folder);
public static bool store(List<Directories> hierarchie, string name, T payload, bool use_install_folder = false, bool overwrite = true)
{
var new_hierarchie =
Instance._IJGetHierarchie(hierarchie);
var new_name =
Instance._IJGetName(name);
string path = CreatePathToFile(out bool exists, new_name, "JSON", new_hierarchie, use_install_folder);
if (exists && !overwrite)
return false;
JSONManager.WriteToJsonFile(path, payload);
string path_o = payload.path;
payload.path = path;
var new_payload =
Instance._IJPreProcess(payload);
payload.path = path_o;
JSONManager.WriteToJsonFile(path, new_payload);
return true;
}
public virtual bool load(List<Directories> hierarchie, string name, out T payload, bool use_install_folder = false)
public static bool load(List<Directories> hierarchie, string name, out T payload, bool use_install_folder = false)
{
payload = default(T);
hierarchie ??= new List<Directories>();
List<Directories> new_hierarchie = hierarchie.Concat(IJSONsavable<T>.hierarchie) as List<Directories>;
var new_hierarchie =
Instance._IJGetHierarchie(hierarchie);
string path = CreatePathToFile(out bool loadable, name, "JSON", new_hierarchie, use_install_folder);
if (!loadable)
return false;
payload = JSONManager.ReadFromJsonFile<T>(path);
var raw_payload =
Instance._IJGetRawObject(path);
payload =
Instance._IJPstProcess(raw_payload);
return true;
}
public virtual bool delete(List<Directories> hierarchie, string name, bool use_install_folder = false)
public static bool delete(List<Directories> hierarchie, string name, bool use_install_folder = false)
{
hierarchie ??= new List<Directories>();
List<Directories> new_hierarchie = hierarchie.Concat(IJSONsavable<T>.hierarchie) as List<Directories>;
var new_hierarchie =
Instance._IJGetHierarchie(hierarchie);
var new_name =
Instance._IJGetName(name);
string path = CreatePathToFile(out bool _, name, "JSON", new_hierarchie, use_install_folder);
string path = CreatePathToFile(out bool _, new_name, "JSON", new_hierarchie, use_install_folder);
return delete(path);
}
public virtual bool delete(string path)
public static bool delete(string path)
{
if (!File.Exists(path))
return false;
......@@ -74,10 +106,12 @@ public virtual bool delete(string path)
return true;
}
public virtual bool delete()
public bool delete()
{
return this.delete(path);
return delete(path);
}
#endregion MethodTemplates
}
public class MMTURICollection
......
......@@ -376,7 +376,7 @@ public void delete(bool player_record_list_too)
ClearSolution();
ClearPlay();
solution.delete();
(solution as IJSONsavable<SolutionOrganizer>).delete();
player_record.delete(hierarchie);
foreach (var record in player_record_list.Values.ToList())
......@@ -414,7 +414,7 @@ public void store(bool reset_player = false)
hierarchie.AddRange(hierStage.AsEnumerable());
if(solution != null)
solution.store(name, hierarchie, use_install_folder,
(solution as IJSONsavable<SolutionOrganizer>).store(hierarchie, name, use_install_folder,
overwrite: solution.ValidationSet.Count > 0 && !solution.ValidationSet.Aggregate(true, (last, next) => last && next.IsEmpty()));
}
......@@ -507,8 +507,7 @@ public bool DeepLoad()
bool loadable;
solution ??= new SolutionOrganizer(false);
loadable = SolutionOrganizer.load(ref solution, false, name, hierarchie, use_install_folder);
loadable = IJSONsavable<SolutionOrganizer>.load(hierarchie, name, out solution,use_install_folder);
if (!loadable)
return false;
......@@ -647,7 +646,7 @@ public void store(List<Directories> hierarchie, bool force_write)
hierarchie.AddRange(hierStage.AsEnumerable());
if (factState != null)
factState.store(name, hierarchie, false, force_write);
(factState as IJSONsavable<FactOrganizer>).store(hierarchie, name, false, force_write);
hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count);
}
......@@ -659,7 +658,7 @@ public bool load(List<Directories> hierarchie)
hierarchie.AddRange(hierStage.AsEnumerable());
factState = new FactOrganizer(false);
bool loadable = FactOrganizer.load(ref factState, false, name, hierarchie, false, out _);
bool loadable = IJSONsavable<FactOrganizer>.load(hierarchie, name, out factState, false);
hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count);
if (!loadable) {
return false;
......@@ -673,7 +672,7 @@ public void delete(List<Directories> hierarchie)
hierarchie ??= new List<Directories>();
hierarchie.AddRange(hierStage.AsEnumerable());
FactOrganizer.delete(name, hierarchie, false);
IJSONsavable<FactOrganizer>.delete(hierarchie, name, false);
hierarchie.RemoveRange(hierarchie.Count - hierStage.Count, hierStage.Count);
}
......
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Events;
using static UIToolBox;
public class CollapsableStage : MonoBehaviour
......@@ -69,17 +69,23 @@ public void DrawChildren()
this.Init();
});
// set clone button
time_entry.GetNthChild(new List<int> { 4, 0 }).GetComponent<UnityEngine.UI.Button>().onClick.AddListener(delegate {
if (!stage.set_record(stage.player_record_list[index]))
{
// button Action to load a record
UnityAction loadRecord = delegate () {
// redraw this, when unable to find record
if (!stage.set_record(stage.player_record_list[index])) {
this.Init();
return;
}
StageStatic.SetMode(StageStatic.Mode.Play);
// TODO: handle unable to load
Loader.LoadStage(stage.name, !stage.use_install_folder, true);
});
};
// set implicit load button (whole header)
time_entry.GetComponent<UnityEngine.UI.Button>().onClick.AddListener(loadRecord);
// set clone button
time_entry.GetNthChild(new List<int> { 4, 0 }).GetComponent<UnityEngine.UI.Button>().onClick.AddListener(loadRecord);
}
}
}
fileFormatVersion: 2
guid: 94e80c57976c35c4ab7456cc01dd7a40
guid: 7d43c521d7312964cb72014365bd183e
folderAsset: yes
DefaultImporter:
externalObjects: {}
......
{"ValidationSet":[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2844"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineFactHightDirectionComparer"}],"FactDict":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2842":{"s_type":"PointFact","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?fact2842","Label":"A","hasCustomLabel":false,"LabelId":1},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2843":{"s_type":"PointFact","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?fact2843","Label":"B","hasCustomLabel":false,"LabelId":2},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2844":{"s_type":"LineFact","Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2842","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2843","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?fact2844","Label":"[AB]","hasCustomLabel":false,"LabelId":0}},"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2842":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2843":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2844":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2842","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2843","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2844","samestep":true,"steplink":0,"creation":true}],"marker":3,"worksteps":1,"backlog":0,"soft_resetted":false,"invoke":false,"MaxLabelId":2,"UnusedLabelIds":[],"path":null}
\ No newline at end of file
fileFormatVersion: 2
guid: 8fe9258a5917e3c4f8935875a478ed20
guid: b9f66b56bf429ad42a19258696330fa3
TextScriptImporter:
externalObjects: {}
userData:
......
{"ValidationSet":[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2847"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineFactHightDirectionComparer"},{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2847"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineSpanningOverRiverWorldComparer"},{"MasterIDs":[],"SolutionIndex":[1],"RelationIndex":[0],"ComparerString":"LineFactHightComparer"}],"FactDict":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2845":{"s_type":"PointFact","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?fact2845","Label":"A","hasCustomLabel":false,"LabelId":1},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2846":{"s_type":"PointFact","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?fact2846","Label":"B","hasCustomLabel":false,"LabelId":2},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2847":{"s_type":"LineFact","Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2845","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2846","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?fact2847","Label":"[AB]","hasCustomLabel":false,"LabelId":0}},"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2845":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2846":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2847":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2845","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2846","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact2847","samestep":true,"steplink":0,"creation":true}],"marker":3,"worksteps":1,"backlog":0,"soft_resetted":false,"invoke":false,"MaxLabelId":2,"UnusedLabelIds":[],"path":null}
\ No newline at end of file
fileFormatVersion: 2
guid: c1f88002b210dd4449cbaf8b9bb46003
guid: 6c3c72bfe0bce2d4dbc7bfa537c6c2bf
TextScriptImporter:
externalObjects: {}
userData:
......
{"category":"Demo Category","number":0,"name":"TechDemo A","description":"Tree Stage","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{},"player_record":{"solved":false,"date":-8585439463646016511,"seconds":0.0,"name":"TechDemo A_save"}}
\ No newline at end of file
{"category":"Demo Category","number":0,"name":"TechDemo A","description":"Tree Stage","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{},"player_record":{"solved":false,"date":-8585436724597716289,"seconds":0.0,"name":"TechDemo A_save"}}
\ No newline at end of file
{"category":"Demo Category","number":0,"name":"TechDemo B","description":"River Stage","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{},"player_record":{"solved":false,"date":-8585439463643952992,"seconds":0.0,"name":"TechDemo B_save"}}
\ No newline at end of file
{"category":"Demo Category","number":0,"name":"TechDemo B","description":"River Stage","scene":"RiverWorld","use_install_folder":true,"hierarchie":[],"player_record_list":{},"player_record":{"solved":false,"date":-8585436724595934380,"seconds":0.0,"name":"TechDemo B_save"}}
\ No newline at end of file
fileFormatVersion: 2
guid: adcbcdc21be4b2a4a85d96580503e38b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
{"ValidationSet":[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact262"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineFactHightDirectionComparer"}],"FactDict":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact260":{"s_type":"PointFact","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?fact260","Label":"A","hasCustomLabel":false,"LabelId":1},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact261":{"s_type":"PointFact","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?fact261","Label":"B","hasCustomLabel":false,"LabelId":2},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact262":{"s_type":"LineFact","Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact260","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact261","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?fact262","Label":"[AB]","hasCustomLabel":false,"LabelId":0}},"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact260":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact261":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact262":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact260","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact261","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact262","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
{"ValidationSet":[{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact265"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineFactHightDirectionComparer"},{"MasterIDs":["http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact265"],"SolutionIndex":[],"RelationIndex":[],"ComparerString":"LineSpanningOverRiverWorldComparer"},{"MasterIDs":[],"SolutionIndex":[1],"RelationIndex":[0],"ComparerString":"LineFactHightComparer"}],"FactDict":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact263":{"s_type":"PointFact","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?fact263","Label":"A","hasCustomLabel":false,"LabelId":1},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact264":{"s_type":"PointFact","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?fact264","Label":"B","hasCustomLabel":false,"LabelId":2},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact265":{"s_type":"LineFact","Distance":6.0,"Pid1":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact263","Pid2":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact264","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?fact265","Label":"[AB]","hasCustomLabel":false,"LabelId":0}},"MetaInf":{"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact263":{"workflow_id":0,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact264":{"workflow_id":1,"active":true},"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact265":{"workflow_id":2,"active":true}},"Workflow":[{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact263","samestep":false,"steplink":3,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact264","samestep":true,"steplink":0,"creation":true},{"Id":"http://mathhub.info/FrameIT/frameworld/integrationtests?SampleSituationSpace/Root?fact265","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
......@@ -13,7 +13,7 @@ void Awake()
//Instantiate(eventSystem);
GameObject obj = new GameObject("EventSystem");
obj.AddComponent<EventSystem>();
obj.AddComponent<StandaloneInputModule>().forceModuleActive = true;
// obsolete?: obj.AddComponent<StandaloneInputModule>().forceModuleActive = true;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment