RealisticHydraulics  -  v0.1.0.0  (Farming Simulator 25)
=========================================================

PRINCIPE
  Je maintiens la commande  -> le relevage / l'outil bouge.
  Je relâche                -> il s'arrête là où il est, position conservée.
  Je maintiens à nouveau    -> il repart.
  Aucun mouvement automatique jusqu'en bout de course (les fins de course restent gérées par le moteur).

INSTALLATION
  Copier RealisticHydraulics.zip (sans le décompresser) dans :
  Documents/My Games/FarmingSimulator2025/mods
  Puis activer "Realistic Hydraulics" dans la sélection des mods.

COMMANDES  (Options > Commandes, catégorie véhicule, préfixe "RH :")
  Touches par défaut (pavé numérique, modifiables) :
    8 / 2  relevage monter / descendre (outil sélectionné)
    7 / 1  relevage avant monter / descendre
    9 / 3  relevage arrière monter / descendre
    6 / 4  déployer / replier
  Sans touche par défaut (à assigner : bouton, manette, axe de joystick) :
    RH_LIFT_AXIS, RH_FRONT_LIFT_AXIS, RH_REAR_LIFT_AXIS, RH_IMPLEMENT_AXIS (axes + = monter/déployer, - = descendre/replier)
    RH_IMPLEMENT_RAISE / RH_IMPLEMENT_LOWER (tous les relevages)
    RH_FRONT_IMPLEMENT_DEPLOY / FOLD, RH_REAR_IMPLEMENT_DEPLOY / FOLD
    RH_TOGGLE_ENABLED (ON/OFF), RH_TOGGLE_HUD (interface)
  "Outil sélectionné" = l'outil choisi avec la touche de sélection d'outil ; si le tracteur lui-même
  est sélectionné, la commande s'applique à tous les outils attelés.
  Monter + descendre en même temps (même groupe) = aucune action.
  Les commandes sont actives seulement si le véhicule possède la fonction (relevage avant, arrière, outil repliable).
  (Elles apparaissent toutes dans le menu des commandes : le jeu liste toutes les actions déclarées par un mod.)

RÉGLAGES  (fichier Documents/My Games/FarmingSimulator2025/modSettings/RealisticHydraulics.xml)
  enabled        ON/OFF général
  liftSpeed      vitesse de montée      (1.0 = 100 %, défaut 100 %)
  lowerSpeed     vitesse de descente    (défaut 70 %)
  sensitivity    sensibilité analogique (défaut 100 %)
  deadzone       zone morte analogique  (défaut 8 %)
  loadInfluence  ralentissement selon la masse de l'outil par rapport au tracteur (défaut 100 %, 0 = désactivé)
  hud            interface à l'écran
  debug          journal [RH] dans log.txt
  Modification en jeu via la console développeur :
    rhSet liftSpeed 100     rhSet lowerSpeed 70     rhSet deadzone 8     rhSet hud off     rhSet debug on
    rhStatus   rhReset
  (Les nombres sont des pourcentages.)

LIMITES CONNUES (à lire)
  1. Le jeu ne fournit PAS de fonction publique "arrêter le relevage ici". Le mod pilote le sens avec
     setJointMoveDown() (natif, synchronisé) et fige / règle la vitesse en écrivant jointDesc.moveTime
     (champ interne de l'AttacherJoints). Si une mise à jour de FS25 change ce comportement, le maintien
     du relevage doit être revu. Le mod ne touche un relevage qu'après la première commande RH sur celui-ci.
  2. Touches natives "lever/baisser l'outil" : le mod neutralise leur action tant que RH est actif
     (réglage blockNative, ON par défaut ; rhSet blockNative off pour les rendre). Il n'est PAS possible
     depuis un mod de les griser ou de les désassigner dans Options > Commandes : la touche reste
     affichée mais ne fait plus rien. Pour la retirer visuellement, la supprimer à la main dans le menu.
  3. Pendant un travail de l'IA (ouvrier), RH rend la main au comportement natif automatiquement.
     Les mods de conduite autonome qui n'utilisent pas l'IA native ne sont pas détectés.
  4. Déployer / replier : utilise Foldable (setFoldState). La vitesse est celle de l'animation de l'outil,
     elle n'est pas réglable ; un axe analogique commande seulement le sens et le "mouvement oui/non".
  5. Poids : la capacité de levage réelle d'un relevage n'est pas exposée par le jeu. Le ralentissement
     utilise le rapport masse de l'outil / masse du tracteur (getTotalMass), pas une capacité réelle.
  6. Non couvert : bras de chargeur frontal, grues et autres "moving tools" (système Cylindered), et les
     relevages de deuxième niveau (outil porté sur un autre outil).
  7. Pas de page dans le menu Réglages du jeu (l'injection dans ce menu n'est pas une API stable) :
     réglages par fichier XML ou console.
  8. L'icône icon.dds est provisoire.

DEBUG
  rhSet debug on  puis consulter log.txt :
    [RH] Vehicle detected / Rear lift detected / Direction / Input / Moving / Position

ARCHITECTURE
  modDesc.xml                      déclaration, actions, touches par défaut, spécialisation
  scripts/RealisticHydraulics.lua  point d'entrée, ajout de la spécialisation aux véhicules à attelages
  scripts/RHVehicle.lua            spécialisation véhicule (événements d'entrée, mise à jour, interface)
  scripts/RHInput.lua              table des actions, deadzone / sensibilité, anti-conflit
  scripts/RHLift.lua               contrôle des relevages
  scripts/RHImplement.lua          contrôle déployer / replier
  scripts/RHEvent.lua              synchronisation multijoueur
  scripts/RHConfig.lua             réglages, fichier XML, console
  i18n/translation_en.xml, _fr.xml textes
