public WorldMapController(
            PanningPanel panningPanel,
            TextBlock textBlockCurrentPosition,
            TextBlock textBlockPointedPosition,
            bool isEditorMap)
        {
            this.cancellationTokenSource = new CancellationTokenSource();
            this.cancellationToken       = CancellationTokenSource
                                           .CreateLinkedTokenSource(this.cancellationTokenSource.Token, Api.CancellationToken)
                                           .Token;

            this.panningPanel             = panningPanel;
            this.textBlockCurrentPosition = textBlockCurrentPosition;
            this.textBlockPointedPosition = textBlockPointedPosition;
            this.IsEditorMap             = isEditorMap;
            this.canvasMap               = new Canvas();
            this.canvasMapChildren       = this.canvasMap.Children;
            this.canvasMapSectorControls = new Dictionary <Vector2Ushort, SectorControl>();

            this.panningPanel.Items.Clear();
            this.panningPanel.Items.Add(this.canvasMap);

            // create current character display
            this.CreateCurrentCharacterControl();

            // create current camera view bounds display
            var controlCurrentCameraView = new Rectangle
            {
                Fill            = new SolidColorBrush(Color.FromArgb(0x33, 0xFF, 0xFF, 0xFF)),
                Stroke          = new SolidColorBrush(Color.FromArgb(0xCC, 0xFF, 0xFF, 0xFF)),
                StrokeThickness = 1
            };

            Panel.SetZIndex(controlCurrentCameraView, 10);
            if (this.IsEditorMap)
            {
                this.canvasMapChildren.Add(controlCurrentCameraView);
            }

            this.sceneObject.AddComponent <ClientComponentWorldMapCurrentCameraViewUpdated>()
            .Setup(this, controlCurrentCameraView, WorldTileTextureSize);

            // setup events
            WorldService.WorldChunkAddedOrUpdated      += this.WorldChunkAddedOrUpdatedHandler;
            WorldService.WorldBoundsChanged            += this.WorldBoundsChangedHandler;
            panningPanel.MouseLeftButtonClick          += this.PanningPanelMouseLeftButtonClickHandler;
            panningPanel.PreviewMouseLeftButtonDown    += this.PanningPanelPreviewMouseLeftButtonDownHandler;
            ClientComponentUpdateHelper.UpdateCallback += this.Update;

            // init map
            this.InitMap();
        }
 public WorldMapControllerMiniMap(
     PanningPanel panningPanel,
     ViewModelControlWorldMap viewModelControlWorldMap,
     bool isPlayerMarkDisplayed,
     bool isListeningToInput,
     int paddingChunks,
     Vector2Ushort mapAreaSize)
     : base(panningPanel,
            viewModelControlWorldMap,
            isPlayerMarkDisplayed,
            isListeningToInput,
            paddingChunks)
 {
     this.mapAreaSize = mapAreaSize;
 }
Exemple #3
0
 public WorldMapControllerMiniMap(
     PanningPanel panningPanel,
     ViewModelControlWorldMap viewModelControlWorldMap,
     bool isPlayerMarkDisplayed,
     bool isCurrentCameraViewDisplayed,
     bool isListeningToInput,
     int paddingChunks,
     Vector2Ushort mapAreaSize,
     ControlTemplate customControlTemplatePlayerMark)
     : base(panningPanel,
            viewModelControlWorldMap,
            isPlayerMarkDisplayed,
            isCurrentCameraViewDisplayed,
            isListeningToInput,
            paddingChunks,
            customControlTemplatePlayerMark)
 {
     this.mapAreaSize = mapAreaSize;
 }
Exemple #4
0
        public WorldMapController(
            PanningPanel panningPanel,
            ViewModelControlWorldMap viewModelControlWorldMap,
            bool isPlayerMarkDisplayed,
            bool isCurrentCameraViewDisplayed,
            bool isListeningToInput,
            int paddingChunks,
            ControlTemplate customControlTemplatePlayerMark = null)
        {
            this.cancellationTokenSource = new CancellationTokenSource();
            this.cancellationToken       = CancellationTokenSource
                                           .CreateLinkedTokenSource(this.cancellationTokenSource.Token, Api.CancellationToken)
                                           .Token;

            this.panningPanel                    = panningPanel;
            this.viewModelControlWorldMap        = viewModelControlWorldMap;
            this.isPlayerMarkDisplayed           = isPlayerMarkDisplayed;
            this.isCurrentCameraViewDisplayed    = isCurrentCameraViewDisplayed;
            this.isListeningToInput              = isListeningToInput;
            this.paddingChunks                   = paddingChunks;
            this.customControlTemplatePlayerMark = customControlTemplatePlayerMark;

            this.canvasMap               = new Canvas();
            this.canvasMapChildren       = this.canvasMap.Children;
            this.canvasMapSectorControls = new Dictionary <Vector2Ushort, SectorControl>();

            this.panningPanel.Items.Clear();
            this.panningPanel.Items.Add(this.canvasMap);

            // create current character display
            this.CreateCurrentCharacterControl();

            // create current camera view bounds display
            var controlCurrentCameraView = new Rectangle
            {
                Fill = new SolidColorBrush(Color.FromArgb(0x55, 0xFF, 0xFF, 0xFF)),
                //Stroke = new SolidColorBrush(Color.FromArgb(0xCC, 0xFF, 0xFF, 0xFF)),
                //StrokeThickness = 1.5,
                UseLayoutRounding = false
            };

            Panel.SetZIndex(controlCurrentCameraView, 10);
            if (this.isCurrentCameraViewDisplayed)
            {
                this.canvasMapChildren.Add(controlCurrentCameraView);
            }

            this.sceneObject.AddComponent <ClientComponentWorldMapCurrentCameraViewUpdater>()
            .Setup(this,
                   controlCurrentCameraView,
                   WorldMapTexturesProvider.WorldTileTextureSize);

            panningPanel.CallbackGetSliderZoomCanvasPosition =
                () => this.isAutocenterOnPlayer
                          ? this.componentCurrentCharacterUpdater.CanvasPosition
                          : (Vector2D?)null;

            // setup events
            World.WorldChunkAddedOrUpdated    += this.WorldChunkAddedOrUpdatedHandler;
            World.WorldBoundsChanged          += this.WorldBoundsChangedHandler;
            panningPanel.MouseHold            += this.PanningPanelMouseHoldHandler;
            panningPanel.MouseLeftButtonClick += this.PanningPanelMouseLeftButtonClickHandler;
            panningPanel.ZoomChanged          += this.PanningPanelZoomChangedHandler;

            ClientUpdateHelper.UpdateCallback += this.Update;

            // init map
            this.InitMap();
        }