Esempio n. 1
0
 public ControllableObject(Player owner, Zone initialBounds)
     : base(initialBounds)
 {
     Owner = owner;
     Owner.AddObject(this);
     currentTask = new IdleTask();
     currentTask.Finished = true;
 }
Esempio n. 2
0
        public override void Update()
        {
            base.Update();

            //i have tasks to perform...
            //decide what task to perform
            if (currentTask.Finished) { //wait until task is finished to change tasks
                //i have finished my current task
                if (Tasks.Count > 0) //if i have more tasks...
                    currentTask = Tasks.Dequeue(); //start the next one
                else //if i am out of tasks...
                    currentTask = new IdleTask(); //then i am idle
            }

            //do the current task
            currentTask.Update(this);
        }
Esempio n. 3
0
 public void SetTask(Task t)
 {
     if (Tasks.Count > 0)
         Tasks.Clear();
     Tasks.Enqueue(t);
 }
Esempio n. 4
0
 public void EnqueueTask(Task t)
 {
     Tasks.Enqueue(t);
 }