Redstone Alchimie Alternative

Jadoremario

MineTesteur/MineBuilder :3
10 Août 2011
356
32
135
24
Bonjour à tous ! Je vais vous présenter un système que j'ai fais moi-même et que je n'ai vu nul part ailleurs, il s'agit d'une "Alchimie Alternative". Qu'est-ce que j'entend par là ? Et bien si vous vous rappelez bien, en Bêta Pré-1.9 (la mise à jour de avant la 1.0.0, celle qui annonça l'alchimie et l'enchantement), les potions ne se fabriquaient pas dans des stands d'alchimie mais dans un chaudron ; et bien c'est ce que vous allez pouvoir faire, en personnalisant vos propres craft et votre propre arbre d'alchimie.
Le système est vraiment compact puisqu'il fonctionne sous forme de module qui font chacun un de large et sont stackable côte à côte.

Prérequis : Un objectif de type dummy nommé "ObjetActif".
/scoreboard objectives add ObjetActif dummy
Dans un premier temps, il va vous falloir créer la première ligne, celle qui permet de faire fonctionner la machine.
1411845381-2014-09-27-21-12-39.png
Commencez par recréer cette ligne en suivant le screen ci-dessus, et remplissez-le comme indiqué ci-dessous.
1- /fill ~ ~-1 ~ ~X ~-1 ~Z minecraft:redstone_block
2- /fill ~ ~1 ~ ~X ~1 ~Z minecraft:air
Pour ceux qui auront reconnu, il s'agit d'une clock ultra-rapide (c'est-à-dire que les blocs de commandes qui toucheront les blocs de redstone générés seront mis à jour 20 fois par seconde). X et Z sont à varier selon l'orientation de votre ligne, je ne peux que vous conseiller de faire un test (cependant, vous mettez une valeur soit pour X, soit pour Z, pas les deux à la fois, et faut que ce soit pareil pour les deux commandes). La valeur que vous mettez dépendra du nombre de craft que vous souhaitez faire, je vous conseille de mettre 5 pour commencer. Puis positionnez un bloc de redstone entre les deux blocs de commande, et voyez si vous pouvez détruire la ligne ; si elle se reconstruit immédiatement, c'est bon !

3- /testfor @e[type=Squid,name=Alchimie_Alternative]
4- /kill @e[type=Squid,name=Alchimie_Alternative]
Il s'agit ici de tester si un Poulpe possède le nom "Alchimie_Alternative", pour ensuite le tuer un dixième de seconde plus tard, afin d'éviter d'avoir à faire avec plusieurs poulpes à la fois.

5- /execute @e[type=Squid,name=Alchimie_Alternative] ~ ~ ~ detect ~ ~-1 ~ minecraft:cauldron 0 summon ArmorStand ~ ~-2.2 ~ {NoGravity:1,Invisible:1,Equipment:[{},{},{},{},{id:minecraft:wool,Damage:15s}],CustomNameVisible:1,CustomName:Chaudron_Vide}
Alors en gros : à tous les poulpes nommés "Alchimie_Alternative" (@e[type=Squid,name=Alchimie_Alternative]), on demande de vérifier s'il y a juste en dessous un chaudron vide (detect ~ ~-1 ~ minecraft:cauldron 0) et si c'est le cas, ça lance la commande qui suit (summon). Cela fait apparaîte un stand d'armure enfoncé dans le sol ( ~ ~-2.2 ~ ) qui ne craint pas la gravité et qui est invisible (NoGravity:1,Invisible:1). Il a un nom visible "Chaudron_Vide" et a sur sa tête une laine noire (Equipment:[{},{},{},{},{id:minecraft:wool,Damage:15s}]).
Ce que ça fait, c'est que dès que la machine est en place et détecte un poulpe avec un certain nom au dessus d'un chaudron vide, alors ça invoque un stand d'armure. Voici à quoi ça ressemble :
1411852221-2014-09-27-23-09-51.png
Cependant, le problème, c'est que comme ça invoque en boucle tant qu'il y a un poulpe qui n'est tué que un dixième de seconde plus tard, ça risque d'invoquer plusieurs stand d'armures. D'un point de vue technique ce n'est pas ça qui fera buguer le système mais le fond du texte flottant sera plus opaque et moins esthétique je trouve. Du coup pour contrebalancer ce problème on a ça :
6- /kill @e[type=ArmorStand,name=Chaudron_Vide,c=2]
Quand ça tue le poulpe, ça tue aussi un certain nombre de stand d'armures (c=2) qui sont en doublon. Il se peut que vous deviez augmenter ou réduire ce nombre. Encore une fois, faites des tests !

Maintenant que vous avez la ligne de base, voici un module, qu'il vous faudra reproduire à chaque fois que vous souhaitez rajouter un craft.
1411852776-2014-09-27-23-16-35.png
Premièrement, le trou entre les blocs de commande 1, 2, 5 et 6 se situe au niveau des blocs de redstone générés par les blocs 1 et 2 du screen précédent.
Nous allons prendre l'exemple où nous balancerons à proximité du chaudron un seau d'eau qui disparaîtra et transformera le chaudron vide en un chaudron d'eau courante.
1- /scoreboard players set @e[type=Item] ObjetActif 0 {Item:{id:minecraft:water_bucket}}
Dans un premier temps, nous donnons la valeur 0 aux objets qui sont des seaux d'eau (Item:{id:minecraft:water_bucket}). En rajoutant des crafts, vous allez devoir augmenter la valeur de 0 afin que chaque objet qui serve pour le craft ait son propre numéro.

2- /execute @e[type=ArmorStand,name=Chaudron_Vide] ~ ~1 ~ testfor @e[type=Item,score_ObjetActif_min=0,score_ObjetActif=0,r=1]
Nous cherchons un seau d'eau grâce au bloc de commande précédent (score_ObjetActif_min=0,score_ObjetActif=0) à proximité (r=1) du chaudron vide. Comme il est impossible de faire exécuter une commande à un bloc autre qu'un bloc de commande, nous utilisons l'intermédiaire du stand d'amure nommé Chaudron_Vide (@e[type=ArmorStand,name=Chaudron_Vide]).

3- /execute @e[type=Item,score_ObjetActif_min=0,score_ObjetActif=0] ~ ~-1 ~ entitydata @e[type=ArmorStand,name=Chaudron_Vide,r=1] {CustomName:Eau_Courante,Equipment:[{},{},{},{},{id:minecraft:wool,Damage:11s,tag:{ench:[{id:0,lvl:1}]}}]}
A partir du seau d'eau précédemment repéré, nous allons changer les propriétés du stand d'armure en modifiant son nom (CustomName:Eau_Courante) et son apparence (ici, j'utilise une laine bleue foncée auquel j'ai mis un enchantement factice pour faire un effet de mouvement sur le bloc et simuler de l'eau (tag:{ench:[{id:0,lvl:1}]})).

4- /kill @e[type=Item,score_ObjetActif_min=0,score_ObjetActif=0]
Au final, on détruit l'objet qui a permis de modifier le stand d'armure et par extension le chaudron, puisqu'il a été "utilisé".

Avant de nous attaquer à la deuxième partie de la ligne, je vous propose de vous expliquer ce qu'il vous faudra modifier à chaque nouvelle recette.
Dans le 1-, il vous faut modifier le 0 pour l'incrémenter à chaque fois, et le "minecraft:water_bucket" en fonction de l'objet que vous souhaitez utiliser.
Dans le 2-, il vous faut modifier le nom du stand d'armure (dans cet exemple c'est "Chaudron_Vide"). Si par exemple, après avoir un chaudron plein d'eau courante, on voudrait le transformer en autre chose, on remplacerait "Chaudron_Vide" par "Eau_Courante" (en somme, ce que vous avez mis dans le 3-). Il faut également modifier dans le testfor les deux 0 par la valeur que vous avez indiqué dans le 1-.
Dans le 3-, il faut modifier le "CustomName:Eau_Courante" par le nom que vous souhaitez donner, et dans "@e[type=Item,score_ObjetActif_min=0,score_ObjetActif=0]", il faut modifier le 0 par la valeur dans le 1-. Enfin, il vous faut changer le "id:minecraft:wool,Damage:11s,tag:{ench:[{id:0,lvl:1}]}" selon le bloc que vous souhaitez mettre dans le chaudron.
Enfin, dans le 4-, il faut modifier les 0 par la valeur du 1-.

Maintenant, place à la deuxième partie, qui permettra d'extraire le contenu du chaudron dans une potion.
5- /scoreboard players set @e[type=Item] ObjetActif -1 {Item:{id:minecraft:glass_bottle}}
Il s'agit ici de donner aux bouteilles qui sont au sol le score "-1", selon la même logique que le bloc de commande 1-. A savoir : lorsque vous rajoutez des modules, il n'est pas nécessaire de rajouter à nouveau ce bloc de commande.

6- /execute @e[type=ArmorStand,name=Eau_Courante] ~ ~1 ~ testfor @e[type=Item,score_ObjetActif_min=-1,score_ObjetActif=-1,r=1]
Comme dans le 2-, cela cherche les bouteilles vides à proximité du chaudron.

7- /execute @e[type=Item,score_ObjetActif_min=-1,score_ObjetActif=-1] ~ ~-1 ~ entitydata @e[type=ArmorStand,name=Eau_Courante,r=1] {CustomName:Chaudron_Vide,Equipment:[{},{},{},{},{id:minecraft:wool,Damage:15s}]}
Il s'agit ici de retransformer le chaudron qui contenait ici de l' "Eau_Courante" en un "Chaudron_Vide" et avec l'aspect qui lui est associé.

8- /execute @e[type=Item,score_ObjetActif_min=-1,score_ObjetActif=-1] ~ ~ ~ entitydata @e[type=Item,score_ObjetActif_min=-1,score_ObjetActif=-1] {Item:{id:minecraft:potion,tag:{display:{Name:Eau Courante}}}}
Là, il s'agit de remplacer la bouteille vide au sol par une potion nommée "Eau Courante" et qui n'a pas d'effets particuliers. En gros, c'est ce qui remplacera la bouteille vide jetée au sol, à vous de voir ce que vous voulez mettre.

9- /scoreboard players reset @e[type=Item,score_ObjetActif_min=-1,score_ObjetActif=-1]
Au final, l'objet au sol perd son score afin d'éviter une querellation avec le 6-.

Pour rajouter un module, il faut faire les modifications suivantes :
Pour le 5-, ce n'est pas la peine de remettre un bloc de commande.
Pour le 6-, il vous faut changer le "Eau_Courante" par le nom du chaudron que vous souhaitez retransformer en bouteille.
Pour le 7-, il n'y a besoin de rien changer.
Pour le 8-, il vous faut modifier le "{Item:{id:minecraft:potion,tag:{display:{Name:Eau Courante}}}}" en fonction de ce que vous souhaitez donner au joueur une fois qu'il a jetée la bouteille d'eau vide.
Pour le 9-, ne changez rien.

Voilà, votre système est prêt ; vérifiez que vos blocs de redstone se remettent toujours quand vous les cassez, puis poser un chaudron (le bloc) au sol. Donnez-vous un oeuf de poulpe spécial :
/give @p minecraft:spawn_egg 1 94 {display:{Name:Alchimie_Alternative}}
Et enfin, utilisez l'oeuf sur la face supérieure du chaudron afin que le poulpe se situe au dessus du chaudron. Ca y est, votre chaudron est opérationnel ! Faites la même manipulation pour chacun de vos chaudrons, et vous êtes partis pour une longue carrière d'alchimie alternative, bonne chance !
Si vous n'avez pas compris un certain point ou que vous rencontrez un problème, ou que vous souhaitez donner votre avis, n'hésitez pas à commenter ce sujet !
 
  • J'aime
Reactions: Aron et Jukeboy60