/// <summary> /// Add a new Steering Behavior /// </summary> /// <param name="steeringBehavior"></param> /// <param name="unicity">Set to true if we want to have one steering behavior type only</param> public void Add(SteeringBehavior steeringBehavior, bool unicity) { if(unicity && Contains(steeringBehavior.GetType())) throw new CoreException(steeringBehavior.GetType().Name + " steering behavior type is already present"); steeringBehavior.Priority = _steeringBehaviors.Count; steeringBehavior.AutonomousAgent = Agent as AutonomousAgent; _steeringBehaviors.Add(steeringBehavior); _steeringBehaviors.Sort(SortBySteeringBehaviorPriority); }
/// <summary> /// Add a new Steering Behavior /// </summary> /// <param name="steeringBehavior"></param> /// <param name="unicity">Set to true if we want to have one steering behavior type only</param> public void Add(SteeringBehavior steeringBehavior, bool unicity) { if (unicity && Contains(steeringBehavior.GetType())) { throw new CoreException(steeringBehavior.GetType().Name + " steering behavior type is already present"); } steeringBehavior.Priority = _steeringBehaviors.Count; steeringBehavior.AutonomousAgent = Agent as AutonomousAgent; _steeringBehaviors.Add(steeringBehavior); _steeringBehaviors.Sort(SortBySteeringBehaviorPriority); }
/// <summary> /// Remove the provided Steering Behavior instance /// </summary> /// <param name="steeringBehavior"></param> public void Remove(SteeringBehavior steeringBehavior) { _steeringBehaviors.Remove(steeringBehavior); }
/// <summary> /// Add a new Steering Behavior /// </summary> /// <param name="steeringBehavior"></param> public void Add(SteeringBehavior steeringBehavior) { Add(steeringBehavior, true); }
/// <summary> /// Returns if a given Steering Behavior instance is present /// </summary> /// <param name="steeringBehavior"></param> /// <returns></returns> public bool Contains(SteeringBehavior steeringBehavior) { return _steeringBehaviors.Contains(steeringBehavior); }
/// <summary> /// Sort all Steering Behaviors by their Priority property /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static int SortBySteeringBehaviorPriority(SteeringBehavior a, SteeringBehavior b) { return Comparer<float>.Default.Compare(a.Priority, b.Priority); }
/// <summary> /// Returns if a given Steering Behavior instance is present /// </summary> /// <param name="steeringBehavior"></param> /// <returns></returns> public bool Contains(SteeringBehavior steeringBehavior) { return(_steeringBehaviors.Contains(steeringBehavior)); }
/// <summary> /// Sort all Steering Behaviors by their Priority property /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static int SortBySteeringBehaviorPriority(SteeringBehavior a, SteeringBehavior b) { return(Comparer <float> .Default.Compare(a.Priority, b.Priority)); }