private void SetWaypointStrategy(WaypointVisitStrategyType visitStrategyType, bool logChanges) { if ((_visitStrategy == null) || (visitStrategyType != _visitStrategy.VisitStrategyType)) { _visitStrategy = GetVisitStrategyFromType(visitStrategyType); if (_visitStrategy != null && logChanges) { QBCLog.DeveloperInfo("WaypointVisitStrategy set to {0}", _visitStrategy.VisitStrategyType); } // Strategy change requires current waypoint re-evaluation... ResetWaypoints(); } }
private IVisitStrategy GetVisitStrategyFromType(WaypointVisitStrategyType visitStrategyType) { IVisitStrategy visitStrategy = null; if (visitStrategyType == WaypointVisitStrategyType.InOrder) { visitStrategy = new VisitStrategy_InOrder(); } else if (visitStrategyType == WaypointVisitStrategyType.PickOneAtRandom) { visitStrategy = new VisitStrategy_PickOneAtRandom(); } else if (visitStrategyType == WaypointVisitStrategyType.Random) { visitStrategy = new VisitStrategy_Random(); } else { QBCLog.MaintenanceError("Unhandled WaypointVisitStrategy({0})", visitStrategyType); } return(visitStrategy); }
protected IVisitStrategy(WaypointVisitStrategyType visitStrategyType) { VisitStrategyType = visitStrategyType; }