import TravelDistanceV2 from './TravelDistanceV2.js'; /** * Initialisation du module TravelV2 */ export function initTravelV2() { console.log("TravelV2: Initialisation du module de voyage"); // Hook pour charger les données au démarrage Hooks.once('ready', async () => { console.log("TravelV2: Chargement des données de voyage"); // Exposer la classe globalement pour accès depuis la console game.wfrp4e = game.wfrp4e || {}; game.wfrp4e.travelv2 = TravelDistanceV2; await TravelDistanceV2.loadTravelData(); console.log("TravelV2: Classe accessible via game.wfrp4e.travelv2"); // Enregistrer la commande dans le système WFRP4e si disponible if (game.wfrp4e?.commands) { console.log("TravelV2: Enregistrement de la commande /voyage"); game.wfrp4e.commands.add({ voyage: { description: "Outil de calcul de distances de voyage (FR)", args: ["from", "to"], defaultArg: "from", callback: (from, to) => { // Vérifier que l'utilisateur est GM if (!game.user.isGM) { ui.notifications.warn("La commande /voyage est réservée au MJ."); return; } console.log(`TravelV2: Commande /voyage exécutée`); console.log(`TravelV2: from =`, from, `(type: ${typeof from})`); console.log(`TravelV2: to =`, to, `(type: ${typeof to})`); console.log(`TravelV2: from === null ?`, from === null); console.log(`TravelV2: to === null ?`, to === null); // Convertir null en undefined pour que la logique fonctionne from = from || undefined; to = to || undefined; TravelDistanceV2.displayTravelDistance(from, to); } } }); console.log("TravelV2: Commande /voyage enregistrée avec succès"); } else { console.warn("TravelV2: game.wfrp4e.commands non disponible"); } }); // Hook pour ajouter un gestionnaire de clics sur les liens de voyage Hooks.on('renderChatMessage', (message, html, data) => { // Ajouter un listener pour les clics sur les liens de voyage html.find('a[data-action="clickVoyage"]').click((event) => { event.preventDefault(); const target = event.currentTarget; TravelDistanceV2.handleTravelClick(event, target); }); }); console.log("TravelV2: Module de voyage initialisé"); }