Ejemplo n.º 1
0
        private void MiddleViewLoadButton_Click(object sender, RoutedEventArgs e)
        {
            var         size = VisualTreeHelper.GetContentBounds(LeftViewContainer.Children[0]);
            ImageSource src  = ImageExtensions.BitmapToImageSource(
                ImageExtensions.CanvasToBitmap(LeftViewContainer, true, Convert.ToInt32(size.Width), Convert.ToInt32(size.Height))
                );
            var newtiles = src.MapImageToTiles(Game.Get.TileManager.Tiles);

            #region first moveable test

            /*var image = ImageExtensions.ConstructSensorDataBackground(Tile.GetDebugTiles(2, 8, 8, 8, 4, 4));
             * var img = new CustomImage
             * {
             *  Source = ImageExtensions.BitmapToImageSource(image)
             * };
             * img.SetValue(DraggableExtender.CanDragProperty, true);
             *
             * var secondImage = ImageExtensions.BuildImage(Tile.GetDebugTiles(6, 6, 8, 8, 4, 4));
             * var secondImg = new CustomImage
             * {
             *  Source = ImageExtensions.BitmapToImageSource(secondImage)
             * };
             * secondImg.SetValue(DraggableExtender.CanDragProperty, true);*/
            #endregion

            var imgList = ImageExtensions.GetIndividualSensorVisuals(Game.Get.TileManager.Tiles);
            Main.GetDispatcher.Invoke(PopulateCanvasControlDelegate, MiddleViewContainer, imgList, true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Forces a refresh on controls specified within the method.
        /// </summary>
        public void Render()
        {
            // only render if changes were found
            if (!Game.Get.TileManager.RenderChanged)
            {
                return;
            }

            var leftViewImage = new CustomImage(Game.Get.TileManager.GetRenderGraphic());

            Main.GetDispatcher.Invoke(PopulateCanvasControlDelegate, LeftViewContainer,
                                      new List <CustomImage> {
                leftViewImage
            }, false);

            //TODO: grab list of all tiles in middleview. Then repopulate ONLY sensor data in them.
            //var rightViewImage = new List
            var sensorTiles = new List <CustomImage>();

            foreach (UIElement child in MiddleViewContainer.Children)
            {
                if (child is CustomImage temp)
                {
                    sensorTiles.Add(temp);
                }
            }

            foreach (var sensorTile in sensorTiles)
            {
                var tileData = sensorTile.TileData;
                //TODO: Check if i get the correct tile here
                sensorTile.TileData.Sensors =
                    Game.Get.TileManager.Tiles[tileData.Position.X, tileData.Position.Y].Sensors;
            }

            var updatedSensorImages = ImageExtensions.GetIndividualSensorVisuals(Game.Get.TileManager.Tiles);

            PopulateCanvas(MiddleViewContainer, updatedSensorImages, false);

            // Force Refresh elements
            LeftViewContainer.Refresh();
            MiddleViewContainer.Refresh();
            this.Refresh();
        }