Structures stay incomplete on the I-screen after they look finished #20

Open
opened 2026-08-23 09:39:45 +00:00 by rhelwig · 1 comment
Owner

Current behavior

Loaded settlements still list staged structures on the Info (I) overlay and Trade Board project list as incomplete, often stuck at 99% or "under construction", after the building in the world already looks finished.

Church sanctuary, Sunday service, and civic-pride comfort all require complete=true on the chapel site. If that flag is never set, or is later cleared, those features stay off even when the church is standing.

Expected behavior

  • When every required authored block is present in the world, the site should become complete=true and that flag should persist.
  • The I-screen / Trade Board should show the structure as finished (100%, not listed as an active project).
  • Leftover foundation fill, obsolete air/clearance cells, optional tiles (b brewing stand, g copper bell), bed occupancy, and auto-connected stair/fence shapes should not keep a finished building incomplete.
  • A finished site should not reopen just because the Java blueprint later gained extra cells (chapel candle shelves, panes, towers). Repair should reopen only when a required block is actually missing.

Likely causes

  • SettlementConstructionWork.reconcileBuildSiteWithWorld appends every missing currentBlueprintBlocks cell onto existing sites, which reopens already-finished buildings after blueprint edits.
  • isRequiredBuildSiteBlock / currentBlueprintSymbol still treat leftover foundation '0' dirt cells as required, so buried fill that was never swapped to dirt keeps the site incomplete.
  • isComplete / isBuildSiteCompleteForDisplay walk stored cells rather than the current required plan, and complete is recomputed every reconcile instead of being sealed once the world matches.
  • Exact-state matching for beds/stairs/fences can flip PLACED back to PENDING (occupied beds, connected stair shape).

Files

  • src/main/java/com/ronhelwig/livevillages/sim/SettlementConstructionWork.java
  • src/main/java/com/ronhelwig/livevillages/sim/SettlementConstruction.java
  • src/main/java/com/ronhelwig/livevillages/network/LiveVillagesNetworking.java
  • src/main/java/com/ronhelwig/livevillages/menu/TradeBoardLogic.java

Notes

Sanctuary (SettlementChurchSanctuary) only applies to completed CLERIC_SHRINE sites, so this also blocks church safety.


Migrated from https://github.com/rhelwig/LiveVillages/issues/20
Original author: rhelwig
Original labels: none

## Current behavior Loaded settlements still list staged structures on the Info (`I`) overlay and Trade Board project list as incomplete, often stuck at `99%` or "under construction", after the building in the world already looks finished. Church sanctuary, Sunday service, and civic-pride comfort all require `complete=true` on the chapel site. If that flag is never set, or is later cleared, those features stay off even when the church is standing. ## Expected behavior - When every **required** authored block is present in the world, the site should become `complete=true` and that flag should persist. - The I-screen / Trade Board should show the structure as finished (`100%`, not listed as an active project). - Leftover foundation fill, obsolete air/clearance cells, optional tiles (`b` brewing stand, `g` copper bell), bed occupancy, and auto-connected stair/fence shapes should not keep a finished building incomplete. - A finished site should not reopen just because the Java blueprint later gained extra cells (chapel candle shelves, panes, towers). Repair should reopen only when a required block is actually missing. ## Likely causes - `SettlementConstructionWork.reconcileBuildSiteWithWorld` appends every missing `currentBlueprintBlocks` cell onto existing sites, which reopens already-finished buildings after blueprint edits. - `isRequiredBuildSiteBlock` / `currentBlueprintSymbol` still treat leftover foundation `'0'` dirt cells as required, so buried fill that was never swapped to dirt keeps the site incomplete. - `isComplete` / `isBuildSiteCompleteForDisplay` walk stored cells rather than the current required plan, and `complete` is recomputed every reconcile instead of being sealed once the world matches. - Exact-state matching for beds/stairs/fences can flip `PLACED` back to `PENDING` (occupied beds, connected stair `shape`). ## Files - `src/main/java/com/ronhelwig/livevillages/sim/SettlementConstructionWork.java` - `src/main/java/com/ronhelwig/livevillages/sim/SettlementConstruction.java` - `src/main/java/com/ronhelwig/livevillages/network/LiveVillagesNetworking.java` - `src/main/java/com/ronhelwig/livevillages/menu/TradeBoardLogic.java` ## Notes Sanctuary (`SettlementChurchSanctuary`) only applies to completed `CLERIC_SHRINE` sites, so this also blocks church safety. --- Migrated from https://github.com/rhelwig/LiveVillages/issues/20 Original author: `rhelwig` Original labels: none
Author
Owner

Implemented on the working tree:

  • Required-block completion now ignores leftover foundation dirt fill and optional tiles (b, g).
  • Finished sites persist complete=true and do not reopen when a later blueprint edit adds cells. Repair still reopens if a required block is actually missing.
  • Stair/fence/bed placement matching ignores auto-connected shape, fence connections, and bed occupancy so those no longer flip PLACED back to PENDING.
  • I-screen / Trade Board display now uses the same SettlementConstruction.isBuildSiteComplete check.

Church sanctuary, Sunday service, and civic-pride comfort can now see a completed chapel as complete.


Migrated comment by rhelwig from https://github.com/rhelwig/LiveVillages/issues/20#issuecomment-5333993319

Implemented on the working tree: - Required-block completion now ignores leftover foundation dirt fill and optional tiles (`b`, `g`). - Finished sites persist `complete=true` and do not reopen when a later blueprint edit adds cells. Repair still reopens if a required block is actually missing. - Stair/fence/bed placement matching ignores auto-connected `shape`, fence connections, and bed occupancy so those no longer flip `PLACED` back to `PENDING`. - I-screen / Trade Board display now uses the same `SettlementConstruction.isBuildSiteComplete` check. Church sanctuary, Sunday service, and civic-pride comfort can now see a completed chapel as complete. --- Migrated comment by `rhelwig` from https://github.com/rhelwig/LiveVillages/issues/20#issuecomment-5333993319
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ronhelwig.com/live-villages#20
No description provided.