- 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.
User:Vasiln/Adamantine factory
Back in 2010, EliDupree demonstrated an adamantine factory based on bolt reclamation. Incidentally, Dupree is one of my heroes-- his posts suggest that he was doing a lot with creature logic that he never bothered talking about.
Dupree's design is a little complicated. Later in that thread, he mentions making a different, simpler version using goblins opening doors in front of them via pressure plates. I've done something similar, and it works, but the timing is still fiddly.
There's a simpler method, using engineering.
200-step Repeater[edit]
I'm going to relink to and re-draw User:Hussell's 200 step repeater. This isn't my design. It's his.
z | + | 2 | |||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ║ | ||
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 1 | |||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ^ | ║ | |
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 0 |
╔ | ═ | ╗ |
║ | ^ | ║ |
╚ | ═ | ╝ |
In this design, two separately powered pump stacks, %% and %%, are placed over each other-- the lower one, pumping to the right, and the higher one pumping to the left. When water is lying in the rightmost cell, it activates a pressure plate ^ that toggles the gear ☼, deactivating the lower pump. When water is lying in the leftmost cell, it activates a pressure plate ^ that toggles the top gear, ☼, deactivating the higher pump. You start it up by putting 2 (or more) units of water in the leftmost cell.
When building something like this, the order in which you build it is important. First build the upper pump, then the lower pump, the the gear assemblies, then the pressure plates. Changing the build order will change the period, or even break the design.
The rightmost pressure plate is the repeating one. (You can use the leftmost plate, but it doesn't give regular open signals.) This repeater gives a 200-step, 199-open 1-close, period. However, in our design, we're going to attach them to a floodgate and a bridge. Because those buildings have a refractory period and ignore signals during that period, they're going to repeat with 199 open, 201 close period.
Bridge and Floodgate[edit]
Raising bridges and floodgates have the same sort of relationship that bridges and hatches have-- they act as inverse gates. A raising bridge permits movement when closed, and a floodgate permits movement when open. We're going to use that feature to design our adamantine factory.
═ | ╦ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ |
@ | ╬ | ╞ | ╡ | X | . | g | ║ | |||||||||
═ | ╩ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
Here we have a marksdwarf looking down his shooting gallery at a goblin. A fortification prevents him from getting closer than 10 tiles from the furniture. The furniture that's blocking him is a yellow raising bridge, raising over a channel, and a cyan floodgate. Right now, both pieces of furniture are closed. The goblin is prevented from approaching by the open space in front of him. Let's send an open signal to both pieces of furniture to see what changes:
═ | ╦ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ |
@ | ╬ | . | ╬ | , | . | g | ║ | |||||||||
═ | ╩ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
Our marksdwarf still doesn't have line of sight.
What if we opened the floodgate, and then seven ticks later, we opened the bridge?
═ | ╦ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ |
@ | ╬ | - | ╞ | ╡ | , | . | g | ║ | ||||||||
═ | ╩ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
═ | ╦ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ |
@ | ╬ | - | ╬ | , | . | g | ║ | |||||||||
═ | ╩ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
For a brief period of time, our marksdwarf has line of sight to the goblin. He fires. His bolt, however, takes a tick to move a tile. By the time it reaches the bridge, the bridge has closed. The bolt hits the bridge harmlessly and falls into the channel under the bridge. Our goblin doesn't even get a chance to dodge (which is good, because we don't want him dodging into that open space in front of him.)
How are we going to get this to happen? Well, you could just build two 200-step repeaters, one linked to the bridge and one linked to the floodgate, and turn them off and on until you got the right offset. (If you want to turn off the repeater, it's best to do so just by denying it power via a lever controlled mechanism, not shown in the diagrams above.) Or, if you're impatient and mechanically inclined, you can build an offset.
Offset[edit]
What we want is for one repeater (the repeater linked to the bridge) to start exactly 7 ticks after the other repeater (the one linked to the floodgate). How can we do this? We need to build an offset, such that when we trigger our offset, the second repeater begins operation, and so does some other process that takes 7 ticks, that when it finishes, causes the second repeater to begin operation. We're going to do this by taking advantage of the constant rate with which creatures fall.
z | + | 1 |
╔ | ═ | ╗ |
║ | ¢ | ║ |
╚ | ═ | ╝ |
z | + | 0 |
╔ | ═ | ╗ |
║ | ^ | ║ |
╚ | ═ | ╝ |
Simple drop trap. When we pull a lever, hatch ¢ opens. 7 ticks later, whatever was standing on that hatch falls onto the pressure plate ^. So if we begin operating our floodgate repeater with the same lever that opens the hatch, and begin operating our bridge repeater with the pressure plate in the drop trap, we'll have the right offset.
There are a couple of issues with this. First of all, we need to use a one-use pressure plate in our drop trap, because when something moves off that pressure plate, we don't want it to stop our repeater. But mechanics don't do well at linking one-use, civilians trigger pressure plates. So we'll want to drop a goblin or something. (What I did was use a civilians trigger one use plate, but then set the minimum weight above the weight of any dwarf, and I dropped a water buffalo on it.)
Putting it all together[edit]
For your comfort, I've drawn everything, all linkages color coded. You're going to need the following 5 structures:
z | + | 2 | |||
☼ | |||||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ║ | ||
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 1 | |||
☼ | |||||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ^ | ║ | |
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 0 |
╔ | ═ | ╗ |
║ | ^ | ║ |
╚ | ═ | ╝ |
Beginning state: 7/7 water in z+0 tile, hooked up to power, ☼ disengaged (by pretoggle) and ☼ disengaged (by pressure plate), all other assemblies engaged.
z | + | 2 | |||
☼ | |||||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ║ | ||
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 1 | |||
☼ | |||||
╔ | ═ | ☼ | ╔ | ═ | ╗ |
║ | % | % | ^ | ║ | |
╚ | ═ | ╝ | ╚ | ═ | ╝ |
z | + | 0 |
╔ | ═ | ╗ |
║ | ^ | ║ |
╚ | ═ | ╝ |
Beginning state: 7/7 water in z+0 tile, hooked up to power, ☼ disengaged (by pretoggle) and ☼ disengaged (by pressure plate), all other assemblies engaged.
z | + | 1 |
╔ | ═ | ╗ |
║ | ¢ | ║ |
╚ | ═ | ╝ |
z | + | 0 |
╔ | ═ | ╗ |
║ | ^ | ║ |
╚ | ═ | ╝ |
Beginning state: Something that can trigger the pressure plate sitting on top of the hatch.
ò |
Pull the lever to start the system.
═ | ╦ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ |
╬ | ╞ | ╡ | X | . | ║ | |||||||||||
═ | ╩ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
Beginning state: goblin (or whatever) on the far right tile.
Effectiveness[edit]
Marksdwarves have trouble acquiring a target in 7 ticks, so don't expect them to whip a bolt off every 400 ticks. However, they will fire. My legendary marksdwarf fires just about enough to swamp my legendary furnace operator (with a smelter just a few steps away, underneath the shooting alley), but the furnace operator can keep up. You can multiply your adamantine this way, but it still takes a while.
Certainly, a system like this could quite easily be adapted for multiple marksdwarves, which would improve your throughput tremendously. Alternate repeater design (looking for a 100 on, 100 off) would also help.
Addendum[edit]
Shortly after detailing the above, one of my marksdwarves stopped wanting to fire in my adamantine factory, and it prompted me to rebuild it. On rebuild, I expanded the firing alley to five tiles (putting five baddies in the target zone), expanded the length of the firing alley to 18 tiles, and used a 2 z-drop offset (rather than the 1 z-drop offset detailed above) to give me a 13-tick window for firing. Since that redesign, I've seen firing rates (and thus bolt splitting rates) skyrocket-- even with only a single marksdwarf, while the factory could of course support 5. If you're actually going to design based on my specifications, I would highly recommend starting with a 2 z-drop, 13 tick offset. It makes a huge difference.