Aller au contenu

Documentation développeur

Cette section est la référence technique pour travailler sur CTLD — son architecture, ses sous-systèmes, son outillage de build et de test, son modèle d'événements, son internationalisation et le workflow de développement utilisé pour mener le projet. Si vous intégrez CTLD dans une mission plutôt que de le modifier, consultez plutôt le guide Mission Maker.

Organisation de cette section

Page Ce que vous y trouverez
Workflow de développement Processus de backlog, Git Flow, TDD, quality gates, écriture de skills
Architecture Structure du dépôt, pattern manager, séquence d'init, bibliothèques internes
Sous-systèmes Scenes, crates, troops/JTAC, zones, véhicules, beacons, recon, menu, joueurs, AA
Événements Le bus d'événements interne et le catalogue complet des événements
Internationalisation Fonctionnement de l'i18n, ajout de clés et de langues, overrides mission-maker
Build & tests Pipeline de build, busted, couverture, logging, configuration de debug
Migration v1 → v2 Principe du wrapper legacy, table de migration, exemple concret
Référence API Méthodes publiques de chaque manager
Spécification de conception La justification derrière l'architecture v2

L'architecture en un coup d'œil

CTLD v2 est une réécriture modulaire et testable du script monolithique d'origine. Le source Lua 5.1 pur vit sous src/ (une classe par fichier) et est fusionné dans l'unique livrable CTLD.lua par un build PowerShell.

Le runtime utilise un pattern de manager singleton : un manager par domaine, chacun obtenu via Manager.getInstance(). Les managers n'appellent jamais directement les rouages internes des autres pour les préoccupations transverses — ils communiquent à travers le bus d'événements interne, EventDispatcher.

CTLDCoreManager          ← orchestrator, owns the init sequence
CTLDPlayerManager        ← tracks connected players, owns the F10 menu
CTLDZoneManager          ← pickup / extract / waypoint / logistic zones
CTLDTroopManager         ← troops boarding / deploying / extracting
CTLDCrateManager         ← crate spawn / load / unload / assembly
CTLDVehicleSpawner       ← vehicle request / pack
CTLDFOBManager           ← FOB construction pipeline
CTLDBeaconManager        ← radio beacons
CTLDJTACManager          ← JTAC auto-lase / orbit
CTLDReconManager         ← recon layer + F10 map marks
CTLDCrateAssemblyManager ← AA system assembly
CTLDSceneManager         ← scene engine (FARP, FOB, minefield…)
CTLDDCSEventBridge       ← single DCS event handler, routes to managers

La configuration est en lecture seule et accédée via ctld.gs("paramName") — n'appelez jamais config:getSetting() directement.

Consultez Architecture pour la structure du dépôt, l'idiome manager/singleton, la séquence d'init de CTLDCoreManager et les bibliothèques internes.