77 lines
2.2 KiB
C#
77 lines
2.2 KiB
C#
using System;
|
|
using Assets;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using Random = UnityEngine.Random;
|
|
|
|
namespace Editor
|
|
{
|
|
[CustomEditor(typeof (GraphGenerator))]
|
|
public class GraphGeneratorUI : UnityEditor.Editor
|
|
{
|
|
private string _threshold;
|
|
private bool _showInfo = false;
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
GraphGenerator generator = (GraphGenerator)target;
|
|
|
|
_showInfo = EditorGUILayout.Foldout(_showInfo, "Debug info");
|
|
|
|
if (_showInfo)
|
|
{
|
|
EditorGUILayout.LabelField($"Stage: ", generator.Stage.ToString());
|
|
EditorGUILayout.LabelField($"Took: ", $"{generator.debug.generationTime:F3}s");
|
|
}
|
|
|
|
DrawDefaultInspector();
|
|
|
|
if (GUILayout.Button("Reset")) {
|
|
generator.Reset();
|
|
}
|
|
|
|
if (GUILayout.Button("Generate Random"))
|
|
{
|
|
generator.seed = (int)(Random.value * int.MaxValue);
|
|
generator.Reset();
|
|
generator.Generate();
|
|
}
|
|
|
|
if (GUILayout.Button("Generate")) {
|
|
generator.Generate();
|
|
}
|
|
|
|
if (GUILayout.Button("Step")) {
|
|
generator.Step();
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
{
|
|
_threshold = GUILayout.TextField(_threshold);
|
|
|
|
if (GUILayout.Button("Go")) {
|
|
try
|
|
{
|
|
generator.Rewind(float.Parse(_threshold));
|
|
}
|
|
catch
|
|
{
|
|
GUILayout.Label("You should pass valid number.");
|
|
}
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
private void OnSceneGUI()
|
|
{
|
|
GraphGenerator generator = (GraphGenerator)target;
|
|
|
|
if (generator.VoronoiGenerator != null)
|
|
{
|
|
var moved = Handles.PositionHandle(generator.transform.position + Vector3.up * (float)generator.VoronoiGenerator.Line.Directrix, Quaternion.identity);
|
|
generator.VoronoiGenerator.Line.Directrix = moved.y;
|
|
}
|
|
}
|
|
}
|
|
} |