public static void ExecuteAction(GameActionBase action) { // allow changing data value _readyToAction = true; action.Execute(state); // unallow changing data value _readyToAction = false; // register executed action into history instance.historyActionQ.Enqueue(action); // keep hisotry count under max histroy count while (instance.historyActionQ.Count > instance.maxHistoryActionCount) { instance.historyActionQ.Dequeue(); } EditorUtility.SetDirty(instance); }
public static void ScheduleAction(GameActionBase action) { instance.reservatedActionQ.Enqueue(action); }