private Rectangle GetRimSideHitbox(int file, int rank, BoardTheme.RimSide side, DrawingSpaceUsage space) { bool isHorizontal = side == BoardTheme.RimSide.Bottom || side == BoardTheme.RimSide.Top; int squareW = space.SquaresSpace.Width / 8; int squareH = space.SquaresSpace.Height / 8; int rimThickness = space.RimThickness; int innerRimTransitionThickness = space.InnerRimTransitionThickness; int x = 0; int y = 0; int w = 0; int h = 0; if (side == BoardTheme.RimSide.Left) { y = space.SquaresSpace.Y; x = space.SquaresSpace.X - rimThickness - space.InnerRimTransitionThickness; w = rimThickness; h = squareH; } else if (side == BoardTheme.RimSide.Right) { y = space.SquaresSpace.Y; x = space.SquaresSpace.X + space.SquaresSpace.Width + space.InnerRimTransitionThickness; w = rimThickness; h = squareH; } else if (side == BoardTheme.RimSide.Top) { y = space.SquaresSpace.Y - rimThickness - space.InnerRimTransitionThickness; x = space.SquaresSpace.X; w = squareW; h = rimThickness; } else if (side == BoardTheme.RimSide.Bottom) { y = space.SquaresSpace.Y + space.SquaresSpace.Height + space.InnerRimTransitionThickness; x = space.SquaresSpace.X; w = squareW; h = rimThickness; } int xIncr = isHorizontal ? squareW : 0; int yIncr = !isHorizontal ? squareH : 0; return(new Rectangle(x + file * xIncr, y + rank * yIncr, w, h)); }
private void DrawRimSquaresSide(Graphics g, DrawingSpaceUsage space, BoardTheme.RimSide side) { bool isHorizontal = side == BoardTheme.RimSide.Bottom || side == BoardTheme.RimSide.Top; bool isSquareLight = side == BoardTheme.RimSide.Bottom || side == BoardTheme.RimSide.Right; int squareW = space.SquaresSpace.Width / 8; int squareH = space.SquaresSpace.Height / 8; int rimThickness = space.RimThickness + space.InnerRimTransitionThickness; int x = 0; int y = 0; int w = 0; int h = 0; if (side == BoardTheme.RimSide.Left) { y = space.SquaresSpace.Y; x = space.SquaresSpace.X - rimThickness; w = rimThickness; h = squareH; } else if (side == BoardTheme.RimSide.Right) { y = space.SquaresSpace.Y; x = space.SquaresSpace.X + space.SquaresSpace.Width; w = rimThickness; h = squareH; } else if (side == BoardTheme.RimSide.Top) { y = space.SquaresSpace.Y - rimThickness; x = space.SquaresSpace.X; w = squareW; h = rimThickness; } else if (side == BoardTheme.RimSide.Bottom) { y = space.SquaresSpace.Y + space.SquaresSpace.Height; x = space.SquaresSpace.X; w = squareW; h = rimThickness; } int xIncr = isHorizontal ? squareW : 0; int yIncr = !isHorizontal ? squareH : 0; for (int i = 0; i < 8; ++i) { var image = isSquareLight ? BoardImages.LightRimSide[side] : BoardImages.DarkRimSide[side]; var rect = new Rectangle(x, y, w, h); g.DrawImage(image, rect); isSquareLight = !isSquareLight; x += xIncr; y += yIncr; } }