Configuration
Tout se règle depuis un seul fichier, config/oas/vortexdread.json,
du côté serveur. Quarante-deux options rangées en cinq groupes, écrites en entier au premier
démarrage et réécrites à chaque sauvegarde, de sorte qu'une mise à jour qui ajoute une option la
fasse apparaître dans votre fichier plutôt que de vous laisser deviner qu'elle existe. Aucune
interface en jeu: un fichier que vous relisez plus tard vaut mieux qu'un écran que vous avez
traversé une fois.
Ce qui arrive quand une valeur est fausse
Chaque option numérique porte une plage. Une valeur en dehors est ramenée dans la
plage au lieu d'être refusée: quelqu'un qui écrit mille dans un budget de tick veut un budget plus
gros, et arrêter le serveur là-dessus n'aide personne. Une clé que cette version ne connaît pas est
ignorée avec une ligne dans le journal qui la nomme. Un fichier qui ne se lit pas du tout est
déplacé en vortexdread.json.broken et un fichier neuf prend sa place,
parce que quelqu'un a passé du temps dedans et que l'écraser en silence est la seule issue dont
on ne revient pas.
La commande
/vortex demande le niveau de permission
2, le même que /weather, puisque c'est la même sorte de
décision. /vortex spawn fait descendre un entonnoir sous vos pieds, avec
une cote et des coordonnées en arguments facultatifs.
/vortex list énumère celles qui vivent dans un rayon de 8192 blocs, avec
leur stade, leur distance, leur cœur et la part de sol qu'elles portent.
/vortex clear les retire, /vortex storms off
empêche le ciel d'en refaire, et /vortex compute dit quel périphérique
calcule et combien de morceaux sont passés de chaque côté.
Les quarante-deux options
Les valeurs ci-dessous sont celles d'un fichier neuf. La colonne de droite dit ce qui change quand vous les déplacez, pas ce que le nom veut dire.
| Option | Défaut | Ce que ça déplace |
|---|---|---|
| naturalTornadoes | true | À faux, le ciel n'en fait plus jamais et seule la commande en produit. |
| tornadoChancePerMinute | 0.18 | Chance, par minute d'orage, qu'une supercellule s'organise. De 0 à 1. |
| cooldownTicks | 9600 | Silence imposé après une dissipation, quoi que disent les probabilités. Huit minutes. |
| maxConcurrent | 1 | Entonnoirs vivants en même temps dans une dimension. Jusqu'à 16. |
| ratingBias | 0.0 | Décale le tirage de la cote, en pas d'EF. Négatif garde le ciel aux tornades faibles. |
| warningRadius | 640 | Distance à laquelle le grondement commence et le ciel se met à tourner. |
| rebuildStorms | true | À faux, la météo vanilla reprend son apparence d'origine. |
| cloudFlashesPerMinute | 34 | Éclairs purement visuels tirés dans le nuage, ce qui l'allume de l'intérieur. |
| funnelFlashesPerMinute | 9 | Éclairs tirés dans l'entonnoir lui-même une fois qu'il est au sol. |
| extraLightning | true | À faux, il ne reste que les impacts que vanilla aurait faits. |
| Option | Défaut | Ce que ça déplace |
|---|---|---|
| coreRadiusAtEf0 | 6.0 | Rayon du cœur de la plus faible. Tout le reste se met à l'échelle là-dessus. |
| radiusGrowthExponent | 1.5 | Vitesse à laquelle le cœur s'élargit quand le vent monte. |
| lifespanMinTicks | 2400 | Vie la plus courte, deux minutes. La plupart ne durent pas davantage. |
| lifespanMaxTicks | 14400 | Vie la plus longue, douze minutes, celle de la rare tornade à longue trace. |
| travelSpeed | 8.0 | Vitesse de déplacement du système sur le sol, en blocs par seconde. |
| trackWander | 1.6 | Écart de cap autorisé, en degrés par seconde. À zéro la trace est une droite. |
| turbulence | 0.22 | Amplitude du bruit qui s'ajoute au champ analytique, en fraction du vent local. |
| cloudBaseAltitude | 183.0 | Altitude de la base nuageuse. C'est là que Photon pose ses cumulus par défaut. |
| formingFraction | 0.12 | Part de la vie passée à descendre avant de toucher le sol. |
| ropeOutFraction | 0.18 | Part de la vie passée à s'étirer en corde et à mourir. |
| Option | Défaut | Ce que ça déplace |
|---|---|---|
| breakBlocks | true | À faux, rien ne sort du sol et il ne reste que le vent avec ce qui est déjà en l'air. |
| blockBudgetPerTick | 96 | Blocs examinés par tick, toutes tornades confondues. Tout le coût de la destruction est là. |
| resistanceScale | 1.0 | Multiplie la résistance qu'un bloc doit encaisser. Sous un, les murs tiennent. |
| dropItems | false | À vrai, un bloc emporté laisse son objet. Par défaut ce que le vent prend est perdu. |
| maxDebris | 220 | Débris lourds portés en même temps par une tornade, chacun étant une vraie entité. |
| debrisSettles | false | À vrai, un débris repose son bloc là où il tombe et la trace se reconstruit derrière. |
| damageEntities | true | À faux, le vent et les débris ne blessent plus rien. |
| damageScale | 1.0 | Multiplie chaque point de dégât, celui du vent comme celui des impacts. |
| liftPlayers | true | À faux, les joueurs restent au sol. Les mobs et les objets volent quand même. |
| liftThreshold | 18.0 | Vitesse de vent sous laquelle plus rien n'est soulevé, en blocs par seconde. |
| Option | Défaut | Ce que ça déplace |
|---|---|---|
| useGpu | true | Interrupteur d'arrêt. Sans périphérique, le processeur prend le travail sans qu'on touche à rien. |
| gpuDeviceIndex | -1 | Rang dans la liste plate des périphériques OpenCL. Négatif choisit tout seul. |
| gpuWorkgroupSize | 0 | Taille du groupe de travail. Zéro laisse le pilote décider, ce qui est le bon réglage. |
| advectionThreads | 0 | Fils du pool processeur. Zéro veut dire le nombre de cœurs moins deux. |
| advectionBatch | 4096 | Débris confiés à un envoi. Petit cache la latence, grand amortit le transfert. |
| Option | Défaut | Ce que ça déplace |
|---|---|---|
| funnelSteps | 40 | Pas de la traversée du volume. Sous seize, la paroi se met à faire des bandes. |
| funnelLightSteps | 6 | Pas vers la lumière pour l'ombre interne. Zéro aplatit complètement l'entonnoir. |
| funnelDetail | 1.8 | Taille du plus petit filament visible, en blocs. Plus fin demande plus de pas. |
| funnelRenderDistance | 1024.0 | Distance au-delà de laquelle la tempête n'est plus que ciel et son. |
| screenShake | true | À faux, l'écran ne bouge plus quand le vent bouge. |
| postEffect | true | À faux, plus d'assombrissement, plus de traînées, plus de flash. |
| skyGreen | 0.55 | Part du vert que prend la couleur du monde sous une tornade, de 0 à 1. |
Cinq groupes, pas cinq fichiers. Le nom d'un groupe dans le JSON vient de la
classe qui porte l'option, donc storm,
tornado, damage,
compute et look. Une option ajoutée au code
arrive dans son groupe sans qu'on la câble ailleurs, et une option déplacée d'un groupe à l'autre
reste lue: la clé cherchée est le nom de l'option, pas le chemin complet.
Aucune option morte. L'outillage de développement est compilé dans une source à part et ne se trouve pas dans le jar livré. Ce qui apparaît dans le fichier est ce qui pilote vraiment quelque chose, sans vestige laissé là au cas où.