private static int GetWordCount(PuzzleComponent p) { WordSet ws = new WordSet(); JsonUtility.FromJsonOverwrite(StringCompressor.DecompressString(p.Content), ws); return(ws.Words.Count); }
public bool AddPuzzle(Puzzle puzzle) { // Create CategoryComponent PuzzleComponent.Create(puzzle, transform); return(true); }
public static void UpdateServer(PuzzleComponent component) { component.UpdateData(); if (!ServerEditor.Post(@"Puzzles/Update/" + component.PuzzleData.ID, component.PuzzleData, "Update puzzle", "Update")) { component.PuzzleData = null; } }
//constructor 2 for create public PuzzleObject(string nameObject, Vector3 position, int id, float koeff_scale, string name) { ObjectInit(C.PREFAB + nameObject); _component = _object.GetComponent <PuzzleComponent>(); TransformInit(); AttachToCanvas(); SetTransform(position); SetScale(koeff_scale); SetID(id); SetName(name + id); MaterialInit(); }
private void CreateCategory(Transform parenTransform) { // Get category ID var categoryComponent = parenTransform.GetComponent <CategoryComponent>(); int?categoryID = categoryComponent != null ? (int?)categoryComponent.CategoryData.ID : null; // Find all subCategories var subCategories = _Categories.Where(c => c.ParentID == categoryID); // Create category components foreach (Category subCategory in subCategories) { CreateCategory(CategoryComponent.Create(subCategory, parenTransform)); } // Find all puzzles var puzzles = _puzzles.Where(p => p.CategoryID == categoryID); // Create puzzle components foreach (var puzzle in puzzles) { PuzzleComponent.Create(puzzle, parenTransform); } }
void Awake() { Instance = this; this.refs = GetComponent <GameObjectRef>(); }
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 } }
//constructor for find public PuzzleObject(int id) { _object = GameObject.Find("puzzle" + id); _component = _object.GetComponent <PuzzleComponent>(); TransformInit(); }