namespace GlobalClassLib; public abstract class GlobalTileConnector where TTile : GlobalMapTile where TCon : GlobalTileConnector { // 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(); }