v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
Editing User:Vasiln/Build order
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | I once did some careful examination of a creature triggering a pressure plate linked to various buildings built either before or after the pressure plate. I added those findings to the [[pressure plate]] page. However, some of the things I found felt inconsistent with [[User:Hussell|Hussell's]] findings regarding build order. In particular, he found that build order of [[gear assembly|gear assemblies]] affected the period of his [[repeater]]s, whereas I found that gear assemblies were always triggered on the same tick, regardless of whether they were built before or after the triggering pressure plate | + | I once did some careful examination of a creature triggering a pressure plate linked to various buildings built either before or after the pressure plate. I added those findings to the [[pressure plate]] page. However, some of the things I found felt inconsistent with [[User:Hussell|Hussell's]] findings regarding build order. In particular, he found that build order of [[gear assembly|gear assemblies]] affected the period of his [[repeater]]s, whereas I found that gear assemblies were always triggered on the same tick, regardless of whether they were built before or after the triggering pressure plate. |
− | + | That's always kind of bothered me, but I think I have a hypothesis that explains it. | |
==The Grand Unified Hypothesis of Build Order== | ==The Grand Unified Hypothesis of Build Order== | ||
Line 8: | Line 8: | ||
*1) Every creature checks its [[speed]] to determine whether it can move to the next tile in its path. If it can, it moves. If its next tile is occupied or inaccessible, it recomputes path. | *1) Every creature checks its [[speed]] to determine whether it can move to the next tile in its path. If it can, it moves. If its next tile is occupied or inaccessible, it recomputes path. | ||
− | *2) | + | *2) Power needs are computed for power generators. If power needs are greater than power output, power generators are considered unpowered. (This one requires a lot of research). |
*3) Every variable-state building is evaluated (more on this later). | *3) Every variable-state building is evaluated (more on this later). | ||
− | * | + | *4) Every tile of [[water]] is evaluated to determine whether it should flow (or maybe teleport), and it does so, if it should. |
− | The important part of this is step | + | The important part of this is step 2. In particular, buildings are evaluated in the reverse order to which they were built. If you build a pressure plate, then a [[door]], the game will first run the door's ''think'' function, then run the plate's ''think'' function. |
Here are the ''think'' functions for various variable state buildings, as far as I can tell: | Here are the ''think'' functions for various variable state buildings, as far as I can tell: | ||
====Door==== | ====Door==== | ||
− | *If a ''close'' signal has been generated for this door, close the door. | + | *If a ''close'' signal has been generated for this door, close the door. (Note that the door doesn't itself evaluate ''open'' signals.) |
− | |||
====Pressure plate==== | ====Pressure plate==== | ||
− | *If triggering criteria are met, and the device most recently sent a ''close'' signal, send an ''open'' signal. Additionally, open any doors or [[hatch cover|hatches]] linked to this pressure plate, and toggle | + | *If triggering criteria are met, and the device most recently sent a ''close'' signal, send an ''open'' signal. Additionally, open any doors or [[hatch cover|hatches]] linked to this pressure plate, and toggle any linked gear assemblies. |
*If triggering criteria are met and the device most recently sent an ''open'' signal, don't do anything, except remember this tick. | *If triggering criteria are met and the device most recently sent an ''open'' signal, don't do anything, except remember this tick. | ||
− | *If triggering criteria are not met, and it has been exactly | + | *If triggering criteria are not met, and it has been exactly 99 ticks since triggering criteria were met, send a ''close'' signal. Additionally, toggle any linked gear assemblies. |
− | *If triggering criteria are not met, and it has been greater than or less than | + | *If triggering criteria are not met, and it has been greater than or less than 99 ticks since triggering criteria were met, don't do anything. |
====Bridge==== | ====Bridge==== | ||
− | *If no open or close | + | *If no open or close scheduled for this device, check for a signal. If ''open'', schedule an open in 100 ticks. If ''close'', schedule a close in 99 ticks. |
*if no signal, or an open or close is already scheduled, don't do anything. | *if no signal, or an open or close is already scheduled, don't do anything. | ||
====Screw Pump==== | ====Screw Pump==== | ||
Line 31: | Line 30: | ||
*Otherwise, don't do anything. | *Otherwise, don't do anything. | ||
====Gear Assembly==== | ====Gear Assembly==== | ||
− | + | *If gear assembly is adjacent to a device with power and is engaged, consider this tile powered. | |
− | + | *If gear assembly is not adjacent to a device with power or is not engaged, do not consider this tile powered. | |
− | |||
− | |||
====Other Furniture==== | ====Other Furniture==== | ||
− | I believe that the think functions described earlier apply to all other forms of furniture. Hatches use the same think function as doors. Grates, bars, and floodgates use the same think function as bridges. | + | I believe that the think functions described earlier apply to all other forms of furniture. Hatches use the same think function as doors. Grates, bars, and floodgates use the same think function as bridges. [[Lever]]s require a special note: I believe they function the same way as a pressure plate. However, there's a chance that the dwarf pulling them actually sends the signals, in which case you would expect to see levers functioning as if they were always built before the furniture they trigger. |
===How this reconciles Hussell's clock and my goblin repeater=== | ===How this reconciles Hussell's clock and my goblin repeater=== | ||
Line 44: | Line 41: | ||
Now that I've got a working hypothesis (including bits that I'm not very sure of, for instance, exactly when non-dwarves are evaluated, exactly how power is evaluated, exactly when flow is evaluated), it's time to make some predictions. | Now that I've got a working hypothesis (including bits that I'm not very sure of, for instance, exactly when non-dwarves are evaluated, exactly how power is evaluated, exactly when flow is evaluated), it's time to make some predictions. | ||
− | === | + | ===Validated Predictions=== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Dropping a dwarf takes 7 ticks==== | ====Dropping a dwarf takes 7 ticks==== | ||
− | Creatures fall at a constant rate of 6 ticks. However, when you drop a dwarf, it takes 7 ticks for the dwarf to fall the first z-level. This, according to my hypothesis, is because the dwarf doesn't know the ground isn't there during the tick the floor disappears, because the ground doesn't disappear during the dwarf's ''think'', it disappears later, during the hatch's ''think''. | + | Creatures fall at a constant rate of 6 ticks. However, when you drop a dwarf, it takes 7 ticks for the dwarf to fall the first z-level. This, according to my hypothesis, is because the dwarf doesn't know the ground isn't there during the tick the floor disappears, because the ground doesn't disappear during the dwarf's ''think'', it disappears later, during the hatch's ''think''. |
===Testable Predictions=== | ===Testable Predictions=== | ||
Line 231: | Line 85: | ||
=====Findings===== | =====Findings===== | ||
− | + | Let's see. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |