Decide MVP shelter opening scope
This commit is contained in:
@@ -623,7 +623,9 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
|
||||
the craftable `primitive_roof_panel` inventory construction part consumed by
|
||||
the primitive shelter recipe; separately placeable modular roofs remain
|
||||
deferred to `0.2.E Permanent Structures`.
|
||||
- [ ] Add door/opening if needed.
|
||||
- [x] Add door/opening if needed. MVP primitive shelters use an open entrance
|
||||
with no interactive door; door actors, locks, permissions, and modular
|
||||
openings remain deferred to `0.2.E Permanent Structures`.
|
||||
- [x] Add resource cost validation.
|
||||
- [x] Add construction interaction.
|
||||
- [x] Add shelter protection volume.
|
||||
|
||||
@@ -92,6 +92,9 @@ Early runtime systems should remain small and explicit:
|
||||
- The MVP roof piece is `primitive_roof_panel`, a craftable inventory
|
||||
construction part consumed by the primitive shelter recipe rather than an
|
||||
independently placed roof actor.
|
||||
- MVP primitive shelters use an open entrance and do not include an
|
||||
interactive door. Door actors, locks, ownership permissions, and modular
|
||||
openings are deferred to permanent structures.
|
||||
- `UAgrarianBuildingPlacementComponent` owns the MVP placement preview. It
|
||||
traces from the player view, snaps to the configured grid, validates distance
|
||||
and collision, broadcasts Blueprint-readable preview state, and draws a
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/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 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 door/opening if needed.")
|
||||
require(ROADMAP, "MVP primitive shelters use an open entrance")
|
||||
require(ROADMAP, "door actors, locks, permissions, and modular openings remain deferred")
|
||||
require(TECHNICAL_DESIGN, "MVP primitive shelters use an open entrance")
|
||||
require(TECHNICAL_DESIGN, "Door actors, locks, ownership permissions, and modular openings are deferred")
|
||||
print("PASS: MVP shelter door/opening decision is documented.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user