public void GenerateGirdViewModels() { var gameCore = GameManager.Instance.GameCore; var gridItems = gameCore.GetAllGridItems(); List<GridViewModel> gridViewModels = new List<GridViewModel>(); foreach (var gridItem in gridItems) { var gridViewModel = new GridViewModel() { Value = gridItem.Value, Level = gridItem.Level, Row = gridItem.Owner.Row, Col = gridItem.Owner.Col, }; GridMoveInfo moveInfo; if (gameCore.TryGetMoveInfo(gridItem, out moveInfo)) { gridViewModel.GridStates |= GridStates.Moved; gridViewModel.MoveInfo = moveInfo; } if (gameCore.IsDeletedGridItem(gridItem)) { gridViewModel.GridStates |= GridStates.Deleted; } if (gameCore.IsNewCreatedItem(gridItem)) { gridViewModel.GridStates |= GridStates.NewCreated; } gridViewModels.Add(gridViewModel); } GridViewModels = gridViewModels; }
private void ProcessMoveGridItem(UIElement itemControl, GridViewModel gridViewModel, double itemWidth, double itemHeight) { GridMoveInfo moveInfo = gridViewModel.MoveInfo; if (moveInfo.FromCol != moveInfo.ToCol) { itemControl.BeginAnimation( Canvas.LeftProperty, CreateMoveAnimation(moveInfo.FromCol * itemWidth, moveInfo.ToCol * itemWidth)); } else { Canvas.SetLeft(itemControl, moveInfo.ToCol * itemWidth); } if (moveInfo.FromRow != moveInfo.ToRow) { itemControl.BeginAnimation( Canvas.TopProperty, CreateMoveAnimation(moveInfo.FromRow * itemHeight, moveInfo.ToRow * itemHeight)); } else { Canvas.SetTop(itemControl, moveInfo.ToRow * itemHeight); } }
private UIElement CreateGridItem(double width, double height, GridViewModel gridViewModel) { Button button = new Button() { Width = width, Height = height, Style = _gridItemStyle, Content = gridViewModel, Focusable = false }; return button; }
public void EnlargeGrid(GridViewModel gridViewModel) { GameManager.Instance.GameCore.EnlargeGrid(gridViewModel.Row, gridViewModel.Col); GenerateGirdViewModels(); }