'push'
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
// Crest Water System
|
||||
// Copyright © 2024 Wave Harmonic. All rights reserved.
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using WaveHarmonic.Crest.Editor;
|
||||
|
||||
namespace WaveHarmonic.Crest.ShallowWater.Editor
|
||||
{
|
||||
[CustomEditor(typeof(ShallowWaterSimulation))]
|
||||
sealed class ShallowWaterSimulationEditor : Inspector
|
||||
{
|
||||
const string k_SwitchToBaked = "Switch to Baked";
|
||||
const string k_SwitchToRealTime = "Switch to Real-Time";
|
||||
|
||||
protected override void RenderInspectorGUI()
|
||||
{
|
||||
base.RenderInspectorGUI();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
var target = this.target as ShallowWaterSimulation;
|
||||
|
||||
var padding = GUI.skin.GetStyle("HelpBox").padding;
|
||||
|
||||
GUI.skin.GetStyle("HelpBox").padding = new(10, 10, 10, 10);
|
||||
EditorGUILayout.HelpBox($"Resolution: {target.Resolution}", MessageType.None);
|
||||
|
||||
GUI.skin.GetStyle("HelpBox").padding = padding;
|
||||
}
|
||||
|
||||
protected override void RenderAfterInspectorGUI()
|
||||
{
|
||||
base.RenderAfterInspectorGUI();
|
||||
|
||||
var target = this.target as ShallowWaterSimulation;
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
if (target.Mode == ShallowWaterSimulationMode.RealTime)
|
||||
{
|
||||
if (target._SampleDepthProbeDirectly && target._DepthProbe == null && !target.TryGetComponent(out target._DepthProbe) && GUILayout.Button("Add Depth Probe"))
|
||||
{
|
||||
var probe = Undo.AddComponent<DepthProbe>(target.gameObject);
|
||||
probe.Managed = true;
|
||||
probe.Scale = new(target._Width, target._Width);
|
||||
probe.OverridePosition = target.Movable;
|
||||
}
|
||||
|
||||
if (target.DisplacementTarget == ShallowWaterSimulationInjection.Level && target.LevelTexture != null && GUILayout.Button(k_SwitchToBaked))
|
||||
{
|
||||
Undo.RecordObject(target, k_SwitchToBaked);
|
||||
target._Mode = ShallowWaterSimulationMode.Baked;
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
|
||||
if (target.DisplacementTarget == ShallowWaterSimulationInjection.Level && GUILayout.Button("Bake Output"))
|
||||
{
|
||||
target.Bake();
|
||||
}
|
||||
|
||||
if (GUILayout.Button("Reset Simulation"))
|
||||
{
|
||||
target.ResetSimulation();
|
||||
}
|
||||
|
||||
if (target._DepthProbe != null && GUILayout.Button("Populate Depth Probe & Reset Simulation"))
|
||||
{
|
||||
target._DepthProbe.Populate();
|
||||
target.ResetSimulation();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GUILayout.Button(k_SwitchToRealTime))
|
||||
{
|
||||
Undo.RecordObject(target, k_SwitchToRealTime);
|
||||
target._Mode = ShallowWaterSimulationMode.RealTime;
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user