private void CalcTileDimensions() { Paifu.PaifuTileImage Img = new Paifu.PaifuTileImage(-1, Scale, Red); int ExtraTiles = 0; TileWidth = Img.Bmp.Width; TileHeight = Img.Bmp.Height; int CircleCount = 0; for (int i = 0; i < Rnd.Steps.Count; i++) { if (Rnd.Steps[i].Player != Player) continue; if ((Rnd.Steps[i].Type == Mahjong.StepType.STEP_RIICHI) && RiichiLimit) break; if (Rnd.Steps[i].Type == Mahjong.StepType.STEP_DISCARDTILE) CircleCount++; } if(HowManyDraw != -1) CircleCount = Math.Min(CircleCount, HowManyDraw); if (CircleCount > 18) { ExtraTiles = CircleCount - 18; } else { if (Rnd.Riichi[Player] != 0) ExtraTiles += 1; } int Rows = ((CircleCount / 6) + 1); if (Rows > 3) Rows = 3; Width = PaddingH * 2 + (TileWidth) * (6 + ExtraTiles); Height = 2 * PaddingV + (TileHeight * Rows); }
private void CalcTileDimensions() { Paifu.PaifuTileImage Img = new Paifu.PaifuTileImage(-1, Scale, Red); TileWidth = Img.Bmp.Width; TileHeight = Img.Bmp.Height; Width = PaddingH * 2 + (TileWidth) * (28); // crop after drawing Height = 2 * PaddingV + TileHeight; }
private int DrawTile(int Tile, int X, int Y, RotateFlipType Rotate) { Paifu.PaifuTileImage TileImage = new Paifu.PaifuTileImage(Tile, Scale, Red); Bitmap TileBitmap = TileImage.Bmp; switch (Rotate) { case RotateFlipType.Rotate90FlipNone: TileBitmap.RotateFlip(Rotate); Y += (TileHeight - TileWidth); break; case RotateFlipType.Rotate270FlipNone: TileBitmap.RotateFlip(Rotate); Y += (TileHeight - TileWidth); break; } G.DrawImage(TileBitmap, new Point(X, Y)); return TileBitmap.Width; }
private void DrawTile(int Tile, bool Riichi, bool Nakied, bool Tsumogiri) { Paifu.PaifuTileImage TileImage = new Paifu.PaifuTileImage(Tile, Scale, Red); if (Nakied && HighlightNaki) TileImage.Colorize(NakiColor); if (Tsumogiri && HighlightTsumogiri) TileImage.Colorize(GiriColor); Bitmap TileBitmap = TileImage.Bmp; if (Riichi) TileBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); int tX = PaddingH + X; int tY = PaddingV + Y; if (Riichi) { tY += TileBitmap.Width - TileBitmap.Height; } Counter++; X += TileBitmap.Width; if ((Counter == 6) || (Counter == 12)) { Y += TileBitmap.Height; X = 0; } G.DrawImage(TileBitmap, new Point(tX, tY)); }