protected override void OnUpdate() { if (mActiveAction != null) { mActiveAction.Update(mDeltaTime); if (mActiveAction.IsDone() == false) { return; // wait for next update } else { mActiveAction = null; } } // -- activeAction is null or activeAction is done // if no more pending if (HasPendingAction() == false) { MarkAsDone(); } else { PopPendingAction(); } }
public void Schedule(float delay, AnimeAction action) { ScheduleItem scheduleItem = new ScheduleItem(); scheduleItem.delay = delay; scheduleItem.action = action; mScheduleList.Add(scheduleItem); }
public void StartAction(AnimeAction action) { if (action == null) { return; } action.SetManager(this); action.Start(); mActionList.Add(action); }
public void StartAction(AnimeAction action) { if (mManager != null) { Debug.Log("ERROR: AnimeAction: queue action=" + action.name); mManager.QueueNewAction(action); } else { Debug.Log("ERROR: AnimeActionManager: manager is null"); } }
public void QueueNewAction(AnimeAction action) { if (action == null) { return; } Debug.Log("INFO: ActionManager: " + action.name + " is queued"); // action.SetManager(this); // action.Start(); mNewActionQueue.Add(action); // update loop will run it }
protected void PopPendingAction() { if (mPendingList.Count == 0) { return; // Prevent out-of-bound problem! } mActiveAction = mPendingList[0]; mPendingList.RemoveAt(0); if (mActiveAction != null) { mActiveAction.Start(); } }
protected void AddSubAction(AnimeAction action) { action.SetManager(mManager); action.Start(); mSubActionList.Add(action); }
public void RunAction(AnimeAction action) { Reset(); StartAction(action); }
public void AddAction(AnimeAction action) { mActionList.Add(action); }
public static ModelAttackAction CreateAttackToModel(Model actor, short style, bool isMoving, Model target, AnimeAction onHitAction) { ModelAttackAction attackAction = new ModelAttackAction(); attackAction.actor = actor; attackAction.style = style; attackAction.isMoving = isMoving; attackAction.postionType = PositionType.UseModel; attackAction.targetModel = target; attackAction.onHitAction = onHitAction; return(attackAction); }