summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs')
-rw-r--r--Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs58
1 files changed, 58 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs
new file mode 100644
index 00000000..666c9020
--- /dev/null
+++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Actions/ActionLog.cs
@@ -0,0 +1,58 @@
+// Amplify Shader Editor - Visual Shader Editing Tool
+// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
+
+using System.Collections.Generic;
+
+namespace AmplifyShaderEditor
+{
+ public class ActionLog
+ {
+ private int m_maxCount;
+ private int m_index;
+ private List<ActionData> m_sequence;
+
+ public ActionLog(int maxCount)
+ {
+ m_maxCount = maxCount;
+ m_index = 0;
+ m_sequence = new List<ActionData>();
+ }
+
+ public void AddToLog(ActionData actionData)
+ {
+ if (m_sequence.Count > m_maxCount)
+ {
+ m_sequence.RemoveAt(0);
+ }
+
+ m_sequence.Add(actionData);
+ m_index = m_sequence.Count - 1;
+ }
+
+
+ public void UndoLastAction()
+ {
+ if ( m_index > -1 && m_index < m_sequence.Count )
+ m_sequence[m_index--].ExecuteReverse();
+ }
+
+ public void RedoLastAction()
+ {
+ if (m_index < (m_sequence.Count - 1))
+ m_sequence[++m_index].ExecuteForward();
+
+ }
+
+ public void ClearLog()
+ {
+ m_sequence.Clear();
+ m_index = 0;
+ }
+
+ public void Destroy()
+ {
+ m_sequence.Clear();
+ m_sequence = null;
+ }
+ }
+}