Document MVP shelter wall piece

This commit is contained in:
2026-05-18 11:05:49 -07:00
parent 6baeca2783
commit 8c6aa7cdeb
3 changed files with 41 additions and 1 deletions
+4 -1
View File
@@ -615,7 +615,10 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
footprint at the snapped placement location for MVP development builds. footprint at the snapped placement location for MVP development builds.
- [x] Add placement validation. - [x] Add placement validation.
- [x] Add basic shelter piece. - [x] Add basic shelter piece.
- [ ] Add wall piece if needed. - [x] Add wall piece if needed. For the kit-based MVP style, the wall piece is
the craftable `primitive_wall_panel` inventory construction part consumed by
the primitive shelter recipe; separately placeable modular walls remain
deferred to `0.2.E Permanent Structures`.
- [ ] Add roof piece if needed. - [ ] Add roof piece if needed.
- [ ] Add door/opening if needed. - [ ] Add door/opening if needed.
- [x] Add resource cost validation. - [x] Add resource cost validation.
+3
View File
@@ -86,6 +86,9 @@ Early runtime systems should remain small and explicit:
as inventory parts and then combined into a single placeable primitive as inventory parts and then combined into a single placeable primitive
shelter actor. Fully modular wall-by-wall construction is deferred to shelter actor. Fully modular wall-by-wall construction is deferred to
permanent structures so the first survival loop remains reliable. permanent structures so the first survival loop remains reliable.
- The MVP wall piece is `primitive_wall_panel`, a craftable inventory
construction part consumed by the primitive shelter recipe rather than an
independently placed wall actor.
- `UAgrarianBuildingPlacementComponent` owns the MVP placement preview. It - `UAgrarianBuildingPlacementComponent` owns the MVP placement preview. It
traces from the player view, snaps to the configured grid, validates distance traces from the player view, snaps to the configured grid, validates distance
and collision, broadcasts Blueprint-readable preview state, and draws a and collision, broadcasts Blueprint-readable preview state, and draws a
+34
View File
@@ -0,0 +1,34 @@
#!/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"
ITEMS = ROOT / "Scripts" / "setup_item_definitions.py"
RECIPES = ROOT / "Scripts" / "setup_recipe_definitions.py"
RECIPE_VERIFY = ROOT / "Scripts" / "verify_recipe_definitions.py"
def compact(path: Path) -> str:
return " ".join(path.read_text(encoding="utf-8").split())
def require(path: Path, text: str) -> None:
data = compact(path)
if text not in data:
raise SystemExit(f"FAIL: {path.relative_to(ROOT)} missing required text: {text}")
def main() -> None:
require(ROADMAP, "[x] Add wall piece if needed.")
require(ROADMAP, "primitive_wall_panel")
require(TECHNICAL_DESIGN, "The MVP wall piece is `primitive_wall_panel`")
require(ITEMS, '"item_id": "primitive_wall_panel"')
require(RECIPES, '"recipe_id": "primitive_wall_panel"')
require(RECIPES, '("primitive_wall_panel", 4)')
require(RECIPE_VERIFY, '"recipe_id": "primitive_wall_panel"')
print("PASS: MVP shelter wall piece is defined as a craftable construction part.")
if __name__ == "__main__":
main()