Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/BackupTool/GUndoCompatibleBuffer.cs

74 lines
1.7 KiB
C#

#if GRIFFIN
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace Pinwheel.Griffin.BackupTool
{
//[CreateAssetMenu(fileName = "UndoCompatibleBuffer", menuName = "Griffin/Undo Compatible Buffer")]
public class GUndoCompatibleBuffer : ScriptableObject
{
private static GUndoCompatibleBuffer instance;
public static GUndoCompatibleBuffer Instance
{
get
{
if (instance == null)
{
#if UNITY_EDITOR
instance = Resources.Load<GUndoCompatibleBuffer>("UndoCompatibleBuffer");
#endif
if (instance == null)
{
instance = ScriptableObject.CreateInstance<GUndoCompatibleBuffer>();
}
}
return instance;
}
}
[SerializeField]
private string currentBackupName;
public string CurrentBackupName
{
get
{
return currentBackupName;
}
set
{
currentBackupName = value;
}
}
private void OnEnable()
{
#if UNITY_EDITOR
Undo.willFlushUndoRecord += OnWillUndoFlush;
#endif
}
private void OnDisable()
{
#if UNITY_EDITOR
Undo.willFlushUndoRecord -= OnWillUndoFlush;
#endif
}
public void RecordUndo()
{
#if UNITY_EDITOR
Undo.RegisterCompleteObjectUndo(this, "Terrain Editing");
Undo.IncrementCurrentGroup();
#endif
}
private void OnWillUndoFlush()
{
CurrentBackupName = null;
}
}
}
#endif