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 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: | ||
Line 20: | Line 20: | ||
*Note that the door doesn't itself evaluate ''open'' signals! | *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 <s>99</s> 100 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 31: | ||
*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. | |
− | + | *Note that gear assemblies do not evaluate signals! | |
− | |||
====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. <s>[[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.</s> Levers do not function like other furniture! It is the dwarf that sends open and close signals, rather than the furniture, which means that signals from levers are always evaluated before any other buildings. Levers automatically open doors and toggle gear assemblies, since those are not functions of the furniture themselves. | 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. <s>[[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.</s> Levers do not function like other furniture! It is the dwarf that sends open and close signals, rather than the furniture, which means that signals from levers are always evaluated before any other buildings. Levers automatically open doors and toggle gear assemblies, since those are not functions of the furniture themselves. | ||
Line 171: | Line 170: | ||
Just to clarify, pressure plates trigger on 2+/7 water, and are linked to the gear assembly of the same color. Device is built in the following order: first the upper pump, then the lower pump, then the gear assemblies, then the pressure plates. Beginning state has 7/7 water in the left-hand reservoir, both gears disengaged. At t=0, we engage the green gear via lever. Let's examine, ''in order'', the events happening during important ticks. | Just to clarify, pressure plates trigger on 2+/7 water, and are linked to the gear assembly of the same color. Device is built in the following order: first the upper pump, then the lower pump, then the gear assemblies, then the pressure plates. Beginning state has 7/7 water in the left-hand reservoir, both gears disengaged. At t=0, we engage the green gear via lever. Let's examine, ''in order'', the events happening during important ticks. | ||
− | + | T=0: Red plate already activated, no action. Green gear becomes powered. Lower pump moves water to right. | |
+ | T=1: Red plate schedules a close to occur at T=99. Green plate toggles green gear. Green gear becomes unpowered. Lower pump stops pumping. | ||
+ | T=99: Red plate sends a close to red gear. Red gear becomes powered. Upper pump moves water to the left. | ||
+ | T=100: Green plate schedules a close to occur at T=199. | ||
+ | T~=125: Water lands on red plate. Red plate sends an open to red gear. Red gear becomes unpowered. | ||
+ | T=199: Green plate toggles green gear. Green gear becomes powered. Lower pump moves water to the right. | ||
+ | T=200: Red plate schedules a close for T=299. Green plate toggles green gear. Green gear becomes unpowered. | ||
+ | T=299: Red plate toggles red gear. Red gear becomes powered. Upper pump moves water to the left. | ||
− | + | Do you see? Hussell's clock '''would not work''' unless pressure plates sent signals 99 ticks after becoming disengaged! | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Pressure plate trigger data==== | ====Pressure plate trigger data==== | ||
Line 189: | Line 188: | ||
====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 261: | Line 260: | ||
I'm not going to test 1.1, 1.2, 2.1, or 2.2. I will test the others. Particularly notable is the behavior of 3. | I'm not going to test 1.1, 1.2, 2.1, or 2.2. I will test the others. Particularly notable is the behavior of 3. | ||
− | ==== | + | ====Lever vs pressure plate activated bridges==== |
− | + | To verify my lever findings, and compare to my pressure plate findings, I'm going to make two bridges, such that they are both activated at the same time, but one via lever, while the other via bridge. | |
− | + | *1) Build the machine demonstrated in the above gear assembly test. Use build order 1. | |
− | + | *2) Build a lever and a bridge. Link the lever both to the bridge, and to both gear assemblies. Build order shouldn't matter, but we'll build the lever first. | |
− | + | *3) Build a bridge. Link the plate to the bridge. | |
− | |||
− | |||
− | |||
− | |||
− | + | Predicted: The plate activated bridge will open 1 tick before the lever activated bridge. | |
− | |||
− | |||
− | |||
− | |||
− | |||
====Water flow==== | ====Water flow==== | ||
This is a simple one, and I'm going to use Hack to test it. | This is a simple one, and I'm going to use Hack to test it. | ||
− | + | # ## 7/7 water | |
− | + | # ^# 7/7 water, plate triggers on 2+ | |
− | + | #### | |
Predicted: Plate does not trigger on first tick, but triggers on second tick. | Predicted: Plate does not trigger on first tick, but triggers on second tick. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |