Salut les gens !
Aujourd’hui je vous présente une astuce différente de celles de d’habitude, puisqu’il va plus s’agir de l’exposition d’un concept que d’un tutoriel. En effet, nous allons ensemble jeter à un œil au fonctionnement d’un certain type de système : les systèmes en "One command", ou en "une commande" pour les anglophobes.
Pour ceux qui ne connaissent pas le principe, le voici : le but est de ne copier qu’une seule et unique commande (extrêmement longue dans la plupart des cas) pour la coller dans un , avant d’activez celui-ci. Et alors, une machine va s’assembler seule, entièrement, et va vous permettre de profiter des fonctionnalités qu’elle propose, le tout sans véritable "effort" de votre part.
Il existe plusieurs types de machines formées en une seule commande. Voici en outre les formats que l’on retrouve le plus souvent :
1 ) Les machines ressemblant plus à un système redstone classique qu’à autre chose, avec des commands_blocks jouxtant , et autres , le tout disposé sans recherche d’une structure particulière :
2) Les machines en longueur, à l’horizontale ou à la verticale, qui se présentent sous la forme d’une grande MEGA-CLOCK (pour rappel, une MEGA-CLOCK est l’horloge la plus rapide du jeu, formée avec deux command_blocks et un redstone_block entre le deux, qui envoie 20 impulsions par seconde) :
3) Les "boxs", ou "boîte" en français, qui se subdivisent elles-mêmes en deux catégories : d’une part, celles formées avec des , et d’autres part, celles formées avec des . Au sein de ces catégories, on a ensuite deux cas de figure : on peut soit trouver une grande MEGA-CLOCK entourée de parois, soit une grande MEGA-CLOCK couplée avec une bande de redstone_blocks simple, qui permet une exécution unique d’une série de commandes, et le tout entouré de parois.
Nous allons nous intéresser au format de box le plus courant (et le plus complexe, accessoirement), à savoir celui créé avec des FallingSands, et qui donne une MEGA-CLOCK assortie d’une bande de blocs de redstone simples. Voici la box sur laquelle nous allons nous baser :
C’est dans ces fameux FallingSands que va résider toute la mécanique du concept. En effet, comme vous le savez surement, quand il tombe, un ou de est considéré comme une entité : un "FallingSand". Et ce n’est que quand elle va rencontrer une surface (le sol) que cette entité va se changer en bloc.
C’est cette propriété qui est exploitée dans la majorité des One Commands : on va modifier l’entité que constitue le FallingSand en train de chuter en lui donnant l’ID d’un autre bloc avec des propriétés particulières. Voici un extrait de ce qu’on va trouver le plus souvent dans les One Commands de box à FallingSands, qui se répète à une fréquence très élevée dans celles-ci :
Riding:{id:FallingSand,Block:command_block,Time:1,TileEntityData:{Command:say poussin mauve}}
Pour faire simple, le tag "
Riding" est là parce que dans notre exemple, une entité inconnue "chevauche" une autre entité. La nature de cette dernière est précisée aussitôt après, avec l’information : "
id:FallingSand". Ce FallingSand est en outre un "command_block" (
Block:command_block) et possède le tag "
Time:1" pour ne pas dispawner dès son apparition (rappelons qu’il n’est pas encore considéré comme un bloc). Et comme un bloc de commande peut être amené à voir ses propriétés modifiées, le tag "
TileEntityData" est là pour y insérer une commande "
TileEntityData:{Command:say poussin mauve}". Donc si on écrit :
/summon FallingSand ~ ~2 ~ {Block:redstone_block,Time:1,Riding:{id:FallingSand,Block:command_block,Time:1,TileEntityData:{Command:say poussin mauve}}}
… et qu’on décortique la syntaxe, on va voir qu’une fois activée, cette commande va faire apparaître un FallingSand avec les attributs et l’apparence d’un bloc de redstone (partie jaune), qui "chevauchera" un autre FallingSand (celui que nous venons tout juste de voir).
Si vous collez cette commande dans un command_block et que vous l’alimentez, par exemple avec un , voilà ce qu’il va se passer : une petite colonne ressemblant à un bloc de redstone au-dessus d’un bloc de commande va chuter sur le bloc que vous venez d’alimenter. Et là, très vite, le bloc de commande va prendre une apparence plus "dure" en se changeant en bloc, puis à son tour, le bloc de redstone va faire de même. Et de cette façon, il va activer le bloc de commande qui se trouve juste en dessous de lui, et les mots "poussin mauve" vont s’afficher dans le tchat. C’est
exactement cette mécanique qui va être exploitée dans les One Commands.
Pour utiliser celles-ci, c’est toujours la même procédure qu’il faut suivre : d’abord, on doit se donner un bloc de commande avec l’instruction suivante :
/give @p command_block
Puis on pose le command_block, et on y colle la One command. On valide, et pour finir, on active le command_block avec un , un , un , une , ou autre. A ce moment-là, dans le cas de figure que nous étudions en ce moment, une longue colonne devrait apparaître :
Sur cette image, on voit que les blocs de la partie inférieure en sont
bel et bien. Mais au-dessus de l’espèce de vide qu’on voit au centre, ce sont des entités amenées à se changer en blocs qui sont présentes (si on regarde attentivement, on peut se rendre compte qu’elles sont légèrement plus petites que des blocs véritables). On aperçoit tout en haut un bloc de redstone qui va bientôt activer le bloc de commande juste en dessous de lui, de la même façon que dans notre exemple du "poussin mauve". Ce bloc contient dans la totalité des cas une instruction en , qui va créer une longue ligne de blocs de redstone… et ainsi alimenter la totalité de la colonne, du bas vers le haut. L’avant-dernier bloc de la colonne, le dernier à être alimenté, va quant à lui éliminer toute ceci en remplissant la zone avec de l’air grâce à un autre /fill.
L’illustration suivante constitue un "arrêt sur image" juste avant que la colonne ne disparaisse.
Cette première colonne est celle qui va créer la structure de la box, parfois fixer des panneaux sur une de ces faces, et enfin poser le premier bloc de commande du système (au-dessus du bloc bleu sur la screen ci-dessous) qui va prendre le relais et créer toute la partie fonctionnelle de la machine (du moins, si on part du principe qu’une bande de bloc de redstone est disponible ; sinon, c’est la colonne ci-dessus qui jouera ce rôle).
Cette screen est un autre "arrêt sur image", où j’ai réalisé une coupe dans la box pour en voir l’intérieur. La colonne la plus grande est la première à être apparue (et est encore en cours de formation, comme toutes les autres). Le deuxième bloc en partant du bas matérialise la colonne du milieu, et le premier bloc de celle-ci fait de même pour celle tout à gauche, et ainsi de suite pour les 6 colonnes (sur les 2 faces du rectangle de redstone_blocks, ce qui fait 6 emplacements). Elles sont appuyées contre des blocs de redstone simples, qui ne donneront lieu qu’à une seule activation de chaque bloc de commande. L’utilisation de ceux-ci se fait surtout pour ajouter les objectifs liés à la commande , pour construire la MEGA-CLOCK centrale et pour créer les entrailles de la machine.
Sur cette image, on peut voir ces fameuses "entrailles", au-dessus des blocs de jaune. La partie que nous venons tout juste de voir correspond aux blocs de laine rouge, et les command_blocks au-dessus du bloc bleu constituent ensemble la MEGA-CLOCK qui va activer 20 fois par seconde le groupe de command_blocks le plus imposant (elle est visible en gros plan ci-dessous, dans la partie horizontale de l’espèce de "T" à l’envers).
Et pour terminer, concernant l’utilisation de la machine, on va retrouver dans la majorité des cas 3 sur la face avant de la box :
Parmi ces panneaux, on va souvent rencontrer celui qui va donner la liste des crafts éventuels, ou qui va livrer des items spécifiques au joueur le plus proche en lui en fixant un score particulier (ce ne sont que des exemples, il existe très certainement d’autres possibilités). On peut encore avoir le panneau de "signature", avec le nom de la machine et le pseudo de l’auteur, ou même le panneau de "destruction", qui va faire disparaître la machine et, au mieux, supprimer également les objectifs. Mais bien sûr, tout ceci est non seulement variable, mais aussi, optionnel.
Bref ! Voilà pour ces explications sur les "One commands". J’espère que vous comprendrez un peu mieux les mécaniques qui se mettent en place quand vous vous servirez d’une de ces longues commandes !
Si vous souhaitez vous-même tenter l’aventure, sachez qu’elles doivent être au maximum de 32 767 caractères (parce qu’au-delà, le jeu crashe, donc mieux vaut prévenir que guérir). Sur ces bonnes paroles, bon jeu les gens !
"One command" : approche théorique :