Beispiel #1
0
        private void PatternsList_SelectedIndexChanged(object sender, EventArgs e)
        {
            IsChangingPattern = true;
            ResetPatternDirections();

            var currentPattern = GetCurrentPattern();

            PatternIdBox.Text = currentPattern.Id ?? "";
            PatternPreviewOffsetXBox.Value = currentPattern.PreviewX;
            PatternPreviewOffsetYBox.Value = currentPattern.PreviewY;
            PatternPreviewBox.SelectedItem = currentPattern.PreviewSheetId;
            PatternSelectedTile            = null;

            var isAnySelected = currentPattern.Id != null;

            PatternIdBox.Enabled             = isAnySelected;
            PatternPreviewOffsetXBox.Enabled = isAnySelected;
            PatternPreviewOffsetYBox.Enabled = isAnySelected;
            PatternPreviewBox.Enabled        = isAnySelected;
            PatternDirectionsPanel.Enabled   = false;

            IsChangingPattern = false;

            SetPatternImage(currentPattern);
        }
Beispiel #2
0
        private void PatternBox_Click(object sender, EventArgs e)
        {
            var loc = ((MouseEventArgs)e).Location;

            PatternSelectedTile = GetCurrentPattern().GetTile(
                loc.X / CELL_SIZE,
                loc.Y / CELL_SIZE
                );
            IsChangingPattern = true;
            PatternDirectionsPanel.Enabled = true;
            PatternSelectedTile.Directions = GetPatternDirections();
            RefreshPatternButtons(PatternSelectedTile);
            IsChangingPattern = false;
            PatternBox.Invalidate();
        }
Beispiel #3
0
        public PatternTile GetTile(int x, int y)
        {
            if (Tiles == null)
            {
                Tiles = new List <PatternTile>();
            }
            var tile = Tiles.FirstOrDefault(t => t.X == x && t.Y == y);

            if (tile == null)
            {
                tile = new PatternTile()
                {
                    X = x,
                    Y = y
                };
                Tiles.Add(tile);
            }
            return(tile);
        }
Beispiel #4
0
        private void RefreshPatternButtons(PatternTile tile)
        {
            ResetPatternDirections();
            if (tile.Directions.HasFlag(Direction.NorthWest))
            {
                PatternNWBox.Checked = true;
            }
            if (tile.Directions.HasFlag(Direction.North))
            {
                PatternNBox.Checked = true;
            }
            if (tile.Directions.HasFlag(Direction.NorthEast))
            {
                PatternNEBox.Checked = true;
            }

            if (tile.Directions.HasFlag(Direction.West))
            {
                PatternWBox.Checked = true;
            }
            if (tile.Directions.HasFlag(Direction.East))
            {
                PatternEBox.Checked = true;
            }

            if (tile.Directions.HasFlag(Direction.SouthWest))
            {
                PatternSWBox.Checked = true;
            }
            if (tile.Directions.HasFlag(Direction.South))
            {
                PatternSBox.Checked = true;
            }
            if (tile.Directions.HasFlag(Direction.SouthEast))
            {
                PatternSEBox.Checked = true;
            }
        }