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); }
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(); }
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); }
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; } }