Les débris

Ce que la tornade fait à ce qui se trouve sur son passage tient en deux familles : ce qui reste au sol et cède, une affaire de résistance de bloc contre pression de vent, et ce que le vent emporte ou frappe une fois ce sol ouvert. Cette seconde famille dépend tout entière d'un seul interrupteur, actif par défaut (damageEntities = true) : le couper laisse le vent pousser et les débris voler exactement comme avant, mais plus aucun des deux ne fait le moindre point de dégâts.

Le trajet d'un morceau

Debout Arraché (la pression du vent dépasse la résistance du bloc) En vol (seulement si le vent avait largement de quoi le porter) Disparu

Trois autres choses valent d'être détaillées à part : le plafond que chaque tornade s'impose, l'atterrissage, qui n'en est pas vraiment un, et ce qu'un morceau fait à qui se trouve sur sa route. Chacune a sa propre section ci-dessous.

Le plafond

Une tornade ne porte jamais un nombre infini de morceaux à la fois : deux cent vingt par défaut. Au-delà de ce plafond, un bloc qui cède est toujours détruit si le vent le permet, mais il ne devient jamais un débris volant, faute de place dans le compte de cette tornade précise. Le compteur suit chaque tornade séparément et se corrige tout seul, une unité de moins à chaque fois qu'un morceau touche le sol ou disparaît.

Ce qui décide qu'un morceau vole

Céder au vent ne suffit pas à s'envoler. Il faut, au moment même où le bloc lâche, que la capacité du vent dépasse d'au moins deux fois et demie la résistance qu'il vient de vaincre : en dessous, le bloc est détruit sur place, sans jamais devenir une entité. Au-dessus, franchi ce seuil de portage, il reçoit sa propre vitesse limite de chute, calculée une fois pour toutes à partir de sa résistance d'origine et jamais revue ensuite.

Cette vitesse limite va d'un peu plus de quatorze mètres par seconde pour la matière la plus légère à quarante pour tout ce qui atteint ou dépasse une résistance de soixante, ce qui trie le champ de débris par poids exactement comme un vrai : les fragments légers montent haut et loin, les plus lourds restent bas et tombent vite, sans qu'aucune règle ne leur dise où aller.

L'atterrissage

Un morceau qui touche le sol, qui heurte un mur ou qui s'arrête tout court ne devient pas pour autant un tas de blocs qui repousse derrière la tornade. Par défaut, il est simplement écarté : la place qu'il occupait dans le monde reste ce que le vent en a fait, un trou, pas un chantier qui se répare tout seul.

Un chantier qui ne se répare pas : debrisSettles décide si un morceau pose son bloc d'origine en touchant le sol. Désactivé par défaut, il disparaît sans rien reposer. Activé, il retombe en bloc si la case peut l'accueillir, un ancien comportement gardé pour qui le préfère, au risque de donner l'impression que l'orage répare ce qu'il vient de détruire.

Ce qu'un morceau fait en travers de son chemin

Un morceau qui file assez vite blesse ce qu'il croise. En dessous de douze mètres par seconde, c'est un choc sans conséquence ; au-dessus, chaque mètre par seconde de plus ajoute un quart de point de dégâts. Un plateau projeté à pleine vitesse depuis le mur du cœur fait largement plus mal qu'un pareil morceau qui finit sa course en roulant dans l'herbe.

Un coup à sens unique : un morceau en vol peut frapper n'importe qui se trouve sur sa route, mais rien ne peut jamais le blesser en retour. Il refuse tous les dégâts qu'on tente de lui infliger, sans jamais se laisser ramasser comme un item ni pousser comme une entité vivante.

Le vent et les débris comptent comme deux sources de dégâts bien distinctes, et rien n'empêche les deux de toucher la même victime au même instant. Le journal de mort garde la trace au mot près, entre vortexdread:wind d'un côté et vortexdread:debris de l'autre, jamais confondus même quand les deux ont frappé à quelques ticks d'écart.

La patience

Trente secondes (au-delà, un morceau encore en vol est écarté sans ménagement, même si le vent ne l'a jamais lâché et qu'il n'a donc jamais vraiment atterri).

Ce que le vent et les débris font à une victime

Ce que le vent et les débris font à une victime ne dépend d'aucun des étages décrits plus haut : cela s'applique à chaque entité vivante, individuellement, à chaque tick, tant que damageEntities reste activé, ce qui est le cas par défaut.

La vitesse qui compte se mesure à mi-hauteur de la boîte de collision de la victime, une altitude différente du sol sous ses pieds : une vache et un poussin plantés au même endroit ne subissent donc pas exactement le même vent, puisqu'ils n'interrogent pas la même altitude dans un champ qui varie avec la hauteur. Cette variation reste modeste au sol, là où la plupart des rencontres ont lieu, et grandit surtout près de la base du nuage, détaillée du côté du rendu à l'écran, une altitude elle-même héritée de l'orage décrit du côté de la formation. Pour tout ce qui tient debout sur ses deux pieds dans l'herbe, la différence ne se remarque jamais vraiment.

Deux seuils bien séparés gouvernent ce qui se passe à un endroit donné. À partir de huit mètres par seconde, la victime commence déjà à être poussée. Le vent seul ne commence à faire mal qu'à partir de quarante mètres par seconde, via le même réglage général damageEntities, qui coupe les deux dégâts à la fois d'un seul interrupteur. Entre les deux seuils, se faire traîner par le vent sans qu'il ne fasse mal en lui-même est parfaitement normal.

Passé ce second seuil, les dégâts montent avec l'écart entre la vitesse du vent et lui, multipliés par un dernier réglage général : damageScale. Au double du seuil, quatre-vingts mètres par seconde, le vent seul inflige trois points de dégâts par seconde à sa valeur par défaut de un, un peu plus d'un cœur et demi. La fenêtre d'invulnérabilité native du jeu s'applique comme pour n'importe quelle autre source : une victime touchée une fois ne reprend pas un second coup l'instant d'après, même en plein cœur d'une EF5.

Le vent et les débris ne montent pas en dégâts de la même façon. Le vent grimpe tout seul avec la force de la tornade, puisque c'est le vent lui-même qui devient plus rapide. Un débris, lui, ne sait rien de la tornade qui l'a lancé : seule sa vitesse d'impact au moment du choc compte, ce qui veut dire qu'un simple courant résiduel peut encore projeter un vieux morceau assez fort pour blesser, bien après que la tornade qui l'a arraché soit passée.

Pour un joueur, ce n'est pas automatique : le client garde la main sur sa propre position, donc une vitesse que le serveur ne renvoie jamais explicitement est une vitesse que personne ne ressent jamais à l'écran. Chaque fois que le vent pousse un joueur, le serveur lui renvoie sa propre vitesse dans le même instant, ce qui est la seule raison pour laquelle la poussée se voit et se sent, plutôt que de rester une correction invisible dans les journaux du serveur.

Un morceau surpris par un arrêt du serveur en plein vol n'oublie rien d'utile à son retour : son bloc d'origine, sa vitesse limite de chute et le nombre de ticks déjà passés en l'air sont tous les trois écrits sur le disque et relus tels quels. Ce qu'il perd, en revanche, c'est le lien vivant vers sa tornade : si celle-ci a elle-même disparu entre-temps, le morceau retombe en poids mort, sans plus personne pour le porter.

Une poignée de choses ne sentent jamais rien, quelle que soit la puissance du vent : un autre morceau de débris, la tornade elle-même, une entité déjà morte au moment du calcul, et un joueur en mode créatif ou spectateur. Les quatre partagent la même raison : aucune n'a de corps que le jeu doit encore faire vivre dans ce monde.

Rien au-delà de la boîte d'influence : une entité ne serait-elle qu'à un bloc en dehors du volume que la tornade balaie ne reçoit aucun calcul du tout, ni poussée ni dégâts, quelle que soit sa proximité apparente à l'écran. Ce volume, et le rayon qui le fixe à partir du cœur de la tornade, sont détaillés aux côtés de liftThreshold sur la page du champ de vent.

Réglages des débris et des dégâts

Réglages des débris et des dégâts
RéglageDescriptionValeur par défaut
maxDebrisMorceaux qu'une même tornade porte en même temps. Au-delà, un bloc arraché est toujours détruit mais ne s'envole jamais, faute de place dans le compte.220
debrisSettlesDécide si un morceau repose son bloc d'origine en atterrissant. Désactivé par défaut, pour que la destruction reste de la destruction.inactif (false)
damageEntitiesInterrupteur unique pour les deux sources de dégâts, le vent et les débris. Désactivé, la tornade pousse et projette sans jamais blesser personne.actif (true)
damageScaleMultiplie chaque point de dégâts, qu'il vienne du vent ou d'un impact.1,0
liftPlayersDécide si un joueur peut être soulevé par le vent. Désactivé, les joueurs restent au sol pendant que les mobs et les objets continuent d'être jetés en l'air.actif (true)
liftThresholdVitesse de vent, en mètres par seconde, en dessous de laquelle rien n'est jamais soulevé, quelle que soit la cible.18