public static void UpdateServer(CategoryComponent component) { component.UpdateData(); if (!ServerEditor.Post(@"Categories/Update/" + component.CategoryData.ID, component.CategoryData, "Update category", "Update")) { component.CategoryData = null; } }
public static void UpdateServer(PuzzleComponent component) { component.UpdateData(); if (!ServerEditor.Post(@"Puzzles/Update/" + component.PuzzleData.ID, component.PuzzleData, "Update puzzle", "Update")) { component.PuzzleData = null; } }
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"); } }
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; } } } } }
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(); }
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 }
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(); }
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 } }
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 } }