ModernUO/Projects/Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs
2019-08-02 18:16:11 -07:00

64 lines
No EOL
1.7 KiB
C#

namespace Server.Engines.Mahjong
{
public class MahjongDealerIndicator
{
public MahjongDealerIndicator(MahjongGame game, Point2D position, MahjongPieceDirection direction, MahjongWind wind)
{
Game = game;
Position = position;
Direction = direction;
Wind = wind;
}
public MahjongDealerIndicator(MahjongGame game, GenericReader reader)
{
Game = game;
int version = reader.ReadInt();
Position = reader.ReadPoint2D();
Direction = (MahjongPieceDirection)reader.ReadInt();
Wind = (MahjongWind)reader.ReadInt();
}
public MahjongGame Game{ get; }
public Point2D Position{ get; private set; }
public MahjongPieceDirection Direction{ get; private set; }
public MahjongWind Wind{ get; private set; }
public MahjongPieceDim Dimensions => GetDimensions(Position, Direction);
public static MahjongPieceDim GetDimensions(Point2D position, MahjongPieceDirection direction)
{
if (direction == MahjongPieceDirection.Up || direction == MahjongPieceDirection.Down)
return new MahjongPieceDim(position, 40, 20);
return new MahjongPieceDim(position, 20, 40);
}
public void Move(Point2D position, MahjongPieceDirection direction, MahjongWind wind)
{
MahjongPieceDim dim = GetDimensions(position, direction);
if (!dim.IsValid())
return;
Position = position;
Direction = direction;
Wind = wind;
Game.Players.SendGeneralPacket(true, true);
}
public void Save(GenericWriter writer)
{
writer.Write(0); // version
writer.Write(Position);
writer.Write((int)Direction);
writer.Write((int)Wind);
}
}
}