|
|
- // 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;
- }
- }
- }
|