Add readable MVP survival object proxies
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Verify 0.1.O readable survival-object proxy coverage."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
REQUIRED_SNIPPETS = {
|
||||
"Source/AgrarianGame/AgrarianCampfire.h": [
|
||||
"StoneRingProxy",
|
||||
"LogProxyA",
|
||||
"LogProxyB",
|
||||
"LogProxyC",
|
||||
"EmberProxy",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianCampfire.cpp": [
|
||||
"SM_AGR_Placeholder_Cylinder",
|
||||
"M_AGR_GZ_Wood_Resource",
|
||||
"M_AGR_GZ_Stone_Sandstone",
|
||||
"ConfigureCampfireProxyComponent",
|
||||
"LogProxyA->SetRelativeRotation",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianShelterActor.h": [
|
||||
"FloorProxy",
|
||||
"BackWallProxy",
|
||||
"LeftRoofProxy",
|
||||
"RightRoofProxy",
|
||||
"FrameProxyA",
|
||||
"FrameProxyB",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianShelterActor.cpp": [
|
||||
"SM_AGR_Placeholder_ChamferCube",
|
||||
"M_AGR_GZ_Fiber_Resource",
|
||||
"LeftRoofProxy->SetRelativeRotation",
|
||||
"ConfigureShelterProxyComponent",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianWaterSource.h": [
|
||||
"WaterSurfaceProxy",
|
||||
"StoneBankProxy",
|
||||
"CollectMarkerProxy",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianWaterSource.cpp": [
|
||||
"SM_AGR_Placeholder_Plane",
|
||||
"M_AGR_GZ_FreshWater",
|
||||
"WaterSurfaceProxy->SetCollisionEnabled(ECollisionEnabled::NoCollision)",
|
||||
"StoneBankProxy->SetCollisionEnabled(ECollisionEnabled::NoCollision)",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianItemPickup.h": [
|
||||
"BundleProxy",
|
||||
"StrapProxy",
|
||||
"ItemMarkerProxy",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianItemPickup.cpp": [
|
||||
"BundleProxy->SetRelativeRotation",
|
||||
"StrapProxy->SetCollisionEnabled(ECollisionEnabled::NoCollision)",
|
||||
"ItemMarkerProxy->SetCollisionEnabled(ECollisionEnabled::NoCollision)",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianResourceNode.h": [
|
||||
"ResourceClusterProxy",
|
||||
"HarvestableMarkerProxy",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianResourceNode.cpp": [
|
||||
"ResourceClusterProxy->SetRelativeRotation",
|
||||
"HarvestableMarkerProxy->SetCollisionEnabled(ECollisionEnabled::NoCollision)",
|
||||
"Mesh->SetVisibility(RemainingHarvests > 0, true)",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianWildlifeBase.h": [
|
||||
"WildlifeBodyProxy",
|
||||
"WildlifeHeadProxy",
|
||||
"WildlifeEarProxyA",
|
||||
"WildlifeEarProxyB",
|
||||
"WildlifeTailProxy",
|
||||
],
|
||||
"Source/AgrarianGame/AgrarianWildlifeBase.cpp": [
|
||||
"WildlifeBodyProxy->SetupAttachment(RootComponent)",
|
||||
"WildlifeHeadProxy->SetupAttachment(WildlifeBodyProxy)",
|
||||
"WildlifeTailProxy->SetRelativeRotation",
|
||||
"ConfigureWildlifeProxyComponent",
|
||||
],
|
||||
"Docs/CharactersAndObjects/MvpReadableSurvivalObjectProxies.md": [
|
||||
"MVP Readable Survival Object Proxies",
|
||||
"no collision",
|
||||
"Final realistic art should replace these proxies",
|
||||
],
|
||||
"AGRARIAN_DEVELOPMENT_ROADMAP.md": [
|
||||
"- [x] Replace box/sphere/cylinder survival objects with readable MVP meshes",
|
||||
"Added composed native proxy visuals for campfires, primitive shelters, pickups, resource nodes, water sources, and wildlife",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
missing: list[str] = []
|
||||
for relative_path, snippets in REQUIRED_SNIPPETS.items():
|
||||
path = ROOT / relative_path
|
||||
if not path.exists():
|
||||
missing.append(f"{relative_path}: file missing")
|
||||
continue
|
||||
|
||||
text = path.read_text(encoding="utf-8")
|
||||
for snippet in snippets:
|
||||
if snippet not in text:
|
||||
missing.append(f"{relative_path}: missing {snippet!r}")
|
||||
|
||||
if missing:
|
||||
print("Readable survival-object proxy verification failed:")
|
||||
for item in missing:
|
||||
print(f"- {item}")
|
||||
return 1
|
||||
|
||||
print("Readable survival-object proxy verification passed.")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user