Faits :
A.
Par jugement du 11 octobre 2019, le Tribunal correctionnel de l'arrondissement de Lausanne a reconnu A._ coupable de menaces, d'actes préparatoires délictueux, d'infraction à la loi fédérale sur les armes ainsi que d'infraction à la loi fédérale sur les étrangers et l'intégration. Partant, il l'a condamné à une peine privative de liberté ferme de 3 ans; il a par ailleurs ordonné l'expulsion de A._ du territoire suisse pour une durée de 12 ans et l'a condamné à payer à B._ un montant de 16'000 fr. à titre d'indemnité pour tort moral; il a en outre ordonné la confiscation et la destruction d'un téléphone portable et d'une carte SIM.
B.
Statuant le 12 février 2020, la Cour d'appel pénale du Tribunal cantonal vaudois a admis très partiellement l'appel formé par A._ contre ce jugement, qu'elle a réformé en ce sens qu'elle a ordonné la levée du séquestre portant sur un téléphone portable et une carte SIM et la restitution de ces objets à A._; elle a confirmé pour le surplus le jugement du tribunal correctionnel.
Les faits à l'origine de cette condamnation et qui demeurent litigieux sont en substance les suivants.
A C._ notamment, entre le mois de juillet 2018 et son interpellation le 28 novembre 2018, A._ a pris des dispositions concrètes en vue du tuer B._, le second époux de D._, qu'il avait épousée religieusement en Albanie et dont il avait eu un fils, E._ né en 2010, avant que le couple ne se sépare en 2014.
Le 21 juillet 2018, A._ a effectué des repérages concernant B._ en demandant à un tiers de le véhiculer jusqu'au domicile de l'intéressé, où il a filmé au moyen de son téléphone portable la voiture de B._, parquée devant chez lui.
A une date indéterminée, probablement au début du mois de novembre 2018, A._ s'est procuré illégalement un pistolet, qu'il a placé dans un carton dans une armoire du logement qu'il partageait alors avec un tiers. Le 24 novembre 2018, il a montré cette arme à son fils en lui disant de ne pas en parler.
Dans la soirée du 24 novembre 2018, dans un restaurant qui était le lieu de travail de B._ et de D._, à l'occasion d'une discussion tendue entre les ex-conjoints, A._ a menacé B._, qui était intervenu dans la dispute, en lui montrant un chargeur de pistolet munitionné et en lui disant " cinq balles pour toi, ça suffira ". Il a ensuite attendu deux heures à l'extérieur de l'établissement la fin du service de B._, qui a pu quitter les lieux avec plusieurs amis venus le chercher en voiture.
Deux jours plus tard, A._ s'est à nouveau présenté sur le lieu de travail de B._ et a demandé à le voir. Ce dernier, qui était absent, a eu connaissance de cette démarche le lendemain par un collègue. Le 27 novembre 2018, le même collègue a appelé B._, qui avait terminé son service et quitté l'établissement, pour l'informer que A._ s'y trouvait. B._ a demandé à lui parler au téléphone pour lui dire de ne plus se présenter sur son lieu de travail. A._ l'a alors à nouveau menacé, en lui disant en substance qu'il viendrait sur son lieu de travail jusqu'à ce qu'il ait pu le voir, ajoutant qu'il allait lui " expliquer comment ça se passe dans les Balkans ".
Vu l'insistance de A._ à vouloir le rencontrer, le 28 novembre 2018, B._ a convenu avec lui d'un rendez-vous le jour même à 16 heures. Il a entre-temps déposé plainte auprès de la police, laquelle a interpelé A._ qui s'était rendu au lieu convenu muni d'un pistolet chargé placé dans la poche gauche de sa veste.
Depuis les faits, B._, qui a craint pour sa vie, souffre d'un état de stress post-traumatique diagnostiqué par une psychiatre. Il continue à redouter d'être tué par un proche de A._ et craint que ce dernier s'en prenne à lui après sa libération. Il a modifié son apparence physique en se laissant pousser la barbe et adopte des stratégies d'évitement lorsqu'il sort. Il souffre d'importants maux de ventre, a des difficultés à dormir, fait des cauchemars et est en phase de reconversion professionnelle, ne parvenant plus à faire face à la clientèle. Il est même allé jusqu'à envisager de quitter la Suisse.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement de la cour d'appel pénale. Il conclut, avec suite de frais et dépens, principalement, à la réforme de l'arrêt attaqué en ce sens qu'il est " libéré des chefs d'accusation de menace et d'actes préparatoires délictueux, qu'il est condamné à une peine privative de liberté - sous déduction de l'ensemble des jours de détention effectués - ainsi qu'à 200 fr. d'amende pour infraction à la loi fédérale sur les armes et à la loi fédérale sur les armes et l'intégration ". Il conclut par ailleurs au rejet des prétentions civiles de B._. A titre subsidiaire il conclut au renvoi de la cause à la cour cantonale. Il sollicite par ailleurs l'assistance judiciaire.
Considérant en droit :
1.
Le recourant reproche aux autorités cantonales d'avoir retenu à son encontre, sans preuves suffisantes, des faits qu'il conteste. Il évoque par ailleurs le principe " in dubio pro reo ".
1.1. Le Tribunal fédéral est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (ATF 145 IV 154 consid. 1.1 p. 155 s.). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (ATF 143 IV 500 consid. 1.1 p. 503). Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence à la présomption d'innocence ou à son corollaire, le principe " in dubio pro reo ", ceux-ci n'ont pas de portée plus large que l'interdiction de l'arbitraire (voir ATF 145 IV 154 consid. 1.1 p. 155 s.).
Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux, dont l'interdiction de l'arbitraire, que s'ils ont été invoqués et motivés de manière précise (art. 106 al. 2 LTF); il n'entre ainsi pas en matière sur les critiques de nature appellatoire (ATF 146 IV 88 consid. 1.3.1 p. 92 et les arrêts cités).
1.2. Le recourant se borne à confirmer l'ensemble de ses déclarations, cherchant ainsi une nouvelle fois à opposer sa propre version, très invraisemblable, des faits à celle retenue par la cour cantonale, sans toutefois l'étayer par une argumentation satisfaisant aux exigences de l'art. 106 al. 2 LTF. Purement appellatoire, son grief est irrecevable.
2.
Le recourant conteste que son comportement soit constitutif d'actes préparatoires délictueux au sens de l'art. 260bis CP.
2.1. Aux termes de cette disposition, est puni d'une peine privative de liberté de cinq ans au plus ou d'une peine pécuniaire quiconque prend, conformément à un plan, des dispositions concrètes d'ordre technique ou organisationnel, dont la nature et l'ampleur indiquent qu'il s'apprête à passer à l'exécution notamment d'un meurtre ou d'un assassinat (art. 260bis al. 1 let. a et b CP).
Sont visés par cette disposition les actes antérieurs à la tentative. Une simple intention ou de vagues projets ne sont pas suffisants. Il faut que l'auteur ait pris des dispositions concrètes et qu'il l'ait fait conformément à un plan. Il faut donc que l'auteur ait accompli plusieurs actes et que ceux-ci apparaissent comme des préparatifs s'inscrivant dans une entreprise réfléchie (ATF 111 IV 155 consid. 2b p. 158; arrêt 6B_1159/2018 du 18 septembre 2019 consid. 3.3.2, non publié in ATF 145 IV 424). Il n'est toutefois pas nécessaire que le plan ait été précis au point de se rapporter à une infraction déjà définie quant au lieu, au moment et à la manière d'agir (ATF 111 IV 155 consid. 2b p. 158). L'art. 260bis CP mentionne des dispositions d'ordre technique ou d'organisation. En font notamment partie les actes par lesquels l'auteur se procure les moyens pratiques d'exécuter l'infraction, par exemple le fait de se procurer une arme, et ceux par lesquels il prépare l'opération et met au point son déroulement, par exemple, le fait de repérer les lieux. Il faut encore que la nature et l'ampleur des dispositions prises indiquent que l'auteur s'apprêtait à passer à l'exécution de l'infraction, c'est à-dire que, par leur nature et leur ampleur, les actes accomplis soient tels que l'on puisse raisonnablement admettre que l'auteur persévérera dans la volonté délictueuse qu'ils expriment jusqu'à l'exécution de l'infraction (ATF 111 IV 155 consid. 2b p. 158; arrêt 6B_1159/2018 op. cit.).
2.2. Il ressort des constatations de la cour cantonale que le recourant avait pris des dispositions pour surveiller l'intimé à son domicile, qu'il s'était rendu sur le lieu de travail de celui-ci, le 24 novembre 2018, et lui avait montré un chargeur contenant des balles en lui disant que cinq suffiraient pour lui. Il est retourné au même endroit le lendemain et le surlendemain attendre l'intimé en faisant les cent pas, avant de lui dire, lors d'une conversation téléphonique au cours de laquelle il avait insisté pour le rencontrer, qu'il allait lui expliquer comment cela se passait dans les Balkans. Enfin, le 28 novembre 2014, il s'est rendu au rendez-vous que lui avait fixé l'intimé en raison de son insistance à vouloir le rencontrer, muni d'un pistolet, qu'il s'était procuré illicitement probablement quelques jours auparavant, et qui était chargé, dans la poche intérieure de son veston.
Il appert ainsi clairement que le recourant a pris des dispositions concrètes en vue d'attenter à la vie de l'intimé conformément à un plan consistant à organiser une rencontre avec celui-ci au cours de laquelle il pourrait l'éliminer au moyen de l'arme et de la munition qu'il avait acquises. La nature des dispositions prises par le recourant et l'insistance mise à obtenir une entrevue avec l'intimé montre qu'il était prêt à passer à l'exécution de l'infraction projetée et ce n'est probablement qu'au fait que ce dernier avait averti la police qu'il doit de ne pas avoir à répondre d'une infraction plus grave encore.
Par ailleurs, l'argumentation du recourant, essentiellement dirigée contre les constatations de fait dont il ne démontre pas le caractère arbitraire, n'est pas de nature à remettre en question cette appréciation. C'est donc sans violer le droit fédéral que la cour cantonale l'a reconnu coupable d'actes préparatoires délictueux au sens de l'art. 260bis CP.
3.
Le recourant se plaint en outre d'une violation de l'art. 180 CP. Il conteste avoir tenu les propos qu'on lui prête et avoir eu l'intention d'effrayer l'intimé.
Dans la mesure où il conteste avoir tenu les propos qui lui sont imputés son grief est irrecevable conformément à l'art. 105 al. 1 LTF. Il en va de même dans la mesure où il cherche à remettre en question son intention. En effet, déterminer ce que l'auteur savait, voulait ou l'éventualité à laquelle il consentait et donc savoir s'il a agi avec conscience et volonté, au sens de l'art. 12 al. 2 CP, relève de l'établissement des faits (ATF 141 IV 336 consid. 2.4.1 p. 342; 137 IV 1 consid. 4.2.3 p. 4).
4.
Le recourant soutient que la peine qui lui a été infligée est excessivement sévère, particulièrement pour des délits qu'il n'a pas commis.
Son grief est irrecevable dans la mesure où il se fonde sur la prémisse qu'il n'aurait pas commis les actes qui lui sont imputés. Pour le surplus, il n'expose en rien les raisons pour lesquelles la peine serait trop lourde.
4.1. Les règles générales relatives à la fixation de la peine (art. 47 CP) ont été rappelées aux ATF 144 IV 313 consid. 1.2 p. 319, 142 IV 137 consid. 9.1 p. 147, 141 IV 61 consid. 6.1.1 p. 66 s, 136 IV 55 et 134 IV 17, auxquels on peut renvoyer.
En bref, le juge dispose d'un large pouvoir d'appréciation dans la fixation de la peine. Le Tribunal fédéral n'intervient que lorsque l'autorité cantonale a fixé une peine en dehors du cadre légal, si elle s'est fondée sur des critères étrangers à l'art. 47 CP, si des éléments d'appréciation importants n'ont pas été pris en compte ou, enfin, si la peine prononcée est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation (ATF 144 IV 313 consid. 1.2 p. 319).
4.2. En l'espèce, il n'appert pas, et le recourant lui-même ne prétend pas, que la cour cantonale aurait méconnu des éléments déterminants, pas plus qu'elle en aurait négligé certains ou aurait accordé une importance excessive à d'autres. Par conséquent, la peine infligée au recourant ne procède pas d'un abus du pouvoir d'appréciation dont disposait la cour cantonale.
5.
Également pour le seul motif qu'une partie des chefs d'accusation ne devraient pas être retenus, le recourant soutient que l'expulsion prononcée à son encontre doit être levée.
Aux termes de l'art. 66a al. 1 let. l CP, le juge expulse de Suisse l'étranger qui est condamné notamment pour actes préparatoires délictueux au sens de l'art. 260bis al. 1 CP, quelle que soit la quotité de la peine prononcée à son encontre, pour une durée de cinq à quinze ans. Selon l'art. 66a al. 2 CP, le juge peut exceptionnellement renoncer à une expulsion lorsque celle-ci mettrait l'étranger dans une situation personnelle grave et que les intérêts publics à l'expulsion ne l'emportent pas sur l'intérêt privé de l'étranger à demeurer en Suisse. A cet égard, il tiendra compte de la situation particulière de l'étranger qui est né ou qui a grandi en Suisse.
Compte tenu de la condamnation du recourant pour actes préparatoires délictueux et du fait qu'aucun élément du dossier ne donne à penser que le recourant se trouverait dans une situation permettant de renoncer à l'expulsion, ce qu'il ne prétend au demeurant lui-même pas, force est de constater que la mesure prononcée ne viole pas le droit fédéral.
6.
Le recourant conteste, enfin, le principe et le montant de l'indemnité pour tort moral allouée à l'intimé.
6.1. L'art. 49 al. 1 CO dispose que celui qui subit une atteinte illicite à sa personnalité a droit à une somme d'argent à titre de réparation morale, pour autant que la gravité de l'atteinte le justifie et que l'auteur ne lui ait pas donné satisfaction autrement.
La fixation de l'indemnité pour tort moral est une question d'application du droit fédéral, que le Tribunal fédéral examine donc librement. Dans la mesure où celle-ci relève pour une part importante de l'appréciation des circonstances, il fait toutefois preuve de retenue. Il n'intervient que si l'autorité cantonale s'est fondée sur des critères étrangers à la disposition applicable, a omis de tenir compte d'éléments pertinents ou a fixé une indemnité inéquitable parce que manifestement trop élevée ou trop faible. Comme il s'agit d'une question d'équité, et non d'une question d'appréciation au sens strict, qui limiterait sa cognition à l'abus ou à l'excès du pouvoir d'appréciation, le Tribunal fédéral examine toutefois librement si la somme allouée tient suffisamment compte de la gravité de l'atteinte ou si elle est disproportionnée par rapport à l'intensité des souffrances morales causées à la victime (ATF 138 III 337 consid. 6.3.1 p. 344 s. et les références citées).
6.2. Dans la mesure où le recourant semble vouloir remettre en question les constatations de la cour cantonale relatives à l'atteinte subie par l'intimé, son argumentation, qui ne satisfait pas aux exigences de l'art. 106 al. 2 LTF, est irrecevable.
Pour le surplus, il se contente de reprocher à la cour cantonale d'avoir omis de relever que l'intimé avait renoncé à suivre tout traitement tendant à faire cesser l'atteinte psychique dont il se plaint et d'avancer l'hypothèse que la passivité de la victime aurait pu avoir pour conséquence une péjoration des symptômes sur lesquels la cour cantonale s'est fondée pour fixer le montant de l'indemnité. Sur ce point, son argumentation repose sur des éléments de fait qui ne ressortent pas du jugement attaqué, sans qu'il formule un grief d'arbitraire à ce propos, et est donc irrecevable.
Par ailleurs, sur ce point également il n'apparaît pas que la cour cantonale, qui a dûment exposé les éléments pris en compte pour fixer le montant de l'indemnité (voir jugement attaqué, consid. 8.2, p. 27 s.) se serait fondée sur des considérations étrangères à la disposition applicable, aurait omis de tenir compte d'éléments pertinents ni que le montant alloué serait manifestement trop élevé.
7.
Mal fondé, le recours doit être rejeté dans la mesure où il est recevable.
Comme les conclusions étaient dépourvues de chances de succès, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière qui n'apparaît pas favorable.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal vaudois.
Lausanne, le 7 octobre 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Paquier-Boinay