Courant (flow) : Différence entre versions

De Le wiki de DwarfFortress
Aller à : navigation, rechercher
Ligne 34 : Ligne 34 :
  
  
                 ▒7▒
+
                 ▒7▒ ▒Slimseig
 
     Avant        ▒7▒ ▒
 
     Avant        ▒7▒ ▒
 
                 ▒777▒
 
                 ▒777▒
Ligne 112 : Ligne 112 :
  
 
==Obstructions==
 
==Obstructions==
Water can be stopped by most solid tiles. These include [[wall]]s and [[building]]s as well as closed [[floodgate]]s, [[door]]s, and [[hatch]]es. Exceptions are vertical [[grate]]s, vertical [[bars]], and [[fortification]]s, which will allow fluids to pass freely.  
+
 
 +
L'eau est bloquée par la plupart des blocs solides., ceci inclus les murs, les bâtiments et les [[Vanne (floodgate)|vannes]], [[Porte (door)|portes]], [[Trappe (Floor Hatch)|trappes]]fermées. Les [[Grilles (grates)|grilles murales]], les barres verticales, et les [[Fortification (fortification)|fortifications]] laissent les fluides passer.
  
 
==Evaporation==
 
==Evaporation==

Version du 2 juillet 2014 à 15:27

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▒ ▒Slimseig
   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, trappesfermées. Les grilles murales, les barres verticales, et les fortifications laissent les fluides passer.

Evaporation

Fluids that remain at a depth of 1/7 for long enough will evaporate. Evaporated fluids are simply removed from the game. In hot or scorching environments, murky pools can evaporate at greater depths.

Bugs

  • Items pushed by flowing water may disappear
Bug signalé !  

{{{description}}}



  • Flowing water seems to cause contaminants to multiply
Bug signalé !  

{{{description}}}



▒   ▒   Support    ▒   ▒   Spreads    ▒232▒
▒▒7▒▒              ▒▒▒▒▒              ▒▒▒▒▒
▒▒▒▒▒              ▒▒▒▒▒              ▒▒▒▒▒

When done in an u-bend example the pushing above original fluid level can be easily appreciated, although it breaks the laws of regular fluid physics:

 Start               Step 1               Step 2     
▒ ▒ ▒ ▒              ▒ ▒ ▒ ▒              ▒ ▒ ▒ ▒
▒ I ▒ ▒              ▒   ▒ ▒              ▒   ▒ ▒
▒ ▒ ▒ ▒              ▒   ▒ ▒              ▒   ▒ ▒
▒ ▒ ▒ ▒              ▒ 7 ▒ ▒              ▒   ▒ ▒
▒   ▒ ▒   Collapse   ▒ 7 ▒ ▒    Fluid     ▒   ▒ ▒
▒   ▒ ▒ -----------> ▒   ▒ ▒ -----------> ▒545▒ ▒
▒▒7▒▒7▒   Support    ▒▒▒▒▒7▒   Spreads    ▒▒▒▒▒7▒
▒▒7777▒              ▒▒▒777▒              ▒▒▒777▒
▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒

This is the basic principle that the magma piston exploit, if you want to prevent a future fix or simply want to simulate regular physics fluid behaviour, you can do something like this:

z-level   Start                  Step 1                 Step 2
  z+0   ▒ ▒   ▒ ▒              ▒ ▒   ▒ ▒              ▒ ▒   ▒ ▒
  z-1   ▒ |   ▒ ▒              ▒     ▒ ▒              ▒     ▒ ▒
  z-2   ▒ ▒ ▒ ▒ ▒              ▒ 7 7 ▒ ▒              ▒     ▒ ▒
  z-3   ▒ ▒ ▒ ▒ ▒   Collapse   ▒ 7 7 ▒ ▒    Fluid     ▒     ▒ ▒
  z-4   ▒     ▒?▒ -----------> ▒     ▒?▒ -----------> ▒55455▒?▒
  z-5   ▒▒777▒▒7▒   Support    ▒▒▒7▒▒▒7▒   Spreads    ▒▒▒7▒▒▒7▒
  z-6   ▒▒777777▒              ▒▒▒7▒777▒              ▒▒▒7▒777▒
  z-7   ▒▒▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒▒▒              ▒▒▒▒▒▒▒▒▒
      z-3 Top View           z-5 Top View           z-3 Top View (Step 1) z-4 Top View (Step 2)
        ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                 ▒▒▒▒▒▒▒
        ▒     ▒                ▒▒▒▒▒▒▒                ▒     ▒                 ▒44544▒
 Axis   ▒ ▒▒▒ ▒▒▒              ▒▒777▒▒▒▒              ▒ 777 ▒▒▒               ▒45554▒▒▒   Axis
--------▒ ▒ ▒ ▒ ▒--------------▒▒777▒▒7▒--------------▒ 7 7 ▒?▒---------------▒55455▒?▒--------
 Cut    ▒ ▒▒▒ ▒▒▒              ▒▒777▒▒▒▒              ▒ 777 ▒▒▒               ▒45554▒▒▒    Cut
        ▒     ▒                ▒▒▒▒▒▒▒                ▒     ▒                 ▒44544▒
        ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                ▒▒▒▒▒▒▒                 ▒▒▒▒▒▒▒

This example involves dropping a giant (minimum size 3x3x1) donut/cylinder/tube of natural walls onto the fluid pool, given that it will teleport a donut/cylinder/tube of fluid in the same way (step 1) but after it spreads (step 2) it'll seem that the fluid actually went through the opening in the middle of the donut/cylinder/tube like a real fluid should behave, of course one exception it won't be pushed through the right tube like it should, you'll probably want to close the tile marked with a question mark "?" so it can give the impression of real fluid mechanics.

Natural Flow

Many water sources such as rivers and brooks are constantly flowing with natural flow. This is different from other flow effects in that it is always considered to be flowing water. This remains true even when the water flows into a complete dead end channel or even when blocked off with a floodgate. Any channels that link up to a naturally flowing source will soon become naturally flowing water as long as they remain on the same z-level. Diagonal steps have no effect on natural flow although they can be used to change pressure.

Trying to move natural flow up or down to a different z-level may have unpredictable results but in most cases this will break the natural flow effect resulting in still water that can only be made to flow by artificial means.

Naturally flowing water, depending on its environment, flows in a specific direction - when SHOW_FLOW_AMOUNTS is disabled, water which flows directly into a wall will flash white while other water remains blue. This flow direction is important to note, since it affects the operation of water wheels: water which flows directly north or south will not power an east/west-aligned water wheel, and the opposite is also true. Diagonally flowing water, however, works for everything.

Fluid Depth

Modèle:Main Fluids can have a depth anywhere from 1 to 7. To see the depth of a tile of fluid you can look at it with k which will reveal the depth in the text at the right. Alternatively you can enable SHOW_FLOW_AMOUNTS which will replace the and ~ tiles with a numerical representation of the depth at all times. Turning on SHOW_FLOW_AMOUNTS does come with the drawback that you will no longer be able to see if a tile is flowing or not.

Obstructions

Water can be stopped by most solid tiles. These include walls and buildings as well as closed floodgates, doors, and hatches. Exceptions are vertical grates, vertical bars, and fortifications, which will allow fluids to pass freely.

Evaporation

Fluids that remain at a depth of 1/7 for long enough will evaporate. Evaporated fluids are simply removed from the game. In hot or scorching environments, murky pools can evaporate at greater depths.

Bugs

  • Items pushed by flowing water may disappear
Bug signalé !  

{{{description}}}



  • Flowing water seems to cause contaminants to multiply
Bug signalé !  

{{{description}}}