Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
 SerializableManager()
 {
     if (!IsCurrentValid())
     {
         return;
     }
     current = this;
 }
Ejemplo n.º 3
0
    public SpiralParticle CreateParticle()
    {
        SpiralParticle particle = Instantiate <SpiralParticle>(defaultParticle);

        particle.transform.SetParent(transform, false);
        SerializableManager.Deserialize <SpiralParticle>(particle, defaultParticle.ToJSON());
        return(particle);
    }
Ejemplo n.º 4
0
    public SpiralPattern CreatePattern()
    {
        SpiralPattern pattern = Instantiate <SpiralPattern>(defaultPattern);

        pattern.transform.SetParent(transform, false);
        SerializableManager.Deserialize <SpiralPattern>(pattern, defaultPattern.ToJSON());
        return(pattern);
    }
Ejemplo n.º 5
0
    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();
    }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
    // 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;
    }
Ejemplo n.º 8
0
 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();
     }
 }
Ejemplo n.º 9
0
    void Awake()
    {
        if (!IsCurrentValid())
        {
            return;
        }
        current = this;

        if (TryToLoadDefaultOnStart)
        {
            LoadAll();
        }
    }
Ejemplo n.º 10
0
    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);
        }
    }
Ejemplo n.º 11
0
    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");
    }
Ejemplo n.º 12
0
    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);
    }
Ejemplo n.º 13
0
    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");
    }
Ejemplo n.º 14
0
    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;
    }
Ejemplo n.º 15
0
 public void LoadDefaultScene()
 {
     SerializableManager.Deserialize <SpiralScene>(UnsavedScene, defaultScene.ToJSON());
     SceneUI.Instance.LoadScene(UnsavedScene);
 }
Ejemplo n.º 16
0
 public void Copy(SpiralScene sceneToCopy)
 {
     SerializableManager.Deserialize <SpiralScene>(this, sceneToCopy.ToJSON());
 }