====== CElevator — Pour de beaux ascenseurs ! ======
Mod Luanti (anciennement Minetest) ajoutant des ascenseurs réalistes et entièrement fonctionnels. Les ascenseurs peuvent desservir de 2 à 100 étages, se déplacer à vitesse variable, gérer des groupes de cabines, et s'interfacer avec les mods d'automatisation.
Pour info Luffy0805 a fait un tutoriel visuel à l'académie pour vous permettre de mieux comprendre l'installation des ascenseurs.
----
===== 1. Éléments du mod =====
**Éléments principaux**
^ Élément ^ Nom interne ^ Rôle ^
| Contrôleur | ''celevator:controller'' | Cerveau de l'ascenseur, 2 blocs de hauteur |
| Variateur de vitesse (Drive) | ''celevator:drive'' | Moteur électronique, posé à côté du contrôleur |
| Machine de treuil | ''celevator:machine'' | Mécanisme physique de la machinerie |
| Régulateur de vitesse | ''celevator:governor'' | Sécurité anti-survitesse |
| Dispatcher | ''celevator:dispatcher'' | Gestion de groupes jusqu'à 16 cabines |
**Cabines (4 variantes)**
^ Élément ^ Nom interne ^ Description ^
| Cabine standard | ''celevator:car_standard'' | Cabine de base avec paroi avant vitrée |
| Cabine dos vitré | ''celevator:car_glassback'' | Paroi avant et arrière en verre |
| Cabine métal | ''celevator:car_metal'' | Parois métalliques, aspect industriel |
| Cabine métal/verre | ''celevator:car_metal_glassback'' | Métal devant, verre derrière |
**Portes**
^ Élément ^ Nom interne ^ Description ^
| Porte en verre | ''celevator:hwdoor_glass'' | Porte de palier ou de cabine, vitrée |
| Porte en métal | ''celevator:hwdoor_steel'' | Porte de palier ou de cabine, acier |
**Système de guidage et positionnement**
^ Élément ^ Nom interne ^ Description ^
| Rail de guidage | ''celevator:guide_rail'' | Rail vertical dans la gaine |
| Rail avec support | ''celevator:guide_rail_bracket'' | Rail avec fixation murale intégrée |
| Ruban de positionnement | ''celevator:tape'' | Ruban vertical de référence de position |
| Ruban avec aimants | ''celevator:tape_magnets'' | Ruban avec zones magnétiques pour précision d'arrêt |
| Ruban avec support | ''celevator:tape_bracket'' | Ruban avec fixation murale |
**Boutons et indicateurs**
^ Élément ^ Nom interne ^ Description ^
| Bouton d'appel (montée+descente) | ''celevator:callbutton_both'' | Bouton de palier double |
| Bouton d'appel montée | ''celevator:callbutton_up'' | Bouton de palier montée uniquement |
| Bouton d'appel descente | ''celevator:callbutton_down'' | Bouton de palier descente uniquement |
| Lanterne directionnelle (haut) | ''celevator:lantern_up'' | Indicateur lumineux de direction montée |
| Lanterne directionnelle (bas) | ''celevator:lantern_down'' | Indicateur lumineux de direction descente |
| Lanterne double | ''celevator:lantern_both'' | Indicateur montée et descente |
| Lanterne verticale haut/bas/double | ''celevator:lantern_vertical_*'' | Variantes orientées verticalement |
| Indicateur de position (PI) | ''celevator:pi'' | Afficheur numérique de l'étage actuel |
| PI + lanterne (pilantern) | ''celevator:pilantern_*'' | PI combiné avec lanterne directionnelle |
| Borne de destination (kiosk) | ''celevator:dbdkiosk'' | Borne de saisie de destination (dispatching avancé) |
**Sécurités et commutateurs**
^ Élément ^ Nom interne ^ Description ^
| Interrupteur pompiers phase I | ''celevator:fs1switch'' | Active le service pompiers phase I |
| Interrupteur générique | ''celevator:genericswitch'' | Interrupteur configurable pour usages divers |
**Amortisseurs de fosse**
^ Élément ^ Nom interne ^ Description ^
| Amortisseur élastomère | ''celevator:buffer_rubber'' | Amortisseur simple, rebondissant (bouncy = 60) |
| Amortisseur hydraulique | ''celevator:buffer_oil'' | Amortisseur à huile, 2 blocs de hauteur |
**Modules d'intégration**
^ Élément ^ Nom interne ^ Prérequis ^
| Module Digilines E/S | ''celevator:digilines_io'' | Mod ''digilines'' |
| Module Mesecons entrée | ''celevator:mesecons_input'' | Mod ''mesecons'' |
| Module Mesecons sortie | ''celevator:mesecons_output'' | Mod ''mesecons'' |
| Laptop (surveillance) | Via mod ''laptop'' | Mod ''laptop'' |
----
===== 2. Recettes de craft =====
Les ingrédients exacts varient selon le jeu de base installé. Si ''basic_materials'' est absent, certaines pièces (engrenage, barre acier, plastique…) sont remplacées par des équivalents plus simples (bloc d'or, bloc d'étain…). Les recettes ci-dessous utilisent les noms génériques.
**Contrôleur** (''celevator:controller'')
[ barre acier ] [ circuit intégré ] [ barre acier ]
[ barre acier ] [ circuit intégré ] [ barre acier ]
[ barre acier ] [ lingot acier ] [ barre acier ]
**Variateur de vitesse** (''celevator:drive'')
[ silicium ] [ barre acier ] [ silicium ]
[ silicium ] [ circuit IC ] [ silicium ]
[ silicium ] [ barre acier ] [ silicium ]
**Machine de treuil** (''celevator:machine'')
[ engrenage acier ] [ fil cuivre ] [ ]
[ barre acier ] [ barre acier ] [ moteur ]
[ lingot acier ] [ lingot acier ] [ lingot acier ]
**Dispatcher** (''celevator:dispatcher'')
[ barre acier ] [ circuit IC ] [ barre acier ]
[ barre acier ] [ circuit IC ] [ barre acier ]
[ barre acier ] [ barre acier ] [ barre acier ]
**Régulateur de vitesse** (''celevator:governor'')
[ barre acier ] [ barre acier ] [ bouton ]
[ barre acier ] [ engrenage acier ] [ barre acier ]
**Cabine standard** (''celevator:car_standard'')
[ lingot acier ] [ lingot acier ] [ lingot acier ]
[ bouton ] [ porte verre ] [ lingot acier ]
[ interrupteur ] [ lingot acier ] [ lingot acier ]
**Cabine dos vitré** (''celevator:car_glassback'') — remplacer le dernier lingot de la rangée 2 par du verre.
**Cabine métal** (''celevator:car_metal'') — entourer une cabine standard de barres acier :
[ ] [ barre acier ] [ ]
[ barre acier ] [ cabine standard ] [ barre acier ]
[ ] [ barre acier ] [ ]
**Porte en verre** (''celevator:hwdoor_glass'')
[ barre acier ] [ barre acier ] [ barre acier ]
[ verre ] [ barre acier ] [ verre ]
[ barre acier ] [ barre acier ] [ barre acier ]
**Porte en métal** (''celevator:hwdoor_steel'')
[ barre acier ] [ barre acier ] [ barre acier ]
[ bande acier ] [ barre acier ] [ bande acier ]
[ barre acier ] [ barre acier ] [ barre acier ]
**Rail de guidage** (''celevator:guide_rail'' ×10)
[ bande acier ] [ lingot acier ] [ bande acier ]
[ bande acier ] [ lingot acier ] [ bande acier ]
[ bande acier ] [ lingot acier ] [ bande acier ]
**Rail avec support** (''celevator:guide_rail_bracket'') — craft sans forme : rail + bande acier.
**Ruban de positionnement** (''celevator:tape'' ×15)
[ bande acier ] [ ] [ bande acier ]
[ bande acier ] [ bande acier ] [ bande acier ]
[ bande acier ] [ ] [ bande acier ]
**Ruban avec aimants** (''celevator:tape_magnets'') — craft sans forme : ruban + minerai de fer + feuille plastique.
**Ruban avec support** (''celevator:tape_bracket'') — craft sans forme : ruban + bande acier.
**Boutons d'appel**
Bouton montée+descente :
[ bande acier ] [ lightstone bleue ] [ bouton ]
[ bande acier ] [ lightstone extra ] [ ]
[ bande acier ] [ lightstone bleue ] [ bouton ]
Bouton montée seulement :
[ bande acier ] [ lightstone bleue ] [ bouton ]
[ bande acier ] [ lightstone extra ] [ ]
[ bande acier ] [ ] [ ]
Bouton descente seulement :
[ bande acier ] [ ] [ ]
[ bande acier ] [ lightstone extra ] [ ]
[ bande acier ] [ lightstone bleue ] [ bouton ]
**Lanternes directionnelles**
Lanterne montée : [ bande acier ] [ lightstone verte ]
[ bande acier ] [ lightstone extra ]
[ bande acier ] [ ]
Lanterne descente : [ bande acier ] [ ]
[ bande acier ] [ lightstone extra ]
[ bande acier ] [ lightstone rouge ]
Lanterne double : [ bande acier ] [ lightstone verte ]
[ bande acier ] [ lightstone extra ]
[ bande acier ] [ lightstone rouge ]
Les variantes verticales (''lantern_vertical_*'') s'obtiennent par **craft sans forme** à partir de la lanterne horizontale correspondante (et vice-versa).
**Indicateur de position (PI)** (''celevator:pi'')
[ bande acier ] [ lightstone extra ]
[ lightstone rouge ] [ écran LCD ]
[ bande acier ] [ lightstone extra ]
**PI + lanterne** — craft sans forme : lanterne correspondante + PI.
**Amortisseur élastomère** (''celevator:buffer_rubber'')
[ feuille plastique ] [ teinture noire ] [ feuille plastique ]
[ ] [ lingot acier ] [ ]
[ lingot acier ] [ lingot acier ] [ lingot acier ]
**Amortisseur hydraulique** (''celevator:buffer_oil'')
[ ] [ barre acier ] [ ]
[ lingot acier ] [ seau vide ] [ lingot acier ]
[ lingot acier ] [ lingot acier ] [ lingot acier ]
**Interrupteur pompiers phase I** (''celevator:fs1switch'')
[ bande acier ] [ lightstone rouge ] [ lightstone extra ]
[ bande acier ] [ interrupteur ] [ teinture rouge ]
[ bande acier ] [ ] [ ]
**Interrupteur générique** (''celevator:genericswitch'')
[ bande acier ] [ ] [ ]
[ bande acier ] [ interrupteur ] [ teinture noire ]
[ bande acier ] [ ] [ ]
**Borne de destination** (''celevator:dbdkiosk'')
[ bande acier ] [ circuit IC ] [ verre ]
[ bande acier ] [ lightstone blanc ] [ verre ]
[ bande acier ] [ ] [ verre ]
**Module Digilines** (''celevator:digilines_io'') — nécessite le mod ''digilines'' :
[ ] [ ] [ ]
[ ] [ circuit IC ] [ ]
[ fil digilines ] [ bande acier ] [ fil digilines ]
**Module Mesecons entrée / sortie** — nécessite le mod ''mesecons'' :
Entrée : [ fil mesecons ] [ bande acier ] [ bande acier ]
Sortie : [ bande acier ] [ bande acier ] [ fil mesecons ]
(rangées 1 et 2 vides, circuit IC au centre)
----
===== 3. Construire un ascenseur — guide complet =====
**Étape 1 — Creuser la gaine**
Creusez un puits vertical de **minimum 3×3 blocs** de large pour la gaine. La hauteur doit couvrir tous les étages que vous souhaitez desservir, plus la fosse en bas (au moins 2 blocs sous le premier palier) et la salle des machines en haut.
**Étape 2 — Installer les amortisseurs en fosse**
Au fond de la gaine, placez un ou deux **amortisseurs** (élastomère ou hydraulique). L'amortisseur hydraulique occupe 2 blocs de hauteur — vérifiez l'espace disponible.
**Étape 3 — Poser les rails de guidage**
Dans la gaine, placez les **rails de guidage** (''guide_rail'') en colonne verticale, un par bloc de hauteur. Utilisez la variante avec support (''guide_rail_bracket'') tous les quelques blocs pour fixer les rails au mur.
**Étape 4 — Poser le ruban de positionnement**
À côté des rails, placez le **ruban de positionnement** (''tape'') sur toute la hauteur de la gaine. Aux niveaux des paliers d'arrêt, remplacez les sections de ruban par le **ruban avec aimants** (''tape_magnets'') — c'est ce qui indique au système à quel étage il doit s'arrêter précisément.
**Étape 5 — Poser les portes de palier**
À chaque étage, installez une **porte de palier** (''hwdoor_glass'' ou ''hwdoor_steel'') dans le mur de la gaine. Les portes s'ouvrent automatiquement à l'arrivée de la cabine.
**Étape 6 — Poser les boutons d'appel**
À côté de chaque porte de palier, posez un **bouton d'appel** adapté :
* Palier intermédiaire → bouton double montée+descente (''callbutton_both'')
* Dernier palier en bas → bouton montée uniquement (''callbutton_up'')
* Dernier palier en haut → bouton descente uniquement (''callbutton_down'')
**Étape 7 — Installer la cabine**
Placez la **cabine** (''car_standard'' ou autre variante) dans la gaine, en face des rails et du ruban.
**Étape 8 — Poser le contrôleur**
Dans la salle des machines (typiquement au sommet de la gaine), posez le **contrôleur** (''celevator:controller''). Il occupe 2 blocs de hauteur — assurez-vous d'avoir l'espace. Le contrôleur doit être **orienté face à la gaine**.
Pour retirer le contrôleur, tenez la touche **Sneak** (shift) en cassant le bloc, sinon la destruction est bloquée. Ceci évite les suppressions accidentelles.
**Étape 9 — Poser le variateur (Drive)**
Le **variateur** (''celevator:drive'') se place **à côté** du contrôleur, légèrement en hauteur (au niveau du bloc supérieur du contrôleur, sur le côté). Le contrôleur détecte automatiquement le variateur adjacent à 90°.
**Étape 10 — Configurer via l'interface du contrôleur**
Frappez le contrôleur (clic gauche) pour ouvrir son panneau de configuration. L'interface permet de :
* Nommer les étages
* Régler la vitesse de déplacement (jusqu'à 20 m/s — au-delà de 7,5 m/s déconseillé en multijoueur)
* Configurer les niveaux de sécurité d'accès
* Régler les temporisateurs de portes (dwell, nudging)
* Activer les modes spéciaux (service indépendant, pompiers, inspection)
Refermez le panneau en frappant à nouveau le contrôleur.
**Étape 11 — Associer les composants**
Via l'interface du contrôleur, associez les composants posés dans la gaine : boutons d'appel, lanternes, indicateurs de position. Chaque composant doit être lié à l'ID de la cabine correspondante.
----
===== 4. Le contrôleur =====
Le contrôleur est l'élément central du système. Il dispose de :
**Indicateurs visuels**
Quand le panneau est ouvert (porte du boîtier visible), une **animation différente** s'affiche selon que la cabine est en mouvement ou à l'arrêt — c'est la LED de statut.
**Interface de configuration**
L'interface graphique donne accès à :
* L'état général de la cabine (position, vitesse, mode actuel)
* La configuration des étages (noms, accès)
* Les paramètres de vitesse et de portes
* Le diagnostic en temps réel
**Modes de service**
* **Normal** : fonctionnement standard, collectif sélectif
* **Service indépendant** : la cabine ne répond qu'aux appels internes (opérateur dédié)
* **Service pompiers phase I** : la cabine rejoint le palier de rappel et attend
* **Service pompiers phase II** : contrôle manuel depuis la cabine pour les pompiers
* **Inspection cabine** : déplacement lent depuis le toit de la cabine
* **Inspection salle machines** : déplacement lent depuis le contrôleur
**Rechargement du firmware**
La commande ''/celevator_reloadcontroller'' (privs ''server'') recharge le firmware du contrôleur depuis le disque sans redémarrer le serveur — utile pour le développement ou le débogage.
----
===== 5. Modes de fonctionnement avancés =====
**Dispatching de groupe**
Le **dispatcher** (''celevator:dispatcher'') gère un groupe de jusqu'à **16 cabines** avec un algorithme de dispatching par ETA (Estimated Time of Arrival) réel. Les boutons d'appel sont partagés entre toutes les cabines du groupe.
Pour activer le mode groupe : associez un dispatcher aux contrôleurs concernés via leurs interfaces respectives.
**Dispatching par destination (DBD)**
La **borne de destination** (''celevator:dbdkiosk'') permet aux passagers de saisir leur étage de destination avant de monter dans la cabine. Le système assigne alors la cabine optimale. Nécessite le mode dispatching de groupe.
**Mode swing**
Une cabine en mode swing alterne entre le service du groupe et le service individuel selon la charge et l'heure. Configurable depuis l'interface du contrôleur.
**Intégration mView**
Si le mod ''laptop'' est installé, le logiciel **mView** de surveillance à distance est disponible. Il permet de monitorer l'état de toutes les cabines depuis n'importe où dans le monde.
----
===== 6. Intégrations optionnelles =====
**Mesecons**
Le **module d'entrée Mesecons** (''celevator:mesecons_input'') permet de déclencher des actions sur le contrôleur (appel de cabine, changement de mode) à partir de signaux Mesecons.
Le **module de sortie Mesecons** (''celevator:mesecons_output'') émet un signal Mesecons en fonction d'événements de l'ascenseur (arrivée à un étage, ouverture de porte…).
**Digilines**
Le **module Digilines** (''celevator:digilines_io'') permet la communication bidirectionnelle avec des Luacontrollers via le réseau Digilines. Exemples d'usage : afficher l'étage courant sur un écran externe, déclencher une action à l'arrivée d'une cabine.
**xcompat**
Si le mod ''xcompat'' est installé, les recettes s'adaptent automatiquement aux ingrédients de n'importe quel jeu de base supporté.
**basic_materials**
Si installé, les recettes utilisent des composants plus réalistes : barres acier, bandes acier, circuit intégré, moteur, fil de cuivre, feuille plastique, silicium.
----
===== 7. Commandes de chat =====
^ Commande ^ Paramètres ^ Description ^
| ''/carcall'' | '' '' | Envoie un appel interne à la cabine spécifiée |
| ''/upcall'' | '' '' | Envoie un appel de palier montée |
| ''/downcall'' | '' '' | Envoie un appel de palier descente |
| ''/elevstatus'' | '''' | Affiche l'état actuel de la cabine (position, vitesse, mode) |
| ''/celevator_reloadcontroller'' | aucun | Recharge le firmware (privs ''server'' requis) |
L'**ID cabine** est un numéro attribué automatiquement à la pose du contrôleur. Il est visible dans l'interface du contrôleur et dans l'infotext du bloc.
----
===== 8. Conseils et problèmes courants =====
**Le contrôleur ne détecte pas le variateur**
Le variateur doit être placé exactement **à côté et légèrement en hauteur** du contrôleur, à 90° par rapport à sa face avant. Vérifiez l'orientation du contrôleur (la face avant doit faire face à la gaine) et repositionnez le variateur si besoin.
**La cabine ne s'arrête pas précisément aux étages**
Vérifiez que le **ruban avec aimants** (''tape_magnets'') est bien posé au niveau exact de chaque palier d'arrêt. Sans aimants, la cabine ne peut pas détecter la zone de nivellement (DZ) et s'arrête approximativement.
**Les portes ne s'ouvrent pas**
Vérifiez que les portes de palier sont bien associées à la bonne cabine dans l'interface du contrôleur. Vérifiez aussi que la cabine est bien alignée avec la porte (positionnement vertical correct).
**Vitesse déconseillée en multijoueur**
Au-delà de 7,5 m/s, la synchronisation entre clients peut causer des problèmes visuels ou de positionnement. Limitez la vitesse à 7,5 m/s maximum pour un serveur multijoueur.
**Impossible de retirer le contrôleur**
Maintenez la touche **Sneak** (shift) tout en cassant le contrôleur. Cette protection empêche les suppressions accidentelles.
**Consulter le manuel complet**
Le dépôt contient un manuel PDF complet (''docs/celevator_controller_manual.pdf'') couvrant en détail l'installation, la configuration, et les procédures de service.