static void ClearLevel(LevelConstructor levelConstructor) { if (EditorUtility.DisplayDialog("Clear level", "Do you realy want to clear this level?", "Yes", "No")) { levelConstructor.ClearLevel(); } }
public void StartGenerate(LevelConstructor levelConstructor, TileGeneration startTile) { _levelConstructor = levelConstructor; _fogZPosition = startTile.GetPosition().z - startTile.GetSize().z *_startOfsetPosition; _fogStep = startTile.GetSize().z; _pool = FindObjectOfType <FogPool>(); GenerateFog(); StartCoroutine(NextGnerateFog()); }
private void ConstructorInit() { LevelConstructor.Ctx levelConstructorCtx = new LevelConstructor.Ctx { boxInRowCount = boxInRowCount, leftWall = leftWall, rightWall = rightWall, mcamera = mcamera, }; LevelConstructor levelConstructor = new LevelConstructor(levelConstructorCtx); }
private void Awake() { //enforce singleton if (!instance) { instance = this; } else { Destroy(this); } }
// Use this for initialization void Start() { if (gameCamera == null) { gameCamera = GameObject.Find("Main Camera").GetComponent<Camera>(); } if (levelConstructor == null) { levelConstructor = GameObject.Find ("LevelConstructor").GetComponent<LevelConstructor>(); } floorMask = LayerMask.GetMask("TileGround"); }
static void SaveLevel(LevelConstructor levelConstructor) { var data = AssetDatabase.LoadAssetAtPath <LevelData>($"Assets/Resources/Levels/Level-{levelConstructor.LevelNumber}.asset"); if (data != null) { //Если уже есть уровень с таким номером, то спрашиваем заменить его или нет if (!EditorUtility.DisplayDialog("Save level", $"Level with number {levelConstructor.LevelNumber} already exist.\n Replace?", "Replace", "Cancel")) { return; } } if (levelConstructor.SaveLevel()) { EditorUtility.DisplayDialog("Save level", "Level saved successfuly", "OK"); } else { EditorUtility.DisplayDialog("Save level", "Oops.. Something goes wrong while saving level. See console", "OK"); } }
private void Awake() { instance = this; }
// Use this for initialization void Start() { if (levelConstructor == null) { GameObject levelConstructorObj = GameObject.Find("LevelConstructor"); if (levelConstructorObj == null) { // TODO: Some warning here. } if (levelConstructorObj != null) { levelConstructor = levelConstructorObj.GetComponent<LevelConstructor>(); } } if (tileSelector == null) { GameObject tileSelectorObj = GameObject.Find ("TileSelector"); if (tileSelectorObj != null) { tileSelector = tileSelectorObj.GetComponent<TileSelector>(); tileSelector.OnTileSelectionCallback += OnTileSelected; } } }
private void OnGUI() { if (GameObject.FindObjectOfType <GameManager>() == null) { EditorGUILayout.HelpBox(new GUIContent("Navigate to a level scene to use this tool")); return; } GUIStyle headerStyle = new GUIStyle(); headerStyle.fontSize = 18; headerStyle.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Json Level Editor", headerStyle); EditorGUILayout.Separator(); currentPackIndex = EditorGUILayout.IntField("Target Pack Index", currentPackIndex, GUILayout.MaxWidth(250f)); currentLevelIndex = EditorGUILayout.IntField("Target Level Index", currentLevelIndex, GUILayout.MaxWidth(250f)); if (GUILayout.Button("Create Level Asset")) { GameManager currentGameManager = GameObject.FindObjectOfType <GameManager>(); BoardManager currentBoardManager = GameObject.FindObjectOfType <BoardManager>(); BoardData newGameBoardData = new BoardData(currentGameManager.gameBoardParent, new Vector2Int(currentBoardManager.GetBoardWidth(), currentBoardManager.GetBoardHeight())); BoardData newSolutionBoardData = new BoardData(currentGameManager.solutionBoardParent, new Vector2Int(currentBoardManager.GetBoardWidth(), currentBoardManager.GetBoardHeight())); string targetFilePath = GetCurrentAssetPath(); if (!File.Exists(targetFilePath)) { AssetDatabase.CreateAsset(new TextAsset(), targetFilePath); AssetDatabase.Refresh(); } LevelData targetLevelData = new LevelData(newGameBoardData, newSolutionBoardData); string levelJsonData = JsonUtility.ToJson(targetLevelData, true); StreamWriter writer = new StreamWriter(targetFilePath); writer.Write(levelJsonData); writer.Close(); } if (GUILayout.Button("Load Level Data")) { GameObject.FindObjectOfType <LevelConstructor>().DestroyLevel(); TextAsset levelDataAsset = Resources.Load <TextAsset>($"{LEVEL_FILES_LOCATION}/LevelPack_{currentPackIndex}/Level_{currentPackIndex}-{currentLevelIndex}"); if (levelDataAsset == null) { Debug.LogError($"Couldn't Find Data Asset for {GetCurrentAssetPath()}"); return; } StreamReader reader = new StreamReader(GetCurrentAssetPath()); string input = reader.ReadToEnd(); currentLevelData = JsonUtility.FromJson <LevelData>(input); if (currentLevelData == null) { Debug.LogError($"Couldn't Parse Level Data Asset"); return; } LevelConstructor constructor = GameObject.FindObjectOfType <LevelConstructor>(); constructor.ConstructLevel(currentLevelData); } if (GUILayout.Button("Destroy Level")) { GameObject.FindObjectOfType <LevelConstructor>().DestroyLevel(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } }