==========================================================================
  FS19_VehicleLock - Verrouillage des véhicules (clés personnelles)
  Version 1.1.1.0 - Farming Simulator 19
==========================================================================

Fermez et verrouillez à clé n'importe quel véhicule (véhicules de base ET
véhicules moddés), avec une clé 3D dans la main, des clés personnelles en
multijoueur et un menu pour donner des doubles des clés aux autres joueurs.


--------------------------------------------------------------------------
 1. CARACTÉRISTIQUES
--------------------------------------------------------------------------

 - Script global : s'applique automatiquement à tous les véhicules dans
   lesquels on peut monter (base + mods). Rien à modifier dans vos mods.
 - Clé 3D (télécommande + lame) qui apparaît dans la main à la première
   personne, avec une LED qui clignote quand on appuie.
 - Bip de verrouillage / déverrouillage et clignotement des feux de
   détresse du véhicule (comme une vraie voiture).
 - Cadenas rouge affiché au-dessus des véhicules verrouillés.
 - Message dans l'aide F1 (en haut à gauche) :
   "Ce véhicule est fermé par <pseudo>".
 - Clés personnelles : seul le propriétaire de la clé (et les joueurs qui
   ont un double) peut ouvrir ou fermer le véhicule.
 - Menu des clés : donner un double à un joueur proche, le récupérer,
   rendre son double, abandonner ses clés.
 - Compatible SimpleIC (FS19_simpleIC) : portes, vitres, capot... se
   ferment au verrouillage et ne s'ouvrent plus de l'extérieur.
 - Compatible solo, serveur hébergé et serveur dédié.
 - Tout est sauvegardé avec la partie (verrou, propriétaire, doubles).
 - Textes en français, anglais et allemand.


--------------------------------------------------------------------------
 2. INSTALLATION
--------------------------------------------------------------------------

 1. Copiez FS19_VehicleLock.zip dans votre dossier mods :
    Documents\My Games\FarmingSimulator2019\mods
 2. NE RENOMMEZ PAS le fichier zip (le nom sert à retrouver les véhicules
    verrouillés dans la sauvegarde).
 3. Activez le mod au lancement de la partie.
 4. SimpleIC est optionnel : sans lui, le mod fonctionne aussi (seule la
    fermeture automatique des portes IC n'a pas lieu).

 En multijoueur, le mod doit être installé sur le serveur ET chez tous les
 joueurs (comme tout mod de script).


--------------------------------------------------------------------------
 3. TOUCHES
--------------------------------------------------------------------------

   L ............ Verrouiller / déverrouiller le véhicule
                  (à pied près du véhicule, ou depuis le siège conducteur)
   K ............ Ouvrir le menu des clés (à pied près du véhicule)

 Dans le menu des clés :
   Haut / Bas ... Choisir une ligne
   Entrée ....... Valider
   Échap ou K ... Fermer le menu

 Les touches L et K se modifient dans Options > Commandes :
 "Clé : verrouiller / déverrouiller le véhicule" et
 "Clé : menu des clés (doubles)".


--------------------------------------------------------------------------
 4. COMMENT ÇA MARCHE
--------------------------------------------------------------------------

 4.1 Verrouiller / déverrouiller
 -------------------------------
 - Approchez-vous à moins de 5 m d'un véhicule : l'aide F1 affiche
   "Verrouiller (nom du véhicule)".
 - Appuyez sur L : la clé apparaît dans la main, la LED clignote, le
   véhicule bipe et les feux de détresse flashent.
     Verrouillage   : bruit de serrure + 2 bips, 2 flashs de la LED
     Déverrouillage : bruit de serrure + 1 bip, 1 flash de la LED
 - Depuis le siège conducteur, L sert de verrouillage centralisé.

 4.2 Véhicule verrouillé
 -----------------------
 - Impossible de monter dedans (message "Ce véhicule est fermé par ...").
 - Il est ignoré par la touche Tab (changement de véhicule).
 - Les portes / vitres SimpleIC ouvertes se ferment et ne répondent plus
   depuis l'extérieur. Le conducteur à l'intérieur peut toujours les
   utiliser.
 - Un cadenas rouge s'affiche au-dessus du véhicule (jusqu'à 15 m).
 - L'aide F1 affiche "Ce véhicule est fermé par <pseudo>".
 - Le mod ne gêne jamais un joueur déjà au volant.

 4.3 Les clés
 ------------
 - Clé principale : le PREMIER joueur qui verrouille un véhicule (ou qui
   choisit "Prendre les clés de ce véhicule" dans le menu) en devient le
   propriétaire.
 - Les clés restent à leur propriétaire même quand le véhicule est ouvert :
   un autre joueur peut le conduire s'il est ouvert, mais ne peut ni le
   fermer ni l'ouvrir sans clé ("Essayer ma clé" -> "Ce n'est pas votre
   clé !").
 - Un joueur qui se déconnecte puis revient garde ses clés.

 4.4 Le menu des clés (touche K)
 -------------------------------
 Le menu affiche : le propriétaire de la clé principale, la liste des
 doubles, l'état (ouvert / fermé par ...) et votre propre clé.

   Propriétaire de la clé principale :
     - Donner un double à <joueur> : la liste ne montre que les joueurs à
       moins de 5 m de vous. Les deux joueurs reçoivent une
       notification. 10 doubles maximum par véhicule.
     - Récupérer le double de <joueur> : il n'a plus accès au véhicule
       (il est prévenu).
     - Abandonner mes clés : le véhicule redevient libre (il doit être
       ouvert).
   Joueur avec un double :
     - Rendre mon double des clés.
   Véhicule sans propriétaire :
     - Prendre les clés de ce véhicule (il faut avoir accès au véhicule,
       c'est-à-dire être dans la ferme qui le possède).
   Admin du serveur :
     - Réinitialiser les clés [admin] : supprime toutes les clés et ouvre
       le véhicule.

 4.5 Qui peut faire quoi ?
 -------------------------
                          Propriétaire   Double   Sans clé   Admin
   Verrouiller                oui          oui       non       oui
   Déverrouiller              oui          oui       non       oui (forcé)
   Donner un double           oui          non       non       non
   Récupérer un double        oui          non       non       non
   Rendre son double           -           oui        -         -
   Abandonner les clés        oui          non       non       non
   Réinitialiser les clés     non          non       non       oui

 Un véhicule sans propriétaire peut être verrouillé par tout joueur de la
 ferme qui le possède : il devient alors propriétaire de la clé.

 4.6 Multijoueur
 ---------------
 - Le serveur vérifie tout (clé, distance, accès à la ferme) : un joueur
   ne peut pas tricher depuis son PC.
 - La clé est liée à l'identifiant unique du joueur, pas seulement à son
   pseudo.
 - Les autres joueurs voient les feux de détresse, entendent le bip et
   voient le cadenas. La clé 3D n'est visible que par celui qui la tient
   (vue à la première personne).

 4.7 Solo
 --------
 En solo, vous avez toujours toutes les clés : L verrouille et
 déverrouille, le menu sert seulement à prendre ou abandonner les clés.


--------------------------------------------------------------------------
 5. RÉGLAGES (pour les administrateurs de serveur)
--------------------------------------------------------------------------

 En haut du fichier scripts/VehicleLock.lua (dans le zip) :

   INTERACTION_RANGE      = 5.0   distance (m) pour utiliser la clé à pied
   GIVE_KEY_RANGE         = 5.0   distance (m) max pour donner un double
   MAX_DUPLICATES         = 10    nombre max de doubles par véhicule (15 max)
   ADMIN_CAN_UNLOCK       = true  l'admin peut forcer / réinitialiser
   REQUIRE_FARM_ACCESS    = true  il faut être de la ferme du véhicule
                                  pour en prendre les clés
   CLOSE_SIMPLEIC_ON_LOCK = true  ferme portes / vitres SimpleIC
   FLASH_LIGHTS           = true  feux de détresse au (dé)verrouillage
   SHOW_PADLOCK           = true  cadenas au-dessus des véhicules fermés
   PADLOCK_RANGE          = 15.0  distance (m) d'affichage du cadenas
   SOUND_RANGE            = 35.0  distance (m) à laquelle on entend le bip
   SOUND_VOLUME           = 0.9   volume des sons

 Taille du cadenas (fonction drawPadlocks) :
   MathUtil.clamp(0.24 / distance, 0.022, 0.07)
   -> 76 px à 3 m, 52 px à 5 m, 32 px à 8 m, 24 px au-delà (écran 1080p)

 Les mêmes réglages doivent être utilisés sur le serveur et chez les
 joueurs (même zip pour tout le monde).


--------------------------------------------------------------------------
 6. PROTECTION D'AUTEUR / CONVERSION
--------------------------------------------------------------------------

 Le mod est signé au nom de son auteur. En jeu, il fonctionne
 normalement, SANS aucun code à saisir : la protection ne gêne jamais
 les joueurs.

 Si quelqu'un repackage le mod (zip renommé) ou change l'auteur dans
 modDesc.xml sans le re-signer, le mod affiche une bannière
 "MOD PROTEGE - signature invalide" avec le nom de l'auteur d'origine
 dans le fichier log.txt, à chaque chargement. Le mod continue de
 fonctionner (ce n'est pas un blocage du jeu).

 Reconvertir / renommer le mod légitimement (code 2729)
 -------------------------------------------------------
 Pour re-signer le mod après l'avoir renommé ou changé d'auteur :
   1. Ouvrez scripts/VehicleLockProtection.lua.
   2. Mettez la ligne :  local CONVERSION_CODE   = 2729
   3. Lancez le jeu une fois, puis ouvrez log.txt : le jeu affiche la
      nouvelle signature et les lignes exactes à recopier
      (PROTECTED_AUTHOR, PROTECTED_MODNAME, SIGNATURE).
   4. Recopiez ces lignes dans VehicleLockProtection.lua.
   5. Remettez :  local CONVERSION_CODE   = 0

 Sans le code 2729, la régénération de la signature est refusée
 ("code de conversion incorrect").

 IMPORTANT : les scripts d'un mod FS19 sont du texte lisible dans le
 zip. Cette protection est une sécurité d'auteur dissuasive (preuve
 d'origine + détection de reconversion), pas un verrou incassable.


--------------------------------------------------------------------------
 7. CONTENU DU MOD
--------------------------------------------------------------------------

   modDesc.xml                    description, touches, traductions
   icon_vehicleLock.dds           icône du mod
   scripts/VehicleLock.lua        script principal (touches, menu, HUD, serveur)
   scripts/VehicleLockSpec.lua    spécialisation ajoutée aux véhicules
   scripts/VehicleLockEvents.lua  événements réseau (multijoueur)
   scripts/VehicleLockProtection.lua  protection d'auteur / code de conversion
   i3d/vehicleKey.i3d             modèle 3D de la clé (modifiable dans
                                  GIANTS Editor)
   hud/padlock.dds                cadenas
   hud/key.dds                    icône du menu des clés
   hud/pixel.dds                  fond du menu
   sounds/lock.ogg                son de verrouillage
   sounds/unlock.ogg              son de déverrouillage
   sounds/denied.ogg              son de refus


--------------------------------------------------------------------------
 8. PROBLÈMES CONNUS / DÉPANNAGE
--------------------------------------------------------------------------

 - Les touches ne marchent pas ou sont en rouge dans Options > Commandes :
   une autre commande utilise déjà L ou K. Choisissez une autre touche.
 - Le jeu garde encore une ancienne touche (Ctrl + L / Ctrl + K) :
   réattribuez L et K dans Options > Commandes.
 - "Aucun joueur à proximité" alors qu'un joueur est à côté : il doit être
   à pied et à moins de 5 m de vous.
 - Les trains et les chevaux ne sont pas concernés par le verrouillage.
 - Bannière "MOD PROTEGE" dans le log : le mod a été renommé ou son
   auteur modifié ; voir la section 6 pour le re-signer (code 2729).
 - En cas de problème, cherchez les lignes "VehicleLock" dans le fichier
   log.txt (Documents\My Games\FarmingSimulator2019\log.txt).


--------------------------------------------------------------------------
 9. HISTORIQUE DES VERSIONS
--------------------------------------------------------------------------

 1.1.2.0  Protection d'auteur : signature du mod, détection de
          reconversion, code de conversion (2729). Sans effet en jeu.
 1.1.1.0  Touches par défaut : L (verrouiller) et K (menu des clés).
 1.1.0.0  Cadenas au-dessus des véhicules fermés, message
          "Ce véhicule est fermé par ..." dans l'aide F1, menu des clés,
          doubles des clés, clés conservées après déverrouillage,
          réinitialisation admin.
 1.0.0.0  Première version : verrouillage à clé, clé 3D, clés
          personnelles en multijoueur, compatibilité SimpleIC.
