Courant (flow)

De Le wiki de DwarfFortress
Aller à : navigation, rechercher

Le courant est une mécanique de jeu pour simuler le mouvement de fluides. Les deux fluides dans le jeu actuellement sont l'eau et le magma. Les fluides avec un courant sont symbolisés par une case qui alterne entre un et un ~. Si vous avez l'option SHOW_FLOW_AMOUNT activée (dans le fichier d_init.txt) vous verrez la profondeur du liquide de 1 à 7 au lieu, et ce sera moins évident de savoir s'il y a un courant ou non. Il y en a quasiment à chaque fois qu'un fluide se déplace, mais quelques exceptions peuvent être trompeuses.

Notez que le magma n'a pas l'air d'avoir de courant dans cette version. Le magma suit les mêmes règles de déplacement des fluides, mais pas d'une façon qui puisse entraîner une roue à aube.

Déplacement simple des fluides

L'eau et le magma se déplacent d'une même façon, en suivant quelques règles simples. La différence entre les deux est que le magma ne réagit pas pareil avec de la pression.

Les fluides se déplacent plus ou moins de la façon dont on s'y attend: ils tombent s'ils le peuvent, ou s'étalent sur les cotés. Ils peuvent couler en diagonal sur un niveau, mais jamais vers le coté et vers le bas en même temps. En déplacement simple de fluides, ils ne remontent jamais, mais ils peuvent sembler le faire si de la pression est impliquée.

Un exemple de la façon dont l'eau peut couler vers des cases adjacentes. Lorsque l'eau coule vers une autre case, il y aura un courant sur les deux qui restera un peu avant de redevenir immobile. L'eau qui tombe ne génère pas de courant, donc seul le troisième exemple aura du courant (sur les deux cases).

                       Avant (vu de coté)
                       ▒7▒       ▒7▒       ▒
                       ▒ ▒       ▒2▒       ▒7
                       ▒▒▒       ▒▒▒       ▒▒▒▒▒
                       Après (vu de coté)  
                       ▒ ▒       ▒2▒       ▒
                       ▒7▒       ▒7▒       ▒43
                       ▒▒▒       ▒▒▒       ▒▒▒▒▒
  • 1. Le fluide va vers le bas
  • 2. Puis s'écoule sur les cotés

Toutefois ces règles sont incomplètes, si on ne prend pas en compte la pression

Fluides sous pression: téléportation

Le magma, qui n'a pas de pression naturelle, s'écoule selon les règles de bases. Par contre l'eau peut couler avec de la pression quand elle coule sur une case remplie (7/7). De plus, les pompes créent de la pression, et l'eau qui arrive sur la carte par une rivière ou un ruisseau a subie aussi de la pression.

Les fluides sous pression ne font pas que couler vers les cases adjacentes, ils suivent un chemin à travers les cases pleines pour aller vers des cases plus éloignées. Les fluides sous pression se téléportent à travers les cases remplies. En se téléportant, les fluides ne génèrent pas de courant, et ne poussent pas d'objets.


                ▒7▒ ▒
   Avant        ▒7▒ ▒
                ▒777▒
                ▒▒▒▒▒
--------------------
                ▒ ▒ ▒
   Après        ▒7▒7▒
                ▒777▒
                ▒▒▒▒▒

Quand un fluide se déplace par pression, il tente de trouver un chemin qui passe par des cases pleines, vers le bas et à l'horizontale, mais pas diagonalement. Ça marche un peu comme le déplacement de base, mais en plus rapide: le fluide à la source est téléporté vers l'espace libre en bout de course. C'est pour ça que forcer le liquide à passer par un bouchon en diagonale annule la pression (il ne se répand plus qu'à l'horizontale) et que les rivières ont des cases remplies entièrement jusqu'au bord de la carte, où les règles simples s'appliquent pour drainer, tandis que l'eau est téléporté du début de la rivière jusqu'à ce point.

De plus, à l'opposé de l'écoulement simple, le chemin suivi pour la pression peut même remonter - mais jamais plus haut que le niveau de la première case à 7/7. Il peut sembler donc que la pression "pousse" les fluides vers le haut, alors qu'en fait elle téléporte le fluide vers un niveau égal ou inférieur.

Les déplacements de fluide par pression sont donc communs (surtout avec l'eau) et ne créent pas beaucoup de courant. Les rivières et ruisseaux ont toutefois une sorte de courant qui peut entraîner les roues à aube, appelé courant "naturel".

Déplacement de fluides par effondrement:le piston

Il existe un moyen de pousser les fluides plus haut que le niveau de départ, mais qui peut être considéré comme un bug de la mécanique des fluides et qui risque d'être changé dans les versions suivantes. Un mur naturel de n'importe-quel matériau qui s'effondre sur de l'eau ou du magma, téléportera chaque case de fluide vers un espace libre directement au-dessus, laissant une case libre additionnelle au-dessus du mur lui-même:

Début             Étape 1            Étape 2
▒ ▒ ▒              ▒ ▒ ▒              ▒ ▒ ▒
▒ I ▒ Effondrement ▒   ▒    Fluide    ▒   ▒
▒ ▒ ▒ -----------> ▒ 7 ▒ -----------> ▒   ▒
▒   ▒              ▒   ▒              ▒232▒
▒▒7▒▒              ▒▒▒▒▒              ▒▒▒▒▒
▒▒▒▒▒              ▒▒▒▒▒              ▒▒▒▒▒

Fait dans un coude, l'effet peut être mieux apprécié:

 Début               Étape 1              Étape 2     
▒ ▒ ▒ ▒              ▒ ▒ ▒ ▒              ▒ ▒ ▒ ▒
▒ I ▒ ▒              ▒   ▒ ▒              ▒   ▒ ▒
▒ ▒ ▒ ▒              ▒   ▒ ▒              ▒   ▒ ▒
▒ ▒ ▒ ▒              ▒ 7 ▒ ▒              ▒   ▒ ▒
▒   ▒ ▒ Effondrement ▒ 7 ▒ ▒  le fluide   ▒   ▒ ▒
▒   ▒ ▒ -----------> ▒   ▒ ▒ -----------> ▒545▒ ▒
▒▒7▒▒7▒ du support   ▒▒▒▒▒7▒  se répand   ▒▒▒▒▒7▒
▒▒7777▒              ▒▒▒777▒              ▒▒▒777▒
▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒

Ceci est le principe de base qu'exploite le piston, pour contourner un changement ultérieur des règles ou pour simuler plus naturellement des fluides, vous pouvez faire quelque-chose comme ceci:

niveau Z   Début                 Étape 1                Étape 2
  z+0   ▒ ▒   ▒ ▒              ▒ ▒   ▒ ▒              ▒ ▒   ▒ ▒
  z-1   ▒ |   ▒ ▒              ▒     ▒ ▒              ▒     ▒ ▒
  z-2   ▒ ▒ ▒ ▒ ▒              ▒ 7 7 ▒ ▒              ▒     ▒ ▒
  z-3   ▒ ▒ ▒ ▒ ▒ Effondrement ▒ 7 7 ▒ ▒  le fluide   ▒     ▒ ▒
  z-4   ▒     ▒?▒ -----------> ▒     ▒?▒ -----------> ▒55455▒?▒
  z-5   ▒▒777▒▒7▒ du support   ▒▒▒7▒▒▒7▒  se répand   ▒▒▒7▒▒▒7▒
  z-6   ▒▒777777▒              ▒▒▒7▒777▒              ▒▒▒7▒777▒
  z-7   ▒▒▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒▒▒
      z-3 du dessus           z-5 du dessus        z-3 du dessus(Étape 1)   z-4 du dessus(Étape 2)
        ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                 ▒▒▒▒▒▒▒
        ▒     ▒                ▒▒▒▒▒▒▒                ▒     ▒                 ▒44544▒
 Axe    ▒ ▒▒▒ ▒▒▒              ▒▒777▒▒▒▒              ▒ 777 ▒▒▒               ▒45554▒▒▒   Axe
--------▒ ▒ ▒ ▒ ▒--------------▒▒777▒▒7▒--------------▒ 7 7 ▒?▒---------------▒55455▒?▒--------
        ▒ ▒▒▒ ▒▒▒              ▒▒777▒▒▒▒              ▒ 777 ▒▒▒               ▒45554▒▒▒ 
        ▒     ▒                ▒▒▒▒▒▒▒                ▒     ▒                 ▒44544▒
        ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                 ▒▒▒▒▒▒▒

Cet exemple nécessite de faire chuter un "beignet/tube" géant (minimum 3x3x1) de pierre naturelle sur la poche de liquide, sachant qu'un "beignet/tube" similaire de fluide sera téléporté en haut (étape 1) qui s'étale (étape 2), donnant l'illusion que le liquide est passé par le centre du bloc, comme un vrai fluide.

Courant naturel

Plusieurs sources d'eau telles les rivières et les ruisseaux ont constamment un "courant". Il est différent des autres effets de courant, car toujours considéré comme de l'eau qui coule, même si l'eau arrive à un blocage. Tout canal aboutissant dans une source avec un courant naturel en aura à son tour, tant que tout est sur le même niveau. Les passages forcés en diagonale n'ont pas d'effets sur le courant naturel, mais annulent la pression.

Déplacer ce courant naturel vers un autre niveau donnera des résultats imprévus, mais annulera le courant dans la plupart des cas, jusqu'à ce qu'il soit recrée artificiellement.

L'eau qui s'écoule naturellement, selon l’environnement, le fait dans une direction spécifique - quand SHOW_FLOW_AMOUNTS est désactivé, certaines cases d'eau qui coulent vers un mur clignoteront en blanc, et d'autres resteront bleues. Cette direction est importante car elle affecte l'utilisation des roue à aube, l'eau qui coule dans l'axe nord/sud n'alimente pas une roue orientée sur l'est/ouest, et inversement. En diagonale tout marche.

Profondeur des fluides

Les fluides peuvent avoir une profondeur entre 1 et 7; pour la voir observez la case avec k, vous verrez une indication à la droite de l'écran. Vous pouvez aussi activer SHOW_FLOW_AMOUNTS qui remplacera les cases et ~ avec une représentation numérique de la profondeur, en permanence. Par contre vous ne verrez plus si la case a un courant.

Obstructions

L'eau est bloquée par la plupart des blocs solides., ceci inclus les murs, les bâtiments et les vannes, portes, et trappes fermées. Les grilles murales, les barres verticales, et les fortifications laissent passer les fluides.

Évaporation

Les fluides qui ont seulement 1/7 de profondeur finissent par s'évaporer, et sont enlevés du jeu. Dans des climats "chauds" ou "torrides", même les mares stagnantes plus profondes peuvent s'évaporer.

Bugs

  • Des objets poussés par un courant peuvent disparaitre.(bug:895)
  • Les courants semblent multiplier les contaminants.(bug:296)