Construction Worker Systems Overhauled – Shogun Exodus Devlog #46

A monochrome digital painting in a traditional Japanese ink wash style depicts a panoramic scene of a village under construction, featuring workers laboring on scaffolding, a samurai standing watch atop crates near a gateway, and rolling mountains in the hazy background.
Update 210 for Shogun Exodus introduces localized construction visuals, worker break management, and an overhaul to corpse hauling routines. Construction sites now operate on a per-scaffold presentation without locking or clearing entire rooms, backed by thirty new painterly wall assets spanning multiple meter widths, persistent build stages, and dedicated builder task ownership. In the task management interface, a new Breaks toggle allows workers to step away from active jobs to satisfy critical health and GOAP survival needs before resuming duties. Additionally, corpse removal has transitioned from a forced nearest-servant command into standard claimed hauling work, respecting player-defined priorities, work schedules, and break conditions.

Subsequent refinements address visual layering, environmental lighting, and interface readability. Construction walls now sit accurately beneath room-darkness overlays to reflect time of day and lamp illumination, while builder information is elevated to prevent actor occlusion. The construction progress display has been replaced with a stylized brush-fill shader featuring high-contrast percentage readouts. Alongside these gameplay and visual revisions, memory and rendering optimizations ensure that multi-stage assets and dynamic UI elements update efficiently without impacting save file compatibility.


Raw Patch Notes

UPDATE 2026-10-21 #210 - Local Construction Walls, Work Breaks and Corpse Hauling
- Placeable construction no longer evacuates or locks its room or invokes the sliding room-wide wall. Existing room APIs remain available. Each scaffold owns a reusable presentation, with delivery-based wall stages, a centered builder entry, a closed Working door and builder portrait/name/progress. Full unattended scaffolds show the decorated open-door 100 wall and persistent progress bar; materials and progress survive worker changes, interruption, death and save/load. Builder ownership prevents stale tasks from advancing/cancelling another worker's construction.
- Added 30 transparent painterly construction-wall PNGs: Art/BuildingParts/ConstructionWall/{1,3,4,5,6}_Meter_{1,26,51,76,100,Working}.png (six images per width). Each canvas is the corresponding scaffold dimensions plus 150px, with aligned baselines, centered doors and final decorations at 100/Working. The six original 2-meter images are unchanged. AssetDB IDs and mod-merged construction UI data control stage selection, dimensions and offsets. Artwork records and a review sheet are in DeveloperFiles.
- Jobs adds a saved Breaks checkbox before job assignments, enabled by default, with the requested tooltip. All jobs have moddable hover text. Critical Needs and Health yield work to existing GOAP fulfillment/recovery targets. Unavailable/failed fulfillment resumes work and retries that goal after one in-game hour; retry timestamps and active break state persist. Other goals retain ordinary urgency ranking, and Sleep breaks do not end merely for a shift start. Breaks off allows continued work despite critical needs. Per-goal allows_work_break and shared break defaults/cadence/retry are moddable.
- Corpse disposal is now ordinary claimed Haul work, respecting assignments/priorities/work hours/Breaks rather than a privileged nearest-Servant directive. CorpseSystem retains registry/disposal/mood behavior. Interruptions preserve the body; only already-picked-up corpses move on release. Task-claim pruning is scoped by building, and restored corpse work is reacquired through the task system. Active jobs release at shift end or assignment disabling without clearing completed work.
- Performance: no presentation frame loop, runtime pixel work, or permanent all-stage preload; shared live textures change at stage boundaries, active construction updates only its bar, and critical checks are staggered with cached configuration. Full requested source sizes have a theoretical all-width/all-stage RGBA texture footprint around 248 MiB before importer/compression overhead; actual residency depends on live stages and requires profiling.
- Files: Scripts/BasicWanderAI.gd, Construction/ConstructionScaffold.gd, Construction/ConstructionPresentation.gd, UI/JobsHUD.gd; Autoload/JobManager.gd, CorpseSystem.gd; Data/AI/jobs.json, ui_config.json, assets.json, LoadingScreenText.json; Art/BuildingParts/ConstructionWall (30 new PNGs); Mods/mod-guide.txt; DeveloperFiles/current-game-setup.txt, construction-wall-artwork.json, construction-wall-review.jpg, construction-work-validation.txt, construction-work-handoff.md, update-log.txt.
- Validation: static JSON/duplicate-key, image dimension/alpha/door-state/hash, asset/API/save-field, script string/delimiter/duplicate-method/resource-path and diff-whitespace checks. Artwork visually reviewed. No Godot compiler/runtime/FPS tests were run. Manual acceptance steps and performance limits are in DeveloperFiles/construction-work-handoff.md. No intentional save/mod compatibility break; no new autoload, sound or door movement animation.

- Follow-up after user testing: fixed builder occlusion by making only ConstructionPresentation's z_index absolute. Its layer 18 now sits above actor visuals at 15 and below separators at 20; previously the placement knob's inherited -18 cancelled it. No global/actor/room layer changes.
- Replaced the low-contrast construction bar with reusable BrushProgressBar: existing ThinLong black brush artwork rotated/stretched behind a 2px white outline and solid white progress fill, without percentage text. The existing construction UI config controls the artwork/rotation/colours/border. Rendering uses shared textures and simple canvas drawing only when redrawn, with no per-frame script or image processing.
- Follow-up files: Scripts/Construction/ConstructionPresentation.gd, Scripts/UI/BrushProgressBar.gd, Data/ui_config.json, Mods/mod-guide.txt, DeveloperFiles/current-game-setup.txt, update-log.txt, construction-work-handoff.md, construction-work-validation.txt. Static JSON/resource/API/delimiter and draw-layer checks performed; Godot checks remain builder occlusion/foreground order and bar readability at several progress values/zooms. No save/mod schema break; loading hints reviewed with no mechanic change.

- Lighting correction after user testing: moved only the construction wall to absolute layer 16, above Servant bodies (15) and below the existing room-darkness overlay (17), so room time-of-day and lamp reveal now affect it. Construction portrait/name/progress remain at separate absolute ui_z_index 18; other world layers are unchanged. No new lighting loop, query fan-out or per-scaffold darkness material.
- Progress correction: removed the rectangular frame/fill. The black brush itself now fills with an inverted white version from left to right, retaining its transparent painted outline. Added Art/Effects/BrushProgressFill.gdshader. Added centered Progress: X% text, with a black text outline for readability over either half. The shader and original brush texture are shared; each bar stores its own progress uniform, and label text changes only at whole-percent boundaries. No additional PNG was added.
- Data/docs: construction.z_index now defaults to 16; construction.ui_z_index defaults to 18. progress_bar now exposes text_format/font_size/text colours/text outline; old rectangular border settings are removed. Updated Mods/mod-guide.txt, DeveloperFiles/current-game-setup.txt and construction-work-handoff.md; focused static validation is recorded in construction-work-validation.txt. Loading hints reviewed; no player mechanic changed. Save data is unchanged; old border configuration is intentionally superseded. Godot checks remain shader import, room lighting, brush reveal/text and builder/UI occlusion at varied zooms.

*This is an automated post, using Python and LLMs to summarize game updates. Mistakes, while rare, may happen.


Leave a Reply

Your email address will not be published. Required fields are marked *