analyse de la V1 qui ne marche pas ! Analyse des Fonctions - Console Cartographie

Analyse Détaillée des Fonctions JS — Console Cartographie

Fichier source Nom de la fonction Données en entrée (Inputs) Données retournées / Format (Outputs) Opération réalisée Appelle d'autres fonctions Est appelée par
navigation_univers.php debugLog msg (string) : message à logger Aucun (Modifie le DOM) Ajoute une ligne de texte dans le conteneur de débogage de la page. Aucune fetch(), getAllShips(), getAllSystems(), initControls(), autoZoom(), buildDepthMap(), showParsecInfo()
navigation_univers.php getAllShips Aucun (utilise l'objet global window.currentReport) Tableau d'objets (ex: [{ id, nom, position, positionMeta }]) Extrait et combine les détails et les positions de tous les vaisseaux du rapport. Aucune autoZoom(), buildGalaxyMap(), getShipById()
navigation_univers.php getAllSystems Aucun (utilise l'objet global window.currentReport) Tableau d'objets (ex: [{ id, type, coord, nom }]) Extrait et formate la liste de tous les systèmes stellaires du rapport. Aucune autoZoom(), buildGalaxyMap(), getSystemById(), getSystemsInParsec()
navigation_univers.php initPlayerInfo Aucun (utilise l'objet global window.currentReport) Aucun (Modifie le DOM) Initialise et affiche le nom du joueur dans l'en-tête de la page. debugLog() Bloc principal au chargement de la page
navigation_univers.php initControls Aucun (écouteurs d'événements UI) Aucun (Ajoute des écouteurs) Configure les interactions pour les boutons de zoom, d'export de commandes et de défilement. buildGalaxyMap(), autoZoom(), buildDepthMap(), applyDepthScroll() Bloc principal au chargement de la page
navigation_univers.php buildGalaxyMap Aucun (utilise le DOM et window.currentReport) Aucun (Génère le HTML de la carte) Construit la grille de la carte XY, positionne les parsecs, les systèmes et les vaisseaux avec mise à l'échelle. getAllSystems(), getAllShips(), onSystemSelected(), startDragShipXY(), onShipSelected(), onMapClick() fetch(), initControls(), autoZoom()
navigation_univers.php autoZoom Aucun (utilise getAllShips() et getAllSystems()) Aucun (Met à jour les inputs du DOM) Calcule automatiquement les bornes, l'étendue et le centre des objets pour ajuster la taille de la carte XY. getAllShips(), getAllSystems(), buildGalaxyMap(), debugLog() Écouteur du bouton "Auto Zoom"
navigation_univers.php buildDepthMap parsec (objet contenant x, y) Aucun (Génère le HTML de la carte Z) Construit la carte Z, filtre les objets selon le zoom, gère le placement sinusoïdal, les clics et les axes. getZmap(), getSystemsInParsec(), parseLuneName(), getAllShips(), applyDepthScroll(), addOrder(), showSystemInfo(), showPlanetInfo(), showLuneInfo(), showShipInfo(), debugLog() initControls(), showParsecInfo()
navigation_univers.php onShipSelected ship (objet vaisseau) Aucun Sélectionne un vaisseau et met à jour les panneaux d'information et d'ordres associés. updateShipInfo(), updateShipOrders() buildGalaxyMap()
navigation_univers.php updateShipInfo ship (objet vaisseau) Aucun (Modifie le DOM) Génère le tableau des caractéristiques d'un vaisseau dans le panneau d'information. Aucune onShipSelected()
navigation_univers.php updateShipOrders ship (objet vaisseau) Aucun (Modifie le DOM) Crée le formulaire d'ajout d'ordre de déplacement XY pour le vaisseau sélectionné. addOrder() onShipSelected()
navigation_univers.php startDragShipXY e (Event), el (HTMLElement), ship (objet vaisseau) Aucun Initialise le processus de glisser-déposer (Drag & Drop) d'un vaisseau sur la carte XY. Aucune buildGalaxyMap()
navigation_univers.php startDragShipDepth e (Event), el (HTMLElement), ship (objet vaisseau), parsec (objet) Aucun Initialise le Drag & Drop d'un vaisseau sur la carte Z. Aucune Non référencée explicitement dans le flux principal
navigation_univers.php onDragMoveShip e (Event de mouvement de souris) Aucun Met à jour dynamiquement la position visuelle (pixels) du sprite pendant le déplacement. Aucune Écouteur mousemove global lors d'un drag
navigation_univers.php onDragEndShip e (Event de relâchement de souris) Aucun Calcule la case cible d'arrivée à la fin du drag, crée un ordre de déplacement movex et nettoie les écouteurs. addOrder() Écouteur mouseup global lors d'un drag
navigation_univers.php onSystemSelected sys (objet système) Aucun Sélectionne un système et met à jour son affichage d'informations. updateSystemInfo() buildGalaxyMap()
navigation_univers.php updateSystemInfo sys (objet système) Aucun (Modifie le DOM) Affiche les détails d'un système dans le panneau d'information. Aucune onSystemSelected()
navigation_univers.php onMapClick e (Event de clic) Aucun Gère centralisément la sélection des objets (vaisseau, système, parsec) par clic sur la carte XY. showShipInfo(), showShipOrders(), showSystemInfo(), clearOrdersPanel(), showParsecInfo(), clearInfoPanel(), debugLog() buildGalaxyMap()
navigation_univers.php showShipInfo shipId (string) Aucun (Modifie le DOM) Récupère et affiche les informations textuelles d'un vaisseau à partir de son ID. getShipById() onMapClick()
navigation_univers.php showShipOrders shipId (string) Aucun (Modifie le DOM) Affiche dans le panneau d'ordres les actions en cours associées à un vaisseau spécifique. Aucune onMapClick()
navigation_univers.php showSystemInfo systemId (string) Aucun (Modifie le DOM) Récupère et affiche les informations textuelles d'un système à partir de son ID. getSystemById() onMapClick()
navigation_univers.php showParsecInfo Px (number), Py (number) Aucun (Modifie le DOM) Analyse le contenu d'un parsec donné, met à jour le libellé, construit et affiche sa carte Z. getZmap(), buildDepthMap(), debugLog() onMapClick()
navigation_univers.php clearInfoPanel Aucun Aucun (Modifie le DOM) Réinitialise le panneau d'information à son état vide par défaut. Aucune onMapClick()
navigation_univers.php clearOrdersPanel Aucun Aucun (Modifie le DOM) Réinitialise le panneau d'ordres à son état vide par défaut. Aucune onMapClick()
navigation_univers.php getShipById id (string) Objet vaisseau ou null Recherche et retourne un objet vaisseau spécifique d'après son identifiant. getAllShips() showShipInfo()
navigation_univers.php getSystemById id (string) Objet système ou null Recherche et retourne un système stellaire spécifique d'après son identifiant. getAllSystems() showSystemInfo()
navigation_univers.php getZmap Px (number), Py (number) Objet contenant { description, ships, systems } Extrait du rapport les données géographiques et entités présentes dans un parsec spécifique. Aucune buildDepthMap(), showParsecInfo()
navigation_univers.php getSystemsInParsec Px (number), Py (number) Tableau de systèmes filtrés Retourne tous les systèmes dont les coordonnées correspondent au parsec indiqué. Aucune buildDepthMap()
navigation_univers.php parseLuneName nom (string de la lune) Objet { planetIndex, moonIndex } Découpe textuellement le nom d'une lune pour en extraire ses index de rattachement. Aucune buildDepthMap()
navigation_univers.php onPlanetSelected planet (objet), system (objet) Aucun Déclenche l'affichage des informations d'une planète sélectionnée. updatePlanetInfo() Non appelée directement (fonction utilitaire)
navigation_univers.php updatePlanetInfo planet (objet), system (objet) Aucun (Modifie le DOM) Remplit le panneau d'information avec les données démographiques et structurelles d'une planète. Aucune onPlanetSelected()
navigation_univers.php onLuneSelected lune (objet), system (objet) Aucun Déclenche l'affichage des informations d'une lune sélectionnée. updateLuneInfo() Non appelée directement (fonction utilitaire)
navigation_univers.php updateLuneInfo lune (objet), system (objet) Aucun (Modifie le DOM) Remplit le panneau d'information avec les données d'une lune. Aucune onLuneSelected()
navigation_univers.php applyDepthScroll Aucun Aucun (Modifie le DOM) Applique une translation horizontale (translateX) pour faire défiler la carte Z. Aucune initControls(), buildDepthMap()
script_global.js loadExistingOrders data (objet rapport/ordres) Aucun Charge les ordres en attente depuis les données globales vers le tableau orders. renderOrdersList() Appelé en externe lors du chargement des données globales
script_global.js getOrFetchReport playerId (string/int), tour (number) Promesse retournant un objet JSON (données du rapport) Récupère le rapport de jeu soit depuis le cache de session (sessionStorage), soit via une requête réseau (fetch). Aucune Appelé par des scripts de page externes
script_global.js resName id (string de ressource) String (nom de la ressource ou son identifiant) Convertit l'identifiant technique d'une ressource en son nom lisible via les définitions du rapport. Aucune Utilisé de manière globale pour le libellé des ressources
script_global.js loadOrdersFromFile playerId (string/int), tour (number) Aucun Récupère via fetch les ordres enregistrés sur le serveur et met à jour le tableau orders. renderOrdersList() Bloc principal de chargement (navigation_univers.php)
script_global.js addOrder ordre (objet) Aucun Ajoute un nouvel ordre au tableau orders et rafraîchit l'affichage de la liste. renderOrdersList() buildDepthMap(), updateShipOrders(), onDragEndShip()
script_global.js removeOrder index (number) Aucun Supprime un ordre du tableau orders en fonction de son index et rafraîchit l'affichage. renderOrdersList() Événement de clic sur le bouton de suppression dans le HTML des ordres
script_global.js renderOrdersList Aucun Aucun (Modifie le DOM) Génère le code HTML récapitulant l'ensemble des ordres actifs et met à jour l'indicateur de version JS. Aucune loadExistingOrders(), loadOrdersFromFile(), addOrder(), removeOrder()
script_global.js saveOrders playerId (string/int), tour (number) Aucun (Affiche un statut HTTP texte) Envoie l'intégralité du tableau orders au script de sauvegarde PHP par requête POST. Aucune Écouteur de clic sur le bouton de sauvegarde
script_global.js saveAppendOrders playerId (string/int), tour (number) Aucun (Affiche un statut HTTP texte) Envoie uniquement les nouveaux ordres non fusionnés au script de sauvegarde PHP par requête POST. Aucune Appelé à la demande de l'utilisateur
script_global.js markJSVersion version (number/string) Aucun (Modifie le DOM) Met à jour l'indicateur textuel de version du fichier script global sur la page. Aucune Chargement de la page de navigation
script_armada.js renderArmadaOperational report (objet rapport) Aucun (Génère le HTML) Construit le tableau de gestion opérationnelle des vaisseaux avec sélecteurs de destination et champs de coordonnées. Aucune Appelé par des interfaces de gestion d'armada
script_armada.js renderArmadaPending report (objet rapport) Aucun (Génère le HTML) Construit le tableau récapitulatif des vaisseaux en cours de construction. Aucune Appelé par des interfaces de gestion d'armada
script_armada.js renderArmadaDestroyed report (objet rapport) Aucun (Génère le HTML) Construit le tableau affichant l'historique des vaisseaux détruits. Aucune Appelé par des interfaces de gestion d'armada
script_armada.js renderArmadaJson report (objet rapport) Aucun (Modifie le DOM) Affiche le flux JSON brut des ordres ou des données de vaisseaux dans un conteneur de débogage. Aucune Appelé par des interfaces de gestion d'armada
script_armada.js openShipModal shipId (string) Aucun (Modifie le DOM) Ouvre une fenêtre modale détaillée affichant les statistiques, composants, modèle et coûts d'un vaisseau. Aucune Événements de clic sur les lignes de vaisseaux ou icônes
script_armada.js closeShipModal Aucun Aucun (Modifie le DOM) Masque l'affichage de la fenêtre modale de fiche vaisseau. Aucune Bouton de fermeture de la modale
script_armada.js sendMoveXYZ vaisseauId (string) Aucun Lit les inputs de coordonnées X, Y, Z du DOM pour un vaisseau et génère un ordre movex. addOrder() Bouton d'action XYZ du tableau d'armada
script_armada.js sendMoveObj vaisseauId (string) Aucun Lit la destination sélectionnée dans le menu déroulant d'un vaisseau et génère un ordre move. addOrder() Bouton d'action Objet du tableau d'armada
Voici l'analyse structurée des fonctionnalités, des données en entrée (issues du rapport) et des données en sortie (les ordres) pour la console de cartographie et de navigation, basée sur les fichiers fournis : ## 1. Fonctionnalités principales (UI & Interactions) * Affichage de la Carte XY (Galaxy Map) : * Représentation visuelle par grille de parsecs (échelle basée sur `COORD_SCALE` de 10 000). * Affichage interactif des systèmes (soleils, systèmes) et des vaisseaux avec mise à l'échelle dynamique et centrage via coordonnées ou auto-zoom. * Gestion du Drag & Drop des vaisseaux directement sur la carte XY pour générer des ordres de mouvement. * Affichage de la Carte Z (Depth Map) : * Visualisation de la profondeur (altitude Z) pour un parsec sélectionné. * Projection visuelle par blocs avec gestion de l'espacement et du zoom (manuel, global ou par objets). * Système de sélection et d'interaction par clic ou clic long sur les sprites (planètes, lunes, soleils, vaisseaux) pour l'affichage d'informations ou la programmation de déplacements. * **Panneau d'informations et d'ordres :** * Consultation détaillée des objets sélectionnés (vaisseaux, systèmes, planètes, lunes, parsecs). * Formulation d'ordres de déplacement (par coordonnées `movex` ou par ciblage d'objets `move`). * Récapitulatif dynamique des ordres en cours avec options de suppression, de sauvegarde et d'export au format JSON. --- ## 2. Données en entrée (provenant du rapport JSON) * **Données du joueur :** * Identifiant (`player_id`), nom (`nom`) et tour en cours (`tour`). * Systèmes stellaires (`rep.systemes`) : * Identifiants (`id`, `system_id`), types (`type` : soleil, système) et coordonnées spatiales tri-dimensionnelles `coord: [x, y, z]`. * Objets internes rattachés : planètes (`planetes`), lunes (`lunes`) et objets de niveau 1 (`objets_n1`). * Vaisseaux (`rep.vaisseaux`) : * Détails (`details`) : ID, nom personnalisé (`nom_perso`), modèle (`modele_id` / `modele`), statistiques de combat/vitesse (`stats`), composants, et statut (opérationnels, en cours de construction `pending`, ou détruits `detruits`). * Positions (`positions`) : Dictionnaire associant chaque ID de vaisseau à sa position actuelle sous forme de coordonnées `coord: [x, y, z]`. * Parsecs (`rep.parsecs`) : * Indexés par clé géographique (`Px-Py`), contenant une description textuelle, la liste des vaisseaux présents et les systèmes répertoriés dans la zone. --- ## 3. Données en sortie (Génération des Ordres) * **Structure générale d'un ordre :** * Les actions utilisateur se traduisent par l'ajout d'objets JavaScript dans le tableau global `orders`, sauvegardés via des scripts PHP dédiés. * **Types d'ordres générés :** * Déplacement par coordonnées (`movex`) : * Attributs : `type: "movex"`, `vaisseau_id`, `destination` (tableau `[x, y, z]`), `mode` (ex. `"normal"`, `"disto_1"`), et `precise` (booléen ou paramètre textuel comme `"attaque"` / `"observe"`). * Déplacement ciblé sur un objet (`move`) : * Attributs : `type: "move"`, `vaisseau_id`, `destination` (ID de l'objet cible : planète, lune, soleil, système), `mode` et `precise`.