public override void PlaceAttribute(EditorMazeTile tile) { if (tile.TileMainMaterial.GetType() != typeof(WaterMainMaterial)) { Logger.Log("TODO: Check if this works. Bridge can also be placed on any tile with a coastline"); return; } EditorMazeTileAttributePlacer tileAttributePlacer = new EditorMazeTileAttributePlacer(tile); MazeTileAttributeRemover tileAttributeRemover = new MazeTileAttributeRemover(tile); BridgePiece bridgePiece = (BridgePiece)tile.GetAttributes().FirstOrDefault(attribute => (attribute is BridgePiece)); if (bridgePiece == null) { tileAttributePlacer.PlaceBridgePiece(BridgePieceDirection.Horizontal); } else if (bridgePiece.BridgePieceDirection == BridgePieceDirection.Horizontal) { tileAttributeRemover.RemoveBridgePiece(); tileAttributePlacer.PlaceBridgePiece(BridgePieceDirection.Vertical); } else { tileAttributeRemover.RemoveBridgePiece(); } }