1 votes

Minecraft : Utilisation des états des blocs dans les tags du datapack

J'ai un pack de données qui utilise un tailleur de pierre pour casser automatiquement le bloc qui se trouve au-dessus de lui. toujours on, ce qui signifie que le seul moyen de l'arrêter est de casser le bloc lui-même.

Ayant appris récemment (c'est-à-dire la veille de la rédaction de cet article) à utiliser le dossier "tags", j'ai supposé que je pouvais créer une liste d'éléments comme suit ;

{
  "values": [
    "minecraft:redstone_torch[lit=true]",
    "minecraft:lever[powered=true]",
    "minecraft:redstone_block"
  ]
}

Que j'utiliserais ensuite comme execute as @e[tag=grindcutter] at @s if block ~ ~-1 ~ #powered run tag @s add powered

Cependant, le filtre # n'est pas apparu dans le jeu. Après avoir comparé le fichier avec un autre filtre fonctionnel, j'ai expérimentalement supprimé les états de blocage du levier et de la torche, ce qui a fait apparaître le filtre dans le jeu. Maintenant, la raison pour laquelle je voulais cela était que je pouvais placer un levier sous le tailleur de pierre, puis lorsque je voulais désactiver l'auto-casseur, je pouvais simplement alimenter le levier.

Je sais que je pourrais utiliser quelque chose comme execute as @e[tag=grindcutter] at @s if block ~ ~-1 ~ lever[powered=true] run tag @s add powered Mais ensuite, si je voulais automatiser le processus dans le jeu, je devrais ajouter des doublons de ce code exact pour chaque cas limite, puis si dans le futur je voulais ajouter ou supprimer plus d'options, je devrais changer le code lui-même au lieu d'une ligne de mot dans un fichier de balises.

Quand j'ai regardé sur le Le wiki de Minecraft tout ce qu'il avait à dire était ;

Balises de bloc Les balises de bloc peuvent être appelées lors du test des arguments de bloc dans les commandes avec #(resource location), qui réussit si le bloc correspond à l'un des blocs spécifiés dans la balise.

Quand j'ai cherché à savoir si quelqu'un d'autre avait rencontré le même problème, j'ai vu un post reddit ce qui suggère que la fonction a été supprimée du jeu.

Peut-être que j'ai raté quelque chose et qu'il existe un moyen facile de spécifier les états de bloc dans une balise de paquet de données, ou je dois juste supporter mon dégoût personnel et utiliser plusieurs lignes de code en double. Quoi qu'il en soit, toute aide sera appréciée !

1voto

Accorwolf Points 101

Je réponds à cette question pour tous ceux qui ont rencontré le même problème.

Bien que vous ne puissiez pas utiliser les états de bloc dans le paquet de données, vous pouvez les utiliser sur le filtre. Autrement dit, dans le fichier json des balises, cela ressemblerait à ceci ;

{
  "values": [
    "minecraft:redstone_torch",
    "minecraft:lever",
    "minecraft:redstone_block"
  ]
}

Ensuite, dans la commande, vous utiliserez l'état de blocage du filtre, donc vous utiliserez execute if block ~ ~-1 ~ #powered[lit=true] run tag @s add powered pour la redstone, c'est moins utile car certains des états des blocs sont différents, mais pour les blocs immergés, c'est beaucoup plus utile.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X