Beispiel #1
0
        private void ResetLayout()
        {
            OldTiles.AddRange(Tiles);

            TileLayout.SuspendLayout();

            if (m_factory.IsUsingTileView)
            {
                GameFileTileBase testTile = m_factory.CreateTile();

                if (Tiles.Count == 0 || Tiles[0].GetType() != testTile.GetType())
                {
                    RecreateLayout();
                }
                else
                {
                    UpdateLayout();
                }
            }

            TileLayout.ResumeLayout();

            TilesRecreated?.Invoke(this, EventArgs.Empty);
            OldTiles.Clear();
        }
Beispiel #2
0
        private void RecreateLayout()
        {
            TileLayout.Controls.Clear();
            Tiles.Clear();

            for (int i = 0; i < MaxItems; i++)
            {
                GameFileTileBase tile = m_factory.CreateTile();
                Tiles.Add(tile);
                TileLayout.Controls.Add(tile);
            }
        }
Beispiel #3
0
        private void UpdateLayout()
        {
            if (Tiles.Count > MaxItems)
            {
                Tiles = Tiles.Take(MaxItems).ToList();

                while (TileLayout.Controls.Count > MaxItems)
                {
                    TileLayout.Controls.RemoveAt(TileLayout.Controls.Count - 1);
                }
            }
            else
            {
                int addCount = MaxItems - Tiles.Count;
                for (int i = 0; i < addCount; i++)
                {
                    GameFileTileBase tile = m_factory.CreateTile();
                    Tiles.Add(tile);
                    TileLayout.Controls.Add(tile);
                }
            }
        }