3 votes

Dans quel ordre les résultats du sélecteur de cible sont-ils renvoyés si le paramètre de tri est fixé à "arbitraire" ?

Les sélecteurs de cible sont utilisés pour sélectionner certaines entités. Ils acceptent différents arguments pour choisir l'entité à sélectionner. En général, ils renvoient une liste d'entités trouvées.
L'utilisation de la limit=n limite la longueur de la liste à n (utile avec 1 comme n pour obtenir une sélection d'une seule entité). Les sort vous permet de choisir l'ordre dans lequel la liste des cibles est triée.

Les sort a 4 options, arbitrary , furthest , nearest y random . Le Wiki Minecraft présente les fonctions de chacun d'entre eux :

  • sort=nearest - Trier par distance croissante. (Valeur par défaut pour @p, @e, [BE] @a [BE] )
  • sort=furthest - Trier par distance décroissante.
  • sort=random - Tri aléatoire (par défaut pour @r)
  • sort=arbitrary - Ne pas trier. (Valeur par défaut pour @e, [JE] @a [JE] )

nearest , furthest y random sont faciles à comprendre dans ce qu'ils font. Ce qui m'intrigue, c'est de savoir quand le arbitrary est sélectionné.

L'élément renvoyé par un sélecteur de cible est toujours une liste ordonnée. Quel est leur ordre s'ils ne sont pas triés ?

Théories possibles

Voici quelques théories possibles :

  • La liste est triée par UUID.
  • La liste est triée par date de création. (le plus récent->le plus ancien, ou le plus ancien->le plus récent)
  • La liste est triée par position de l'entité. Les entités sont classées par ligne de balayage, de sorte que le Z le plus bas est le premier, avec les X du plus bas au plus haut, suivis par ceux qui se trouvent sur le Z le plus bas suivant.

2voto

Fabian Röling Points 19325

Par définition, la façon dont ils sont ordonnés n'est pas garantie et Mojang a explicitement dit (quelque part) qu'aucun dispositif de commande ne devrait s'appuyer sur cet ordre. Si quelqu'un trouve cette Q&R pour une raison autre que la curiosité, il fait probablement quelque chose de mal.

Ceci étant dit, il semble que ce soit l'ordre de création de l'entité en mémoire dans toutes les versions de 1.13 à 1.16. Cela signifie que si vous invoquez des entités sans fermer et rouvrir le monde, redémarrer le serveur, décharger et recharger les chunks etc , elles sont presque toujours dans l'ordre d'invocation. Si vous effectuez l'une de ces actions, elles sont dans l'ordre dans lequel leurs morceaux ont été chargés. Au sein d'un chunk, je ne connais pas l'ordre, il se peut que ce soit le même que dans le fichier chunk, que vous pouvez inspecter avec NBTExplorer.

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