TwinXeon by Renaudet
/Accueil/Tous les articles
Tutoriel : autoriser la refonte des items dans Minecraft 1.8.x
Ce troisième tutoriel utilise des commandes avancées pour illustrer la puissance des blocs de commande dans Minecraft 1.8.x.
Ce tutoriel se propose de vous faire réaliser un four qui, en plus de conserver ses caractéristiques de four normal, vous permettra de faire refondre un item pour en récupérer ses matériaux !

Dans le tutoriel, je me limite à la refonte des pièces d'armure en fer, pour obtenir en retour des lingots, soit 8 pour le plastron, 7 pour les jambières, 5 pour le casque et 4 pour les bottes. Il ne tient qu'aux concepteurs de Map de permettre davantage de combinaisons : refonte des seaux et autres outils, barreaux et portes etc.

Etape 1 : initialisation

Le mécanisme proposé ne fonctionne que pour un four donné.
Posez un four quelque part et notez ses coordonnées. Il s'agit de x=1075, y=4, z=1004 dans mon cas


Dans une fosse à proximité du four, créez une horloge. J'utilise souvent une horloge à deux entonnoirs connectés l'un sur l'autre, avec un item qui s'échange de l'un vers l'autre, comme ceci :




Ajoutez un comparateur et un répéteur de manière à envoyer un signal fort vers notre premier bloc de commande.



Enfin, créez une dérivation à N branches en sortie de répéteur. Comme il y aura 4 pièces d'armure, je créé une dérivation à 4 branches :




Etape 2 : détection des conditions d'activation

Nous détectons la présence de la pièce d'armure dans le slot du haut du four au moyen de la commande testforblock. Cette commande nous permet de détecter du même coup la présence d'un comburant spécifique.
Ici, je décide qu'il faut un morceau de charbon entier pour fondre une pièce d'armure. Je détecte donc également la présence simultanée de charbon dans le slot du bas :

Commande :
testforblock 1075 4 1004 minecraft:furnace 2 {Items:[0:{id:minecraft:iron_chestplate,Slot:0b,Count:1b,Damage:0s},1:{id:minecraft:coal,Slot:1b,Count:1b,Damage:0s}]}

Note: le chiffre 2 situé juste après minecraft:furnace dépend de l'orientation de votre four par rapport au bloc de commande. Selon cette orientation, il faudra mettre 1, 2, 3 ou 4. La zone 'Résultat de la dernère commande' du bloc vous aidera à trouver le bonne valeur.

Notez également la notation post-fixée de certaines valeurs. Il ne faudra pas omettre les 'b' ou 's' après la valeur d'index de slot, la valeur de quantité ou celle de dommage.

Il faut un bloc de commande spécifique par type d'objet que l'on souhaite faire fondre. Je place donc un tel bloc de commande à chacune des sorties de la dérivation, en prenant soin d'adapter l'id de l'item attendu: iron_chestplate, iron_leggings, iron_helmet et enfin iron_boots.




Comme les blocs de commande sont de type test, il faut placer en sortie un comparateur et relier celui-ci à une torche de redstone placée sur un côté du bloc de commande. J'en profite pour poser provisoirement une pancarte sur chaque bloc de commande pour rappeler le type d'item concerné par la sortie de dérivation. Cela peut vite devenir indispensable dès lors que l'on souhaite pouvoir faire fondre un grand nombre d'item différents.



Voici au final à quoi ressemble le circuit à ce stade :




Etape 3 : organiser l'animation de l'opération de refonte

N'oublions pas que le four de base ne sait pas quoi faire de notre armure. Par conséquent, la combinaison armure + charbon ne fait rien. Il nous appartient de préciser au four ce qu'il doit faire.

Notre première action en cas de détection de la combinaison charbon + pièce d'armure est de gérer la progression de la combustion du charbon et celle de la fonte de la pièce d'armure en agissant sur les tags NBT du four.

Premièrement, retirer le morceau de charbon (il est consommé par la combustion).

Deuxièmement, initialiser les durées requise et restante pour la combustion.

Ensuite, gérer à l'aide de blocs de commande et de lignes à retard (répéteurs réglés sur 4 ticks) la barre de progression de fusion dans le four. Pour une animation fluide et proche de celle du four classique, il faudrait utiliser les scoreboards et une horloge plus rapide, ce qui complexifie beaucoup le mécanisme. J'ai trouvé un compromis en utilisant 5 blocs et quatre lignes à retard. Ce n'est pas parfait, mais le joueur perçoit bien l'animation.

Placez donc, sur chaque ligne, des blocs de commande et des répéteurs comme suit :




Pas de panique ! de gauche à droite, les commandes sont donc :

replaceitem block 1075 4 1004 slot.container.1 air 1 (suppression du morceau de charbon situé dans le slot du bas)
blockdata 1075 4 1004 {CookTimeTotal:200s,CookTime:0s,BurnTime:200s} (initialisation du temps de cuisson)
blockdata 1075 4 1004 {CookTime:50s,BurnTime:150s}

blockdata 1075 4 1004 {CookTime:100s,BurnTime:100s}

blockdata 1075 4 1004 {CookTime:150s,BurnTime:50s}

blockdata 1075 4 1004 {CookTime:200s,BurnTime:0s} (BurnTime = 0 : c'est cuit !)

Les répéteurs placés par paires entre les blocs de commande blockdata sont tous réglés à 4 ticks.


Etape 4 : présenter le résultat de la refonte

Maintenant que tout notre charbon a été utilisé, il est temps de présenter le résultat de la refonte, à savoir :

- la pièce d'armure doit disparaître de son slot d'origine
- un résultat de refonte, sous forme d'un stack de lingots de fer, doit apparaître dans le slot de résultat

Placez une dérivation à deux branches en sortie du dernier répéteur et 2 blocs de commande (un par voie). Les commandes sont (ordre indifférent) :

replaceitem block 1075 4 1004 slot.container.2 iron_ingot 8 (place 8 lingots dans le slot résultat. A adapter en fonction de la pièce d'armure fondue)
replaceitem block 1075 4 1004 slot.container.0 air 1  (retire la pièce d'armure située dans le slot du haut)
Ce qui donne pour la ligne de refonte du plastron :



Notez que dans ce tutoriel, la ligne entière sera dupliquée pour chaque type d'objet à fondre. Il est possible d'optimiser le mécanisme en mettant en commun certaines actions (animation de la fonte, suppression du morceau de charbon et de la pièce d'armure), mais ceci utiliserai soit des scoreboards, soit de nombreuses portes logiques, ce qui, au final rend le circuit tout aussi compliqué.

Je préfère mettre au point correctement ma première ligne de fonte (ici le plastron), puis dupliquer toute la ligne en adaptant les valeurs si besoin pour les autres voies.

Voici le schéma final pour les quatre pièces d'armure :



soit un total de 36 blocs de commande, 4 comparateurs et 44 répéteurs.

On peut agrémenter l'animation de la fonte en ajoutant à côté de chaque bloc de commande blockdata un bloc de commande particle.

Etape 5 : tests

Il ne reste plus qu'à tester notre four avancé en activant l'horloge à entonnoirs (placer un item dans l'un des slots de l'un des entonnoirs), puis en plaçant un morceau de charbon et une pièce d'armure dans le four :




Notez sur cette copie d'écran les particules de fumée qui ajoutent un air réaliste à l'animation


Et voilà 8 lingots tout neuf !

Ce tutoriel est maintenant terminé. Amusez-vous bien avec ce four à refondre les items ne nécessitant aucun mod ! Vous pouvez l'adapter pour proposer la transformation de nombreux items, voir pour proposer des crafts complémentaires. Exemple : un seau de lave et un ou plusieurs bâtons de blaze pour créer directement une épée en diamant incassable etc.

Note: pour le gameplay, je pense qu'il est préférable que le gain en terme de lingots soit inférieur au coût de création de l'item à refondre. Par exemple 7 lingots au lieu de 8 pour le plastron, 4 au lieu de 5 pour le casque, etc.

Démonstration en vidéo :


Ajoutez votre commentaire :
  Votre pseudo :
  Votre adresse mail (obligatoire):
  Votre commentaire :
 
Site optimisé pour un affichage en 800x600 sous Firefox 8.x - ©Copyright 2011-2012 by Nicolas Renaudet