63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""Verify the Ground Zero visual asset acquisition queue stays actionable."""
|
|
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
QUEUE = ROOT / "Docs" / "Art" / "GroundZeroAssetAcquisitionQueue.md"
|
|
BIOME_PLAN = ROOT / "Docs" / "World" / "BiomeAndNaturalResourceGenerationPlan.md"
|
|
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
|
|
|
|
REQUIRED_QUEUE = [
|
|
"Free Shrubs Pack (Ultra Realistic Wind)",
|
|
"Mediterranean Vegetation: Plant Pack I",
|
|
"temperate Vegetation: optimized Grass Library",
|
|
"Soul: Cave",
|
|
"Modular Rural House & Pine Forest Environment",
|
|
"/home/nathan/AssetStaging/Agrarian/Incoming",
|
|
"verify_asset_license_free_only.py",
|
|
"persistent world-resource record",
|
|
]
|
|
|
|
REQUIRED_BIOME_PLAN = [
|
|
"weighted macro/regional/local biome blends",
|
|
"Persistent Natural Resources",
|
|
"removed/depleted timestamp",
|
|
"Player-removed trees and shrubs stay removed",
|
|
"realistic seasonal timelines",
|
|
"asset sets by biome weight",
|
|
]
|
|
|
|
REQUIRED_ROADMAP = [
|
|
"Ground Zero asset acquisition queue",
|
|
"Tile Biome And Natural Resource Foundation",
|
|
"persistent removable natural resource records",
|
|
]
|
|
|
|
|
|
def require_snippets(path: Path, snippets: list[str]) -> list[str]:
|
|
if not path.exists():
|
|
return [f"missing file: {path.relative_to(ROOT)}"]
|
|
text = path.read_text(encoding="utf-8")
|
|
return [
|
|
f"{path.relative_to(ROOT)} missing {snippet!r}"
|
|
for snippet in snippets
|
|
if snippet not in text
|
|
]
|
|
|
|
|
|
def main() -> None:
|
|
failures: list[str] = []
|
|
failures.extend(require_snippets(QUEUE, REQUIRED_QUEUE))
|
|
failures.extend(require_snippets(BIOME_PLAN, REQUIRED_BIOME_PLAN))
|
|
failures.extend(require_snippets(ROADMAP, REQUIRED_ROADMAP))
|
|
|
|
if failures:
|
|
raise SystemExit("\n".join(failures))
|
|
|
|
print("Ground Zero asset queue and biome/resource plan verification complete.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|