ModernUO/Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs

64 lines
1.7 KiB
C#

namespace Server.Engines.Mahjong
{
public class MahjongDealerIndicator
{
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 MahjongGame Game { get; }
public Point2D Position { get; private set; }
public MahjongPieceDirection Direction { get; private set; }
public MahjongWind Wind { get; private set; }
public MahjongDealerIndicator( MahjongGame game, Point2D position, MahjongPieceDirection direction, MahjongWind wind )
{
Game = game;
Position = position;
Direction = direction;
Wind = wind;
}
public MahjongPieceDim Dimensions => GetDimensions( Position, Direction );
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( (int) 0 ); // version
writer.Write( Position );
writer.Write( (int) Direction );
writer.Write( (int) Wind );
}
public MahjongDealerIndicator( MahjongGame game, GenericReader reader )
{
Game = game;
int version = reader.ReadInt();
Position = reader.ReadPoint2D();
Direction = (MahjongPieceDirection) reader.ReadInt();
Wind = (MahjongWind) reader.ReadInt();
}
}
}