Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: [40d]Deconstructing workshop with materials inside cancels planned constructions  (Read 823 times)

Rafal99

  • Bay Watcher
    • View Profile

Happened to me in 40c, but I also tested in fresh 40d install in a new world to make sure it is reproducable.

Steps to reproduce:
1. Build Mason's Workshop.
2. Set it to "Construct rock Blocks" and put it on Repeat. Make sure you don't have any blocks stockpiles so that all produced blocks stay in the workshop.
3. Wait for for it to produre lets say 25 blocks.
4. Designate 5x5 area to be filled with constructed walls using those blocks as material.
5. Set the workshop to be deconstructed while the blocks are still inside it.
6. At the moment it deconstructs you get:

Urist McMason cancels Construct Building: Job item lost or destroyed. x20
The dwarves were unable to complete the Wall. x20


And the desinged walls disappear...
Only if the mason is already haulding the block to the construction site, he will finish it normally. Also suspended constructions aren't canceled until you unsuspend them.

Probably happens with other workshops and materials, like wooden blocks and metal bars but I haven't it tested yet.
« Last Edit: September 10, 2008, 12:56:28 pm by Rafal99 »
Logged
The spinning Tantrum Spiral strikes The Fortress in the meeting hall!
It explodes in gore!
The Fortress has been struck down.

Derakon

  • Bay Watcher
    • View Profile

I suspect this is due to job items being stored on the basis of their location (e.g. "this wall will be constructed using the piece of microcline at 124,40,5"). When you deconstruct the workshop, the items in it are forced to move - this means that the link between job and item is broken.

I bet a similar thing would happen if you used water to push construction materials around.
Logged
Jetblade - an open-source Metroid/Castlevania game with procedurally-generated levels

Rafal99

  • Bay Watcher
    • View Profile

It seems you are right that any change in material position removes the construction designations. I haven't tested water pushing items, but tested a cave-in.
I dumped all rock blocks into a 1x1 area 1 Z level above ground supported only by a support connected to lever, and accessible by bridge (cause bridges doesn't support constructions so i could cave in that tile).
I unforbidden all blocks dumped in that tile then designated a 5x5 area of walls made of blocks to be built. My masons started picking up the blocks and running into construction site. Then i tell my dwarves to pull the lever... Support disappears, floor with 20 rock blocks in it falls 1 Z level down and 5 seconds later:

Urist McMason cancels Construct Building: Job item lost or destroyed. x20
The dwarves were unable to complete the Wall. x20


And the unbuild-yet part of my 5x5 block of walls disappear again...
« Last Edit: September 10, 2008, 04:12:09 pm by Rafal99 »
Logged
The spinning Tantrum Spiral strikes The Fortress in the meeting hall!
It explodes in gore!
The Fortress has been struck down.

Noble Digger

  • Bay Watcher
    • View Profile

It would be nice if the construction material selection lists only assigned specific materials to construction jobs if you e
  • panded the list to show specific items. I often encounter a problem: there will be the main fortress area that all the dwarves can access, and then a small area that they cannot access due to a floor that I removed, and the block which used to be that floor sitting in the inaccessible area. When I try to rebuild that floor--which is accessible from both sides of the gap--the construction will queue up using the block that is inaccessible to any dwarf unless I specify a different block via the expanded list, or forbid the one that they are trying to use. This also does not generate any errors, but seems like a bug since no dwarf could access the block that was scheduled for use in this fashion.
Logged
quib·ble
1. To evade the truth or importance of an issue by raising trivial distinctions and objections.
2. To find fault or criticize for petty reasons; cavil.

numerobis

  • Bay Watcher
    • View Profile

I bet a similar thing would happen if you used water to push construction materials around.

You would be right.  Also, cave-ins.
Logged

Toady One

  • The Great
    • View Profile
    • http://www.bay12games.com

Job items aren't stored by location.  The only thing that can cause that message for a construction job are if the job references are wiped from the item.  It's possible that falling out of a building kills all of the references.  I'm not sure what the mechanism is for cave-ins -- probably because the item becomes a projectile briefly, and projectiles get their job references wiped.
Logged
The Toad, a Natural Resource:  Preserve yours today!

Noble Digger

  • Bay Watcher
    • View Profile

1. Channel out a square of 8 floors so there is a 1x1 tile unconnected to the surrounding area.
2. Place a floor to connect the tile.
3. Put a 1x1 bar\block stockpile and alter the settings so a single stone block is placed on the tile, not a bin.
4. Remove the floor.
5. Remove the stockpile so the block is sitting alone and inaccessible.
6. Attempt to place a floor made of the same type of block as the one on the island, selecting the block from the collapsed list, not the expanded (specific block) list.
7. ---> The dwarves will queue construction using the inaccessible block on the island and it will never happen.

Dwarves ought to know that the item is not accessible, and I realize there are border cases where changing this behavior may cause problems, but I feel that an acceptable solution is for dwarves to use any same-type accessible block to complete a job rather than insisting on a specific location-determined block based on proximity to the job site. Using the expanded list still specifies a certain block, however.
Logged
quib·ble
1. To evade the truth or importance of an issue by raising trivial distinctions and objections.
2. To find fault or criticize for petty reasons; cavil.

numerobis

  • Bay Watcher
    • View Profile

Here's a test case I've played with / suffered from: embark on the ocean shore.  Chop or bring some wood.  Make a stockpile on the beach, where waves can push stuff around.  Make a construction with the wood.

When the waves push the wood around, dwarves will walk to where they expect the log to be, find it missing, then a yellow "the dwarves were unable to finish the wall" message will pop up and your wall will have a gap.

Tragic experience has me knowing the same happens with materials shoved around after a cavein.
Logged