CommandBlock Display block et execute if

Tisonquichante

Aventurier
20 Juin 2024
2
0
1
27
Bonjour !
Je suis actuellement avec un phénomène tout con, j'ai un levier :
1718887903931.png

(ô qu'il est beau, n'est-ce pas ?)
Quand il est activé, un command block en repeat le détecte, et spawn un display block qui progresse vers le levier via un data merge, et quand il est désactivé, un data merge qui fait que la racine va dans l'autre sens.
1718888567797.png

HORS DONC !
C'est cool. Je peux faire mumuse avec le levier qui recule / avance. Mais dans l'idéal, quand même, c'est de pouvoir détecter quand le bout de bois est au bout, pour faire un /setblock levier poweredfalse, et simuler le fait que la racine ai éteint le levier.
Mais le data merge change le visuel, pas la position même de l'entitée, je ne peux donc pas tester les coordonnées de mon entité. Est-ce qu'il y a un moyen de tester la fin d'une interpolation ? Ou alors je vais être contraint de faire des tp en boucle jusqu'à ce que ça atteigne les coordonnées que je souhaite ?
 

Nuts101

Architecte en herbe
4 Juin 2018
101
1
20
130
Salut,
Il faut juste que tu replace les 3 valeurs du scales pour qu'elles correspondent au scale MAX de ton display (data get entity pour les voirs)
/execute if entity @e[type=block_display,nbt={transformation:{scale:[0f,0f,0f]}}]
 

Tisonquichante

Aventurier
20 Juin 2024
2
0
1
27
Salut,
Il faut juste que tu replace les 3 valeurs du scales pour qu'elles correspondent au scale MAX de ton display (data get entity pour les voirs)
/execute if entity @e[type=block_display,nbt={transformation:{scale:[0f,0f,0f]}}]
Hello !

ça me permet effectivement de détecter si mon "hologramme" est dans son état 1 ou 2 MAIS, c'est pas ce qui m'intéresse. Je veux savoir quand est-ce qu'il a terminé son animation !
J'ai légèrement changé la commande que tu m'as donné pour un
Code:
/execute if entity @e[type=minecraft:block_display,limit=1,distance=..50,tag=Racine_Levier,nbt={transformation:{translation:[0f,0f,1.7f]}}] run tellraw Tisonquichante "test"
Puisque quand j'active mon levier, la racine progresse donc de 1.7 blocs pour donner l'impression d'activer le levier (voir image 2 de mon précédent message)
ça marche, du coup, oui effectivement ça détecte que j'ai donné de nouvelles données à mon displayblock, mais ça n'en a rien à faire de si l'animation est finie ou non (j'ai essayé avec le scale, quand même, au cas où). Ce qui fait que je reçois directement mon Test dans le chat dès l'activation du levier (qui active donc le début de l'animation), et pas au bout des 60 ticks que je suis censé avoir entre le début et la fin de l'anim'.

NB : Je mets pas de timer parceque le joueur pourrait désactiver le levier tout de suite avant que ma racine ne le fasse, donc elle se range avec d'être arrivée au bout de son trajet.