OneNightDuel/GlobalClassLib/GlobalTileConnector.cs

28 lines
940 B
C#
Raw Normal View History

namespace GlobalClassLib;
public abstract class GlobalTileConnector<TTile, TCon> where TTile : GlobalMapTile<TCon,TTile> where TCon : GlobalTileConnector<TTile, TCon> {
// private readonly TTile _tile1;
// private readonly TTile _tile2;
public GlobalTileConnector(TTile tile1, TTile tile2, ConnectorType type) {
Tiles.tile1 = tile1;
Tiles.tile2 = tile2;
Type = type;
}
public GlobalTileConnector(TTile tile2, ConnectorType type) {
Tiles.tile2 = tile2;
Type = type;
}
public (TTile tile1, TTile tile2) Tiles;
public (int, int) Id => (Tiles.tile1.Id, Tiles.tile2.Id);
public ConnectorType Type { get; set; }
public TTile OtherTile(TTile tile) => Tiles.Item1 == tile ? Tiles.Item2 : Tiles.Item1;
public override string ToString() => $"Con ({Tiles.Item1.PositionAsString} -> {Tiles.Item2.PositionAsString})";
public abstract TCon Clone();
}