Exemple #1
0
        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
        }
Exemple #6
0
        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);
 }
Exemple #9
0
 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);
        }