root/src/BRAINSFramework/Behaviors/DecoratorBehavior.cs

User picture

Author: conkerjo

Revision: 30 («Previous)


File Size: 1.56 KB

(July 05, 2009 18:01 UTC) Almost 3 years ago

Behavior Refactoring

 
Show/hide line numbers
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Brains.Framework;
using Brains.Framework.Behaviors;
using Microsoft.Xna.Framework;

namespace Brains.Framework.Behaviors
{
    public class DecoratorBehavior : IBehavior,ISubBehaviorHolder
    {
        private Agent _owner;
        BehaviorList<IBehavior> _subBehaviors;

        public DecoratorBehavior()
        {
            SubBehaviors = new BehaviorList<IBehavior>();
        }

        public Agent Owner
        {
            get { return _owner; }
        }

        public BehaviorState State { get; set; }

        public void SetOwner(Agent owner)
        {
            _owner = owner;
            _subBehaviors.Owner = this;
        }

        public virtual void Update(GameTime gameTime)
        {

        }

        public virtual void OnSuccess()
        {

        }

        public virtual void OnFailure()
        {

        }
       
        public virtual void Reset()
        {
            State = BehaviorState.Idle;
        }
        
        public BehaviorList<IBehavior> SubBehaviors
        {
            get
            {
                return _subBehaviors;
            }
            set
            {
                _subBehaviors = value;
            }
        }
        
        public int CurrentSubBehavior {get;set;}

        public void OnSubBehaviorSuccess()
        {
            
        }

        public void OnSubBehaviorFailure()
        {
            
        }
    }
}