public ActionListNode <T> AddAction_Next(GameAction <T> action, ExecuteRule TransRule) { ActionListNode <T> a = new ActionListNode <T>(); a._parent = this; action.Executor = Executor; a.action = action; if (List.Count == 0) { if (entered) { action.Enter(); } List.AddLast(a); rules.AddLast(TransRule); currentNode = List.First; currentRule = rules.First; } else { List.AddAfter(List.First, a); rules.AddAfter(rules.First, TransRule); } return(a); }
public ActionListNode <T> AddAction_End(GameAction <T> action, ExecuteRule TransRule) { ActionListNode <T> a = new ActionListNode <T>(); action.Executor = Executor; a._parent = this; a.action = action; List.AddLast(a); rules.AddLast(TransRule); if (currentNode == null) { if (entered) { action.Enter(); } currentNode = List.Last; currentRule = rules.Last; } return(a); }