示例#1
0
        public MapDataStore(IMapDataProvider mapDataProvider, IPathResolver pathResolver, ITrace trace)
        {
            _mapDataProvider = mapDataProvider;
            _mapDataLoader   = new MapDataLoader(pathResolver, trace);
            _pathResolver    = pathResolver;
            _trace           = trace;

            _mapDataProvider
            .ObserveOn(Scheduler.ThreadPool)
            .Subscribe(value =>
            {
                // we have map data in store.
                if (String.IsNullOrEmpty(value.Item2))
                {
                    _mapDataLoader.OnNext(value.Item1);
                }
                else
                {
                    Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey)
                    .Subscribe(progress => { }, () => _mapDataLoader.OnNext(value.Item1));
                }
            });

            _mapDataLoader.Subscribe <MapData>(u => _dataObservers.ForEach(o => o.OnNext(u)));
            _mapDataLoader.Subscribe <Tile>(t => _tileObservers.ForEach(o => o.OnNext(t)));
        }
示例#2
0
        public override IAction CreateAction(IRobot item, IMapDataProvider mapDataProvider, string actionParameters)
        {
            var parameters = actionParameters.Split(',');

            parameters.ToList().ForEach(p => p.Trim());
            if (parameters.Length != 3)
            {
                return(null);
            }

            int latitude;

            if (!int.TryParse(parameters[0], out latitude))
            {
                return(null);
            }

            int longitude;

            if (!int.TryParse(parameters[1], out longitude))
            {
                return(null);
            }

            Direction?direction = parameters[2].ToEnum <Direction>();

            if (direction == null)
            {
                return(null);
            }

            var position = new BidimensionalPoint(latitude, longitude);

            return(new PlaceAction(item, mapDataProvider, position, (Direction)direction));
        }
示例#3
0
    public MapGenerator(IMapDataProvider dataProvider)
    {
        //var _dataProvider = (MapDataProvider)dataProvider;

        _mapGenerationInput = dataProvider.GetMapGenerationData();
        generatedMap        = GenerateMap();
    }
 public DataProvider(IMapDataLibrary mapDataLibrary,
                     IMapDataProvider osmMapDataProvider, IMapDataProvider mapzenMapDataProvider)
 {
     _osmMapDataProvider    = osmMapDataProvider;
     _mapzenMapDataProvider = mapzenMapDataProvider;
     _mapDataLibrary        = mapDataLibrary;
 }
示例#5
0
 public Pathfinder(Map map, IMapDataProvider mapDataProvider, bool throughEntities = true, bool useLogNodeSearch = false)
 {
     m_map             = map;
     m_mapDataProvider = mapDataProvider;
     m_throughEntities = throughEntities;
     // the dofus client use a bad linear algorithm to find the closest node.
     // if we use an other sort method the result may be different
     m_useLogNodeSearch = useLogNodeSearch;
 }
示例#6
0
        public AggregateMapDataProvider(IFileSystemService fileSystemService, INetworkService networkService, ITrace trace)
        {
            _eleProvider = new ElevationProvider(
                new MapzenElevationDataProvider(fileSystemService, networkService, trace),
                new SrtmElevationDataProvider(fileSystemService, networkService, trace));

            _dataProvider = new DataProvider(
                new OpenStreetMapDataProvider(fileSystemService, networkService, trace),
                new MapzenMapDataProvider(fileSystemService, networkService, trace));
        }
示例#7
0
 public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary)
 {
     _mapDataProvider = mapDataProvider;
     _mapDataLibrary  = mapDataLibrary;
     _mapDataProvider
     .ObserveOn(Scheduler.ThreadPool)
     .Subscribe(value =>
     {
         // we have map data in store.
         if (String.IsNullOrEmpty(value.Item2))
         {
             _mapDataLibrary.Get(value.Item1, _dataObservers);
         }
         else
         {
             Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey)
             .Subscribe(progress => { },
                        () => _mapDataLibrary.Get(value.Item1, _dataObservers));
         }
     });
 }
示例#8
0
        public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary)
        {
            _mapDataLibrary = mapDataLibrary;

            _mapDataProvider = mapDataProvider;
            _mapDataProvider
            .ObserveOn(Scheduler.ThreadPool)
            .Subscribe(value =>
            {
                // We have map data in store.
                if (String.IsNullOrEmpty(value.Item2))
                {
                    _mapDataLibrary
                    .Get(value.Item1, _dataObservers)
                    .Subscribe(_ => _tileObservers.ForEach(t => t.OnNext(value.Item1)));
                }
                else
                {
                    // NOTE store data in the first registered store
                    AddTo(_storageKeys.First(), value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey, value.Item1.CancelationToken)
                    .Subscribe(progress => { }, () => _mapDataLibrary.Get(value.Item1, _dataObservers));
                }
            });
        }
示例#9
0
 public ReportAction(IRobot item, IMapDataProvider mapDataProvider, IReporter reporter) : base(item, mapDataProvider)
 {
     _reporter = reporter;
 }
示例#10
0
 public override IAction CreateAction(IRobot item, IMapDataProvider mapDataProvider, string actionParameters)
 {
     return(new RotateAction(item, mapDataProvider, RotateDirection.Right));
 }
示例#11
0
 public MapDataLoader(IMapDataProvider mapDataProvider, IPathResolver pathResolver)
 {
     _mapDataProvider = mapDataProvider;
     _pathResolver    = pathResolver;
 }
示例#12
0
 public DataProvider(IMapDataProvider osmMapDataProvider, IMapDataProvider mapzenMapDataProvider)
 {
     _osmMapDataProvider    = osmMapDataProvider;
     _mapzenMapDataProvider = mapzenMapDataProvider;
 }
示例#13
0
 public DebugMapGenerator(IMapDataProvider debugMapDataProvider,
                          DebugSectionBuilder debugSectionBuilder)
 {
     _mapData             = debugMapDataProvider.GetMapGenerationData();
     _debugSectionBuilder = debugSectionBuilder;
 }
示例#14
0
 public ElevationProvider(IMapDataProvider mapzenEleProvider, IMapDataProvider srtmEleProvider)
 {
     _mapzenEleProvider = mapzenEleProvider;
     _srtmEleProvider   = srtmEleProvider;
 }
示例#15
0
 public abstract IAction CreateAction(IRobot item, IMapDataProvider mapDataProvider, string actionParameters);
示例#16
0
 public ActionManager(IRobot item, IMapDataProvider mapDataProvider)
 {
     Item            = item;
     MapDataProvider = mapDataProvider;
     ActionsData     = new Dictionary <string, BaseActionCreator>();
 }
示例#17
0
 /// <summary>
 /// Constructor for <see cref="BaseAction"/>
 /// </summary>
 /// <param name="item">item to do action on</param>
 /// <param name="mapDataProvider">map to do action on</param>
 protected BaseAction(IRobot item, IMapDataProvider mapDataProvider)
 {
     Item                  = item;
     MapDataProvider       = mapDataProvider;
     item.OnPositionChange = IsPositionValid;
 }
示例#18
0
 public MoveAction(IRobot item, IMapDataProvider mapDataProvider) : base(item, mapDataProvider)
 {
 }
示例#19
0
 public RotateAction(IRobot item, IMapDataProvider mapDataProvider, RotateDirection rotateDirection) : base(item, mapDataProvider)
 {
     RotateDirection = rotateDirection;
 }
示例#20
0
 public override IAction CreateAction(IRobot item, IMapDataProvider mapDataProvider, string actionParameters)
 {
     return(new ReportAction(item, mapDataProvider, new OutputReporter()));
 }
示例#21
0
 public PlaceAction(IRobot item, IMapDataProvider mapDataProvider, IPosition position, Direction direction) : base(item, mapDataProvider)
 {
     _newPosition  = position;
     _newDirection = direction;
 }
示例#22
0
 public override IAction CreateAction(IRobot item, IMapDataProvider mapDataProvider, string actionParameters)
 {
     return(new MoveAction(item, mapDataProvider));
 }