90 lines
2.5 KiB
C#
90 lines
2.5 KiB
C#
|
|
using System;
|
||
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using System.Linq;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
|
||
|
|
[System.Serializable]
|
||
|
|
public enum LevelEditorButtonType
|
||
|
|
{
|
||
|
|
NONE,
|
||
|
|
SHOW,
|
||
|
|
HIDE,
|
||
|
|
SHOW_BLOCKED_MESH,
|
||
|
|
HIDE_BLOCKED_MESH,
|
||
|
|
GENERATE_GRID_DATA
|
||
|
|
}
|
||
|
|
|
||
|
|
public class LevelGeneratorPanel : MonoBehaviour
|
||
|
|
{
|
||
|
|
[SerializeField] private GridManagerEditor gridManagerEditor;
|
||
|
|
[SerializeField] private GridEditorManager gridEditorManager;
|
||
|
|
|
||
|
|
[SerializeField] private LevelEditorButton[] levelEditorBtns;
|
||
|
|
|
||
|
|
private bool showNodeToggle;
|
||
|
|
private bool blockNodeToggle;
|
||
|
|
|
||
|
|
private Button prevButton;
|
||
|
|
private Button clickedButton;
|
||
|
|
|
||
|
|
public static LevelEditorButtonType levelEditorButtonState;
|
||
|
|
|
||
|
|
public void OnClick_GenerateNewGrid()
|
||
|
|
{
|
||
|
|
levelEditorButtonState = LevelEditorButtonType.GENERATE_GRID_DATA;
|
||
|
|
SetButtonStates(LevelEditorButtonType.GENERATE_GRID_DATA);
|
||
|
|
gridEditorManager.GenerateNewGridData();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void OnClick_ShowNodeBtn()
|
||
|
|
{
|
||
|
|
levelEditorButtonState = LevelEditorButtonType.SHOW;
|
||
|
|
SetButtonStates(LevelEditorButtonType.SHOW);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void OnClick_HideNodeBtn()
|
||
|
|
{
|
||
|
|
levelEditorButtonState = LevelEditorButtonType.HIDE;
|
||
|
|
SetButtonStates(LevelEditorButtonType.HIDE);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void OnClick_ShowBlockedMeshes()
|
||
|
|
{
|
||
|
|
levelEditorButtonState = LevelEditorButtonType.SHOW_BLOCKED_MESH;
|
||
|
|
SetButtonStates(LevelEditorButtonType.SHOW_BLOCKED_MESH);
|
||
|
|
|
||
|
|
gridManagerEditor.ToggleAllBlockedSets(true);
|
||
|
|
gridManagerEditor.SetBlockedMeshState(true);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void OnClick_HideBlockedMeshes()
|
||
|
|
{
|
||
|
|
levelEditorButtonState = LevelEditorButtonType.HIDE_BLOCKED_MESH;
|
||
|
|
SetButtonStates(LevelEditorButtonType.HIDE_BLOCKED_MESH);
|
||
|
|
|
||
|
|
gridManagerEditor.ToggleAllBlockedSets(false);
|
||
|
|
gridManagerEditor.SetBlockedMeshState(false);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void OnClick_GenerateJson()
|
||
|
|
{
|
||
|
|
gridManagerEditor.GenerateJsonUsingGridData();
|
||
|
|
}
|
||
|
|
|
||
|
|
private void SetButtonStates(LevelEditorButtonType type)
|
||
|
|
{
|
||
|
|
if (clickedButton != null)
|
||
|
|
{
|
||
|
|
prevButton = clickedButton;
|
||
|
|
ColorBlock colorBlock = prevButton.colors;
|
||
|
|
colorBlock.selectedColor = Color.white;
|
||
|
|
}
|
||
|
|
|
||
|
|
clickedButton = levelEditorBtns.FirstOrDefault(btnData => btnData.levelEditorButtonType == type).button;
|
||
|
|
ColorBlock colorBlock1 = clickedButton.colors;
|
||
|
|
colorBlock1.selectedColor = Color.magenta;
|
||
|
|
}
|
||
|
|
}
|