Ejemplo n.º 1
0
    public static void UpdateServer(CategoryComponent component)
    {
        component.UpdateData();

        if (!ServerEditor.Post(@"Categories/Update/" + component.CategoryData.ID, component.CategoryData, "Update category", "Update"))
        {
            component.CategoryData = null;
        }
    }
Ejemplo n.º 2
0
    public static void UpdateServer(PuzzleComponent component)
    {
        component.UpdateData();

        if (!ServerEditor.Post(@"Puzzles/Update/" + component.PuzzleData.ID, component.PuzzleData, "Update puzzle", "Update"))
        {
            component.PuzzleData = null;
        }
    }
Ejemplo n.º 3
0
    public void SendPuzzlesToServer()
    {
        List <Puzzle> puzzles = new List <Puzzle>();

        puzzles.AddRange(LocalDBController.Table <Puzzle>().ToList());
        Debug.Log(puzzles.Count);

        foreach (Puzzle p in puzzles)
        {
            ServerEditor.Post(@"Puzzles/Create", p, "Update Puzzle", "Update");
        }
    }
Ejemplo n.º 4
0
    public void SendCategoriesToServer()
    {
        List <Category> cats = new List <Category>();

        cats.AddRange(LocalDBController.Table <Category>().ToList());

        while (cats.Any())
        {
            foreach (Category c in cats)
            {
                if (c.PrerequisiteID == null || cats.FirstOrDefault(t => t.ID == c.PrerequisiteID) == null)
                {
                    if (c.ParentID == null || cats.FirstOrDefault(t => t.ID == c.ParentID) == null)
                    {
                        ServerEditor.Post(@"Categories/Create", c, "Update category", "Update");
                        cats.Remove(c);
                        break;
                    }
                }
            }
        }
    }
Ejemplo n.º 5
0
    public override void OnInspectorGUI()
    {
        _categoryComponent = target as CategoryComponent;


        EditorGUILayout.BeginHorizontal();

        #region Add Subcategory

        if (GUILayout.Button("Add Subcategory"))
        {
            // create category object
            var category = new Category()
            {
                ID             = 1,
                PrerequisiteID = null,
                ParentID       = _categoryComponent.ID,
                Name           = "No Name",
                Row            = _categoryComponent.transform.childCount,
                Icon           = "22",
                Visit          = true,
                Price          = 0,
                LastUpdate     = DateTime.Now
            };

            // Add to server
            Category newCategory = ServerEditor.Post <Category>(@"Categories/Create", category, "Create Category", "Create");

            if (newCategory == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't create Subcategory in server", "Ok");
                return;
            }

            _categoryComponent.AddSubcategory(newCategory);
        }


        #endregion

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();

        #region UpdateData

        if (GUILayout.Button("UpdateData"))
        {
            UpdateServer(_categoryComponent);
        }

        #endregion

        #region Delete

        if (GUILayout.Button("Delete!!"))
        {
            if (_categoryComponent.transform.childCount != 0)
            {
                EditorUtility.DisplayDialog("Error", "Can't delete Category with child", "Ok");
                return;
            }

            if (EditorUtility.DisplayDialog("Delete Category", "Are you sure?", "Delete", "Cancel"))
            {
                if (!ServerEditor.Post(@"Categories/Delete/" + _categoryComponent.ID, null, "Delete Category", "Delete"))
                {
                    EditorUtility.DisplayDialog("Error", "Can't delete Category in server", "Ok");
                    return;
                }
                _categoryComponent.Delete();
                return;
            }
        }


        #endregion

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.LabelField("ID", _categoryComponent.ID.ToString());
        EditorGUILayout.LabelField("Puzzle Count", _categoryComponent.transform.childCount.ToString());

        DrawDefaultInspector();
    }
Ejemplo n.º 6
0
    public override void OnInspectorGUI()
    {
        _databaseComponent = target as DatabaseComponent;

        #region ReloadAll

        if (GUILayout.Button("ReloadAll"))
        {
            // read all categories
            var categories = ServerEditor.Get <List <Category> >(@"Categories", "Download categories", "Download");

            if (categories == null)
            {
                return;
            }

            _databaseComponent.SetCategories(categories);

            // read all puzzles
            List <Puzzle> puzzles = ServerEditor.Get <List <Puzzle> >(@"Puzzles", "Download puzzles", "Download");

            if (puzzles == null)
            {
                return;
            }

            _databaseComponent.SetPuzzles(puzzles);

            // create game objects
            _databaseComponent.ReloadAll();
        }


        #endregion

        #region UpdateData All

        if (GUILayout.Button("UpdateData All"))
        {
            // Update categories
            var categoryComponents = _databaseComponent.GetComponentsInChildren <CategoryComponent>();

            foreach (var categoryComponent in categoryComponents)
            {
                if (categoryComponent.Dirty)
                {
                    CategoryEditor.UpdateServer(categoryComponent);
                }
            }

            //Update puzzles
            var puzzleComponents = _databaseComponent.GetComponentsInChildren <PuzzleComponent>();

            foreach (var puzzleComponent in puzzleComponents)
            {
                if (puzzleComponent.Dirty)
                {
                    PuzzleEditor.UpdateServer(puzzleComponent);
                }
            }
        }

        #endregion

        #region Sync localDB

        if (GUILayout.Button("Sync All with localDB"))
        {
            // read all categories
            var categories = ServerEditor.Get <List <Category> >(@"Categories", "Download categories", "Download");

            if (categories == null)
            {
                return;
            }

            // read all puzzles
            List <Puzzle> puzzles = ServerEditor.Get <List <Puzzle> >(@"Puzzles", "Download puzzles", "Download");

            if (puzzles == null)
            {
                return;
            }

            LocalDBController.DeleteAll <Category>();
            LocalDBController.DeleteAll <Puzzle>();

            foreach (Category category in categories)
            {
                LocalDBController.InsertOrReplace(category);
            }

            foreach (Puzzle puzzle in puzzles)
            {
                LocalDBController.InsertOrReplace(puzzle);
            }
        }

        #endregion
    }
Ejemplo n.º 7
0
    public override void OnInspectorGUI()
    {
        _puzzleComponent = target as PuzzleComponent;

        EditorGUILayout.Space();
        EditorGUILayout.BeginHorizontal();

        #region Update

        if (GUILayout.Button("Update"))
        {
            UpdateServer(_puzzleComponent);
        }

        #endregion

        #region Delete

        if (GUILayout.Button("Delete!!"))
        {
            if (EditorUtility.DisplayDialog("Delete Puzzle", "Are you sure?", "Delete", "Cancel"))
            {
                if (!ServerEditor.Post(@"Puzzles/Delete/" + _puzzleComponent.ID, null, "Delete Puzzle", "Delete"))
                {
                    EditorUtility.DisplayDialog("Error", "Can't delete Puzzle in database", "Ok");
                }

                _puzzleComponent.Delete();
                return;
            }
        }


        #endregion

        EditorGUILayout.EndHorizontal();

        #region Spawn

        if (GUILayout.Button("Spawn"))
        {
            var Wordspawner = FindObjectOfType <WordSpawner>();

            if (Wordspawner == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't find word spawner", "Ok");
                return;
            }

            Wordspawner.EditorInstatiate = EditorInstantiate;

            WordSet wordSet = new WordSet();
            JsonUtility.FromJsonOverwrite(StringCompressor.DecompressString(_puzzleComponent.Content), wordSet);
            Wordspawner.WordSet = wordSet;

            Wordspawner.SpawnWords();
        }


        #endregion

        EditorGUILayout.Space();
        EditorGUILayout.LabelField("ID", _puzzleComponent.ID.ToString());
        DrawDefaultInspector();
    }
Ejemplo n.º 8
0
    void OnGUI()
    {
        #region Get clue and category

        GUILayout.Label("Generator", EditorStyles.boldLabel);

        _clue = EditorGUILayout.TextField("Clue", _clue);



        _puzzle = (PuzzleComponent)EditorGUILayout.ObjectField(_puzzle, typeof(PuzzleComponent), true);

        #endregion

        #region Spawn wordSet

        if (GUILayout.Button("Spawn"))
        {
            _clue = _puzzle.Clue;
            var Wordspawner = FindObjectOfType <WordSpawner>();

            if (Wordspawner == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't find word spawner", "Ok");
                return;
            }



            Wordspawner.EditorInstatiate = EditorInstantiate;

            WordSet wSet = new WordSet();
            JsonUtility.FromJsonOverwrite(StringCompressor.DecompressString(_puzzle.Content), wSet);
            Wordspawner.WordSet = wSet;
            _wordSet            = wSet;
            Wordspawner.SpawnWords();
        }

        #endregion


        #region Regenerate wordSet

        if (GUILayout.Button("Regenerate"))
        {
            var wordGenerator = FindObjectOfType <WordSetGenerator>();
            if (wordGenerator == null)
            {
                EditorUtility.DisplayDialog("Error", "Can't find word spawner", "Ok");
                return;
            }

            wordGenerator.AllWords = "";
            foreach (var word in _wordSet.Words)
            {
                wordGenerator.AllWords += word.Name + " ";
            }
            wordGenerator.UsedWordCount = _wordSet.Words.Count;
            MgsCoroutine.GetTime        = GetTime;
            MgsCoroutine.Start(
                wordGenerator.MakeWordSet(),
                () => EditorUtility.DisplayCancelableProgressBar(MgsCoroutine.Title, MgsCoroutine.Info, MgsCoroutine.Percentage),
                0.1);

            EditorUtility.ClearProgressBar();

            wordGenerator.EditorInstantiate = EditorInstantiate;

            wordGenerator.SpawnWordSet();

            Selection.activeObject = wordGenerator.gameObject;
        }

        #endregion


        if (GUILayout.Button("Save"))
        {
            #region Get word manager

            var wordManagers = FindObjectsOfType <WordManager>();

            if (wordManagers.Length == 0)
            {
                EditorUtility.DisplayDialog("Error", "Word manager not found!", "OK");
                return;
            }

            if (wordManagers.Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "More than one Word manager!", "OK");
                return;
            }

            var wordManager = wordManagers[0];

            #endregion

            #region Create New wordSet

            WordSet wordSet = new WordSet();

            wordSet.Clue  = _clue;
            wordSet.Words = new List <SWord>();

            foreach (var word in wordManager.GetComponentsInChildren <Word>())
            {
                wordSet.Words.Add(new SWord(word));
            }

            #endregion

            #region Replace Puzzle TO Server
            // create category in database
            var puzzle = new Puzzle
            {
                ID         = _puzzle.PuzzleData.ID,
                CategoryID = _puzzle.PuzzleData.CategoryID,
                Clue       = _clue,
                Row        = _puzzle.PuzzleData.Row,
                Content    = StringCompressor.CompressString(JsonUtility.ToJson(wordSet)),
                LastUpdate = DateTime.Now
            };

            _puzzle.Content = puzzle.Content;
            _puzzle.Clue    = puzzle.Clue;
            _puzzle.Dirty   = true;
            _puzzle.UpdateData();

            ServerEditor.Post(@"Puzzles/Update/" + _puzzle.PuzzleData.ID, puzzle, "Update puzzle",
                              "Update");

            #endregion
        }
    }
Ejemplo n.º 9
0
    void OnGUI()
    {
        #region Get clue and category

        GUILayout.Label("Generator", EditorStyles.boldLabel);
        _clue     = EditorGUILayout.TextField("Clue", _clue);
        _category = (CategoryComponent)EditorGUILayout.ObjectField(_category, typeof(CategoryComponent), true);


        #endregion

        if (GUILayout.Button("Save"))
        {
            #region Initial Checks

            if (_clue == "")
            {
                EditorUtility.DisplayDialog("Error", "Specify clue!", "OK");
                return;
            }
            if (_category == null)
            {
                EditorUtility.DisplayDialog("Error", "Specify category!", "OK");
                return;
            }
            if (_category.GetComponentsInChildren <CategoryComponent>().Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "Category " + _category.Name + " has subcategory!", "OK");
                return;
            }


            #endregion

            #region Get word manager

            var wordManagers = FindObjectsOfType <WordManager>();

            if (wordManagers.Length == 0)
            {
                EditorUtility.DisplayDialog("Error", "Word manager not found!", "OK");
                return;
            }

            if (wordManagers.Length > 1)
            {
                EditorUtility.DisplayDialog("Error", "More than one Word manager!", "OK");
                return;
            }

            var wordManager = wordManagers[0];

            #endregion

            #region Create wordSet

            WordSet wordSet = new WordSet();

            wordSet.Clue  = _clue;
            wordSet.Words = new List <SWord>();

            foreach (var word in wordManager.GetComponentsInChildren <Word>())
            {
                wordSet.Words.Add(new SWord(word));
            }

            #endregion


            #region Save wordset to database
            // create category in database
            var puzzle = new Puzzle
            {
                ID         = 1,
                CategoryID = _category.ID,
                Clue       = wordSet.Clue,
                Row        = _category.transform.childCount,
                Content    = StringCompressor.CompressString(JsonUtility.ToJson(wordSet)),
                LastUpdate = DateTime.Now
            };

            Puzzle newPuzzle = ServerEditor.Post <Puzzle>(@"Puzzles/Create", puzzle, "Create puzzle", "Create");

            if (newPuzzle == null)
            {
                EditorUtility.DisplayDialog("Error", "Puzzle can't save in server!", "OK");
                return;
            }

            _category.AddPuzzle(newPuzzle);

            #endregion
        }
    }