Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[suspendmanager] Detect and protect dead end constructions #658

Closed
wants to merge 1 commit into from

Conversation

plule
Copy link
Contributor

@plule plule commented Mar 27, 2023

Fixes DFHack/dfhack#3049 and DFHack/dfhack#3157

Replace the suspendmanager blocking detection. This new approach explore groups of connected construction jobs, and suspend corridors that would prevent accessing a deadend or the cluster entirely.

This approach handles many more situations, the most important being the issues linked above. It also behaves better for filling area, which was mentioned on discord.

It still have some short-coming, such as interior corridors in a big cluster not being suspended, and the general algorithm feeling more complicated than it should be but all my attempt to simplify the general logic lead to many blocking points...

Two situations where the previous approach would mostly fail, but are now well handled:

Two-z walls where dwarves must build the walls one by one:

suspendmanager-1

Area filling:

suspendmanager-2

@myk002
Copy link
Member

myk002 commented May 3, 2023

Have you made any progress on this? I'd like to get it into the next beta release if possible

@plule
Copy link
Contributor Author

plule commented May 3, 2023

Unfortunately no, I got a bit discouraged by not managing to find a clean approach... I'll attempt to get back on it this week-end to get it on a mergeable state, maybe off by default with a «experimental» warning in the UI if it feels too risky?

@myk002
Copy link
Member

myk002 commented May 3, 2023

That's why we have the beta branch on Steam. We can ask for testing and feedback there before we push a new public stable build.

@plule plule force-pushed the suspendmanager-deadend-detection branch from f9d103c to 39b308f Compare May 6, 2023 18:20
@plule plule marked this pull request as ready for review May 6, 2023 18:23
@plule plule force-pushed the suspendmanager-deadend-detection branch from 39b308f to d080e3e Compare May 6, 2023 18:24
@plule plule force-pushed the suspendmanager-deadend-detection branch from d080e3e to 0a0d036 Compare May 6, 2023 18:27
@plule plule marked this pull request as draft May 11, 2023 19:34
@plule
Copy link
Contributor Author

plule commented May 11, 2023

After using it for a few days there are a lot of case where it did not behave correctly and I had to disable it... putting back in draft

@plule
Copy link
Contributor Author

plule commented Jun 4, 2023

closing - will reopen after #721 that's just focused on the class refacto

@plule plule closed this Jun 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
2 participants