@Override
	public void DoAction() 
	{
//		LogTask("Doing action");
		if(control.Finished())
		{
			return;
		}
		if(control.curTask == null)
		{
			// If there is a null task, we've done something wrong
			Log.e("Selector", "Current task has a null action");
			return;
		}
		
		// If we do have a curTask...
		if( !control.curTask.GetControl().Started())
		{
			// ... and it's not started yet, start it.
			control.curTask.GetControl().SafeStart();
		}		
		else if(control.curTask.GetControl().Finished())
		{
			// ... and it's finished, end it properly.
			control.curTask.GetControl().SafeEnd();
			
			if(control.curTask.GetControl().Succeeded())
			{
				this.ChildSucceeded();
			}
			if(control.curTask.GetControl().Failed())
			{
				this.ChildFailed();
			}
		}
		else
		{		
			// ... and it's ready, update it.		
			control.curTask.DoAction();
		}	
	}