Пример #1
0
        private void TileClicked(object sender, RoutedEventArgs e)
        {
            if (Mouse.LeftButton == MouseButtonState.Pressed)
            {
                if (ActiveListView != null && ActiveListView.SelectedItem != null)
                {
                    BuilderItemStruct item = (BuilderItemStruct)ActiveListView.SelectedItem;
                    TileStruct        tile = (TileStruct)((Label)sender).DataContext;
                    tile.Update(item.type);

                    if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
                    {
                        FillArea(levelEditor.grid.FindTilePosition(tile), item.type);
                    }

                    if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
                    {
                        FillAreaSquared(levelEditor.grid.FindTilePosition(tile), item.type);
                    }
                }
                else
                {
                    MessageBox.Show("Kies een item");
                }
            }
            else if (Mouse.RightButton == MouseButtonState.Pressed)
            {
                TileStruct tile = (TileStruct)((Label)sender).DataContext;
                RemoveObjectFromTile(tile);
            }
        }
Пример #2
0
        private void UpdateGridTiles()
        {
            game.Children.Clear();
            spRows.Orientation = Orientation.Horizontal;

            for (int x = 0; x < levelEditor.grid.width; x++)
            {
                StackPanel spCols = new StackPanel();
                spCols.Orientation = Orientation.Vertical;

                for (int y = 0; y < levelEditor.grid.height; y++)
                {
                    Label      btnTile = new Label();
                    TileStruct tile    = levelEditor.grid.GetTile(x, y);

                    btnTile.Style       = Application.Current.FindResource("Tile") as Style;
                    btnTile.Height      = 64;
                    btnTile.Width       = 64;
                    btnTile.DataContext = tile;
                    btnTile.MouseDown  += TileClicked;
                    btnTile.MouseEnter += TileClicked;

                    spCols.Children.Add(btnTile);
                }
                spRows.Children.Add(spCols);
                StackPanel spCols1 = (StackPanel)spRows.Children[0];
            }
            game.Children.Add(spRows);
        }
Пример #3
0
        private void UpdateGridTiles()
        {
            gameGrid.Children.Clear();
            spRows.Orientation = Orientation.Horizontal;

            for (int x = 0; x < Game.grid.width; x++)
            {
                StackPanel spCols = new StackPanel();
                spCols.Orientation = Orientation.Vertical;

                for (int y = 0; y < Game.grid.height; y++)
                {
                    Label      btnTile = new Label();
                    TileStruct tile    = Game.grid.GetTile(x, y);

                    btnTile.Style = Application.Current.FindResource("Tile") as Style;

                    btnTile.DataContext = tile;

                    spCols.Children.Add(btnTile);
                }
                spRows.Children.Add(spCols);
            }
            gameGrid.Children.Add(spRows);
        }
Пример #4
0
        public static GridStruct Copy(this GridStruct grid)
        {
            GridStruct newGrid = new GridStruct(grid.width, grid.height);

            for (int x = 0; x < grid.width; x++)
            {
                for (int y = 0; y < grid.height; y++)
                {
                    TileStruct tile = grid.GetTile(x, y);
                    newGrid.SetTile(x, y, tile.floor.GetType(), tile.environmentObject.GetType(), tile.gameObject.GetType());
                }
            }
            return(newGrid);
        }
Пример #5
0
 public static void Update(this TileStruct tile, Type item)
 {
     if (item.BaseType == typeof(BaseEnvironment))
     {
         tile.UpdateEnvironment(item);
     }
     else if (item.BaseType == typeof(BaseFloor))
     {
         tile.UpdateFloor(item);
     }
     else
     {
         tile.UpdateObject(item);
     }
 }
Пример #6
0
 private void RemoveObjectFromTile(TileStruct tile)
 {
     if (tile.gameObject.GetType() != Blocks.EMPTY)
     {
         tile.Update(Blocks.EMPTY);
     }
     else if (tile.environmentObject.GetType() != Blocks.EMPTY)
     {
         tile.UpdateEnvironment(Blocks.EMPTY);
     }
     else if (tile.gameObject.GetType() != Floors.EMPTY_FLOOR)
     {
         tile.Update(Floors.EMPTY_FLOOR);
     }
 }
Пример #7
0
 public static Pos FindTilePosition(this GridStruct grid, TileStruct tile)
 {
     for (int x = 0; x < grid.grid.GetLength(0); x++)
     {
         for (int y = 0; y < grid.grid.GetLength(1); y++)
         {
             if (grid.GetTile(x, y).Equals(tile))
             {
                 Pos pos = new Pos(x, y);
                 return(pos);
             }
         }
     }
     return(null);
 }
Пример #8
0
        private void TileClicked(object sender, RoutedEventArgs e)
        {
            if (Mouse.LeftButton == MouseButtonState.Pressed)
            {
                if (lvAllItems.SelectedItem != null)
                {
                    BuilderItemStruct item = (BuilderItemStruct)lvAllItems.SelectedItem;
                    TileStruct        tile = (TileStruct)((Label)sender).DataContext;

                    if (item.type.BaseType == typeof(BaseFloor))
                    {
                        tile.UpdateFloor(item.type);
                    }
                    else
                    {
                        tile.UpdateObject(item.type);
                    }
                }
                else
                {
                    MessageBox.Show("Kies een item");
                }
            }
            else if (Mouse.RightButton == MouseButtonState.Pressed)
            {
                TileStruct tile = (TileStruct)((Label)sender).DataContext;
                if (tile.gameObject.GetType() != Blocks.EMPTY)
                {
                    tile.UpdateObject(Blocks.EMPTY);
                }
                else if (tile.gameObject.GetType() != Floors.EMPTY_FLOOR)
                {
                    tile.UpdateFloor(Floors.EMPTY_FLOOR);
                }
            }
        }
Пример #9
0
 public static bool Contains(this TileStruct tile, Type item)
 {
     return(item.Equals(tile.floor) || item.Equals(tile.gameObject) || item.Equals(tile.environmentObject));
 }
Пример #10
0
 public static void UpdateEnvironment(this TileStruct tile, Type EnvironmentObj)
 {
     tile.environmentObject = BaseObjectFacotry.Create(EnvironmentObj);
 }
Пример #11
0
 private static void UpdateObject(this TileStruct tile, Type obj)
 {
     tile.gameObject = BaseObjectFacotry.Create(obj);
 }
Пример #12
0
 private static void UpdateFloor(this TileStruct tile, Type floor)
 {
     tile.floor = BaseObjectFacotry.Create(floor);
 }
Пример #13
0
 public static void Update(this TileStruct tile, Type floor, Type obj)
 {
     tile.UpdateFloor(floor);
     tile.UpdateObject(obj);
 }