From 27be644ae6f9b20979524272dc46d9da29ad22d2 Mon Sep 17 00:00:00 2001 From: nathan Date: Mon, 18 May 2026 10:48:31 -0700 Subject: [PATCH] Decide MVP shelter building style --- AGRARIAN_DEVELOPMENT_ROADMAP.md | 6 ++++- Docs/TechnicalDesignDocument.md | 8 ++++-- .../verify_shelter_building_style_decision.py | 25 +++++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 Scripts/verify_shelter_building_style_decision.py diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index dcc9632..d1934b3 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -604,7 +604,11 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe ## 0.1.I Shelter Building -- [ ] Decide MVP building style. +- [x] Decide MVP building style. MVP shelter building uses a crafted-kit style: + players gather natural materials, craft primitive frame/wall/roof panel + parts, combine them into one placeable primitive shelter, and place that + shelter through the server-authoritative placement component. Fully modular + wall-by-wall building stays deferred to `0.2.E Permanent Structures`. - [x] Create build placement mode. - [~] Add ghost preview. - [x] Add placement validation. diff --git a/Docs/TechnicalDesignDocument.md b/Docs/TechnicalDesignDocument.md index d74416c..a85f305 100644 --- a/Docs/TechnicalDesignDocument.md +++ b/Docs/TechnicalDesignDocument.md @@ -80,8 +80,12 @@ Early runtime systems should remain small and explicit: - Interaction component/classes: player-facing use/gather/build entry points. - Resource actors: gatherable wood, stone, fiber, water, wildlife, and future natural resources. -- Buildable actors: campfire, primitive shelter, frames, walls, roof panels, - and later settlement infrastructure. +- Buildable actors: campfire, one-piece primitive shelter kits, and later + settlement infrastructure. For the version 0.1 MVP, shelter construction is + intentionally kit-based: frame, wall panel, and roof panel items are crafted + as inventory parts and then combined into a single placeable primitive + shelter actor. Fully modular wall-by-wall construction is deferred to + permanent structures so the first survival loop remains reliable. - Persistence layer: save/load contracts for player and world state. Blueprints can compose and expose these systems, but core replicated behavior diff --git a/Scripts/verify_shelter_building_style_decision.py b/Scripts/verify_shelter_building_style_decision.py new file mode 100644 index 0000000..8d06fd8 --- /dev/null +++ b/Scripts/verify_shelter_building_style_decision.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md" +TECHNICAL_DESIGN = ROOT / "Docs" / "TechnicalDesignDocument.md" + + +def require(path: Path, text: str) -> None: + data = " ".join(path.read_text(encoding="utf-8").split()) + if text not in data: + raise SystemExit(f"FAIL: {path.relative_to(ROOT)} missing required text: {text}") + + +def main() -> None: + require(ROADMAP, "[x] Decide MVP building style.") + require(ROADMAP, "crafted-kit style") + require(ROADMAP, "Fully modular wall-by-wall building stays deferred") + require(TECHNICAL_DESIGN, "shelter construction is intentionally kit-based") + require(TECHNICAL_DESIGN, "Fully modular wall-by-wall construction is deferred") + print("PASS: MVP shelter building style decision is documented.") + + +if __name__ == "__main__": + main()