public void LoadData() { int sceneCount = PlayerPrefs.GetInt("Scene Count", 0); for (int i = 0; i < sceneCount; i++) { string sceneJson = PlayerPrefs.GetString("Saved Scene " + i); if (i >= SavedScenes.Count) { SpiralScene scene = SerializableManager.Deserialize <SpiralScene>(sceneJson); SavedScenes.Add(scene); } else { SerializableManager.Deserialize <SpiralScene>(SavedScenes[i], sceneJson); } } string inProgress = PlayerPrefs.GetString("In Progress Scene", ""); if (inProgress != "") { SerializableManager.Deserialize <SpiralScene>(UnsavedScene, inProgress); } }
SerializableManager() { if (!IsCurrentValid()) { return; } current = this; }
public SpiralParticle CreateParticle() { SpiralParticle particle = Instantiate <SpiralParticle>(defaultParticle); particle.transform.SetParent(transform, false); SerializableManager.Deserialize <SpiralParticle>(particle, defaultParticle.ToJSON()); return(particle); }
public SpiralPattern CreatePattern() { SpiralPattern pattern = Instantiate <SpiralPattern>(defaultPattern); pattern.transform.SetParent(transform, false); SerializableManager.Deserialize <SpiralPattern>(pattern, defaultPattern.ToJSON()); return(pattern); }
public override void OnInspectorGUI() { if (SerializableManager.current != target) { GUI.color = Color.red; EditorGUILayout.HelpBox("You can only have one instance of Serializable Manager at the same time.", MessageType.Error, true); if (SerializableManager.current == null && SerializableManager.current != (SerializableManager)target) { SerializableManager.current = ((SerializableManager)target); } return; } DrawDefaultInspector(); serializedObject.Update(); if (serializedObject.FindProperty("Encrypt").boolValue) { EditorGUILayout.PropertyField(serializedObject.FindProperty("password"), true); if (passwordWarning > Time.realtimeSinceStartup || (lastpassword != "" && lastpassword != serializedObject.FindProperty("password").stringValue)) { EditorGUILayout.HelpBox("Change the password will cause can not be loaded old games", MessageType.Warning, true); if (passwordWarning < Time.realtimeSinceStartup) { passwordWarning = Time.realtimeSinceStartup + 20; } } lastpassword = serializedObject.FindProperty("password").stringValue; } if (serializedObject.FindProperty("AutoSave").boolValue) { EditorGUILayout.PropertyField(serializedObject.FindProperty("TimeBetweenSavedSeconds"), true); EditorGUILayout.PropertyField(serializedObject.FindProperty("CurrentTimeToSave"), true); } GUI.enabled = Application.isPlaying; if (GUILayout.Button("Save All")) { SerializableManager.SaveAll(); } if (GUILayout.Button("Load All")) { SerializableManager.LoadAll(); } if (!Application.isPlaying) { GUI.enabled = true; GUI.color = Color.yellow; EditorGUILayout.HelpBox("You can only save and load in play mode", MessageType.Warning, true); GUI.color = Color.white; } serializedObject.ApplyModifiedProperties(); }
public SpiralScene CreateScene(SpiralScene copy = null) { SpiralScene baseScene = copy ?? defaultScene; SpiralScene scene = new GameObject(defaultScene.name).AddComponent <SpiralScene>(); scene.transform.SetParent(transform, false); SerializableManager.Deserialize <SpiralScene>(scene, baseScene.ToJSON()); return(scene); }
// Update is called once per frame void Update() { if (Random.Range(1, 70) == 1) { GameObject newObject = SerializableManager.PrefabInstantiate(Prefab); newObject.transform.position = transform.position + new Vector3(Random.Range(-10, 10), 0, 0); } time += Time.deltaTime; }
public void OnParticlePaste() { if (DataManager.Instance.CopiedObject is SpiralParticle) { SpiralParticle copied = DataManager.Instance.CopiedObject as SpiralParticle; SerializableManager.Deserialize <SpiralParticle>(CurrentGroup.Particle, copied.ToJSON()); DataManager.Instance.CopiedObject = null; UIManager.TriggerRefresh(); } }
void Awake() { if (!IsCurrentValid()) { return; } current = this; if (TryToLoadDefaultOnStart) { LoadAll(); } }
public void FromJSON(Dictionary <string, object> jsonData) { name = (string)jsonData["name"]; BackgroundColor = SerializableManager.FromJSON(jsonData["background"]); foreach (PatternGroup g in Patterns) { if (g != null) { if (g.Pattern != null) { Destroy(g.Pattern.gameObject); } if (g.Particle != null) { Destroy(g.Particle.gameObject); } } } Patterns.Clear(); List <object> groups = (List <object>)jsonData["groups"]; for (int i = 0; i < 4; i++) { PatternGroup p = null; if (i < groups.Count) { Dictionary <string, object> group = (Dictionary <string, object>)groups[i]; if (group.Count > 0) { p = new PatternGroup(); Dictionary <string, object> pattern = (Dictionary <string, object>)group["pattern"]; Dictionary <string, object> particle = (Dictionary <string, object>)group["particle"]; p.Enabled = SerializableManager.GetInt(group["enabled"]) > 0; p.Pattern = DataManager.Instance.CreatePattern(); SerializableManager.Deserialize <SpiralPattern>(p.Pattern, pattern); p.Particle = DataManager.Instance.CreateParticle(); SerializableManager.Deserialize <SpiralParticle>(p.Particle, particle); p.Color = SerializableManager.FromJSON(group["color"]); } } Patterns.Add(p); } }
public void FromJSON(Dictionary <string, object> jsonData) { name = SerializableManager.GetStringValue(jsonData, "name"); Spokes = SerializableManager.GetIntValue(jsonData, "spokes"); SpiralsPerSpoke = SerializableManager.GetIntValue(jsonData, "spokeSpirals"); SpokeDistance = SerializableManager.GetFloatValue(jsonData, "spokeDistance"); PatternRotation = SerializableManager.GetFloatValue(jsonData, "patternRotation"); SpokeRotation = SerializableManager.GetFloatValue(jsonData, "spokeRotation"); SpokeLengthMultiplier = SerializableManager.GetFloatValue(jsonData, "spokeLengthMulti"); SpokeArcMultiplier = SerializableManager.GetFloatValue(jsonData, "spokeArcMulti"); SpokeCurlMultiplier = SerializableManager.GetFloatValue(jsonData, "spokeCurlMulti"); }
void OnGUI() { if (GUI.Button(new Rect(10, 10, 150, 20), "Save Game")) { SerializableManager.SaveAll(); } if (GUI.Button(new Rect(10, 50, 150, 20), "Load Game")) { //to erase those now! foreach (exampleCube cubes in GameObject.FindObjectsOfType <exampleCube>()) { Destroy(cubes.gameObject); } SerializableManager.LoadAll(); } GUI.Label(new Rect(10, 300, 200, 20), "Time: " + (int)time); }
public void FromJSON(Dictionary <string, object> jsonData) { name = (string)jsonData["name"]; Width = SerializableManager.GetFloatValue(jsonData, "width"); Tapering = SerializableManager.GetFloatValue(jsonData, "tapering"); TargetLength = SerializableManager.GetFloatValue(jsonData, "length"); Arc = SerializableManager.GetFloatValue(jsonData, "arc"); Curl = SerializableManager.GetFloatValue(jsonData, "curl"); TargetChildren = SerializableManager.GetIntValue(jsonData, "children"); ChildLengthMultiplier = SerializableManager.GetFloatValue(jsonData, "childLengthMulti"); ChildArcMultiplier = SerializableManager.GetFloatValue(jsonData, "childArcMulti"); ChildCurlMultiplier = SerializableManager.GetFloatValue(jsonData, "childCurlMulti"); ChildDepthLimit = SerializableManager.GetIntValue(jsonData, "childDepth"); ChildSpread = SerializableManager.GetFloatValue(jsonData, "childSpread"); ChildRotation = SerializableManager.GetFloatValue(jsonData, "childRotation"); }
private void FilesExplorer() { if (SerializableManager.current.Encrypt && SerializableManager.current.password != lastpassword) { this.CacheEncrytion.Clear();//old } //Back... EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("[FOLDER]", EditorStyles.boldLabel, GUILayout.Width(90)); EditorGUILayout.LabelField("[BACK]", GUILayout.MinWidth(20)); if (GUILayout.Button("Open", GUILayout.Width(110))) { GUIUtility.keyboardControl = 0; FilesPath = Path.GetFullPath(Path.Combine(FilesPath, @"..\")); } //to aling EditorGUILayout.LabelField("", EditorStyles.label, GUILayout.Width(110 * 2 + 4)); EditorGUILayout.EndHorizontal(); try { foreach (string DirectoryPath in Directory.GetDirectories(FilesPath)) { string FolderName = Path.GetFileName(DirectoryPath); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("[FOLDER]", EditorStyles.boldLabel, GUILayout.Width(90)); EditorGUILayout.LabelField(FolderName, GUILayout.MinWidth(20)); if (GUILayout.Button("Open", GUILayout.Width(110))) { GUIUtility.keyboardControl = 0; FilesPath = DirectoryPath; } //to aling EditorGUILayout.LabelField("", EditorStyles.label, GUILayout.Width(110 * 2 + 4)); EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); foreach (string FilePath in Directory.GetFiles(FilesPath)) { string FileName = Path.GetFileName(FilePath); if (FileName == "Thumbs.db") { continue; } if (lastpassword == null || SerializableManager.current.password != lastpassword || !CacheEncrytion.ContainsKey(FileName)) { //create cache CacheEncrytion.Add(FileName, SerializableFiles.IsValid(FilePath)); } SerializableFiles.ValidsTypes ValidSave = SerializableFiles.ValidsTypes.Error; //SerializableFiles.IsValid(FilePath); CacheEncrytion.TryGetValue(FileName, out ValidSave); EditorGUILayout.BeginHorizontal(); bool valid = ValidSave != SerializableFiles.ValidsTypes.Error && ValidSave != SerializableFiles.ValidsTypes.ERROR_Enc; //File status EditorGUILayout.LabelField("[" + ValidSave.ToString().Replace("_", " ").ToUpper() + "]", valid ? ValidFile : NotValidFile, GUILayout.Width(90)); //File name EditorGUILayout.LabelField(FileName, GUILayout.MinWidth(200)); //File size EditorGUILayout.LabelField(FileSize(FilePath), TextButtonRight, GUILayout.Width(100)); //shows buttons? if (valid) { //View Button if (GUILayout.Button("View", GUILayout.Width(110))) { this.LoadGame(FileName); } //Load Button GUI.enabled = SerializableManager.current != null && SerializableManager.current.enabled && Application.isPlaying; if (GUILayout.Button("Load", GUILayout.Width(110))) { SerializableManager.LoadAll(FileName); } //Default Button GUI.enabled = SerializableManager.current != null; if (GUILayout.Button((SerializableManager.current.DefaultFileName == FileName ? "Remove Default" : "Set Default"), GUILayout.Width(110))) { if (SerializableManager.current.DefaultFileName == FileName) { FileName = SerializableManager.DefaultSaveName; } SerializableManager.current.DefaultFileName = FileName; } } else { if (ValidSave == SerializableFiles.ValidsTypes.Error) { EditorGUILayout.LabelField("This is not a valid saved", EditorStyles.label, GUILayout.Width(110 * 3 + 8)); } else if (ValidSave == SerializableFiles.ValidsTypes.ERROR_Enc) { EditorGUILayout.LabelField("The saved could not be decrypted, bad password?", EditorStyles.label, GUILayout.Width(110 * 3 + 8)); } else { EditorGUILayout.LabelField("INTERAL ERROR (A161)", EditorStyles.label, GUILayout.Width(110 * 3 + 8)); } } //Restart GUI Status GUI.enabled = true; EditorGUILayout.EndHorizontal(); } } catch (FileNotFoundException e) { GUI.color = Color.yellow; EditorGUILayout.HelpBox("The route " + e.FileName + " is not a folder!", MessageType.Error); } catch (Exception e) { GUI.color = Color.yellow; EditorGUILayout.HelpBox("Error: " + e.Message, MessageType.Error); } lastpassword = SerializableManager.current.password; }
public void LoadDefaultScene() { SerializableManager.Deserialize <SpiralScene>(UnsavedScene, defaultScene.ToJSON()); SceneUI.Instance.LoadScene(UnsavedScene); }
public void Copy(SpiralScene sceneToCopy) { SerializableManager.Deserialize <SpiralScene>(this, sceneToCopy.ToJSON()); }