Cet algorithme va permettre de récupérer les chunks autour d'un joueur ou d'une position.
all (chunk|land)s in [a ]rectangle of %number% by %number% around (%player%|%location%)
Pour mieux comprendre, on a ceci:
[ATTACH=full]7943[/ATTACH]
Dans notre expression ci-dessus nos valeurs sont bien stockées.
Exemple d'utilisation de l'expression:
loop all lands in a rectangle of arg 1 by arg 2 around player:
loop all lands in a rectangle of arg 1 by arg 2 around location of player:
Pour changer de chunk on ajoute 16 à la coordonnée X ou Z du joueur visé.
Dans cet algorithme on va se placer dans un coin puis remonter jusqu'en haut.
get plural expression all (chunk|land)s in [a ]rectangle of %number% by %number% around (%player%|%location%):
set {_x} to (rounded down x-coordinate of expression 3)+0.5-16*(expression 1)
set {_z} to (rounded down z-coordinate of expression 3)+0.5-16*(expression 2)
loop (1+2*(expression 1)) times:
set {_z2} to {_z}
loop (1+2*(expression 2)) times:
set {_chunk} to chunk at block at location ({_x}, 1, {_z2}) in world world of expression-3
add {_chunk} to {_chunks::*}
add 16 to {_z2}
add 16 to {_x}
return {_chunks::*}
Résultat:
command /chunks [<number=1>] [<number=1>]:
trigger:
loop all lands in a rectangle of arg 1 by arg 2 around player:
if "%loop-value%" is "%chunk at player%":
broadcast "§a%loop-value%"
else:
broadcast "%loop-value%"
Lors de l'exécution de la commande /chunks 1 1 on a:
Le chunk lors de l'action est bien trouvé et on aura toujours autant de chunk avant et après (ici = 4)