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