65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using System;
|
|
|
|
namespace Server.Engines.Mahjong
|
|
{
|
|
public struct MahjongPieceDim
|
|
{
|
|
private readonly Point2D m_Position;
|
|
private readonly int m_Width;
|
|
private readonly int m_Height;
|
|
public MahjongPieceDim(Point2D position, int width, int height)
|
|
{
|
|
this.m_Position = position;
|
|
this.m_Width = width;
|
|
this.m_Height = height;
|
|
}
|
|
|
|
public Point2D Position
|
|
{
|
|
get
|
|
{
|
|
return this.m_Position;
|
|
}
|
|
}
|
|
public int Width
|
|
{
|
|
get
|
|
{
|
|
return this.m_Width;
|
|
}
|
|
}
|
|
public int Height
|
|
{
|
|
get
|
|
{
|
|
return this.m_Height;
|
|
}
|
|
}
|
|
public bool IsValid()
|
|
{
|
|
return this.m_Position.X >= 0 && this.m_Position.Y >= 0 && this.m_Position.X + this.m_Width <= 670 && this.m_Position.Y + this.m_Height <= 670;
|
|
}
|
|
|
|
public bool IsOverlapping(MahjongPieceDim dim)
|
|
{
|
|
return this.m_Position.X < dim.m_Position.X + dim.m_Width && this.m_Position.Y < dim.m_Position.Y + dim.m_Height && this.m_Position.X + this.m_Width > dim.m_Position.X && this.m_Position.Y + this.m_Height > dim.m_Position.Y;
|
|
}
|
|
|
|
public int GetHandArea()
|
|
{
|
|
if (this.m_Position.X + this.m_Width > 150 && this.m_Position.X < 520 && this.m_Position.Y < 35)
|
|
return 0;
|
|
|
|
if (this.m_Position.X + this.m_Width > 635 && this.m_Position.Y + this.m_Height > 150 && this.m_Position.Y < 520)
|
|
return 1;
|
|
|
|
if (this.m_Position.X + this.m_Width > 150 && this.m_Position.X < 520 && this.m_Position.Y + this.m_Height > 635)
|
|
return 2;
|
|
|
|
if (this.m_Position.X < 35 && this.m_Position.Y + this.m_Height > 150 && this.m_Position.Y < 520)
|
|
return 3;
|
|
|
|
return -1;
|
|
}
|
|
}
|
|
} |