Add Ground Zero biome resources

This commit is contained in:
2026-05-14 06:53:02 -07:00
parent 7ffe3ec978
commit 8d20a90e02
8 changed files with 224 additions and 4 deletions
+74
View File
@@ -0,0 +1,74 @@
import unreal
MAP_PATH = "/Game/Agrarian/Maps/L_GroundZeroTerrain_Test"
EXPECTED_RESOURCE_LABELS = {
"wood": [
"AGR_DemoWoodResource_01",
"AGR_GZ_Wood_CoastalScrub_01",
"AGR_GZ_Wood_CoastalScrub_02",
"AGR_GZ_Wood_Hillside_03",
],
"fiber": [
"AGR_DemoFiberResource_01",
"AGR_GZ_Fiber_Grassland_01",
"AGR_GZ_Fiber_Grassland_02",
"AGR_GZ_Fiber_Scrub_03",
"AGR_GZ_Fiber_DrainageCandidate_04",
],
"stone": [
"AGR_GZ_Stone_Slope_01",
"AGR_GZ_Stone_Slope_02",
"AGR_GZ_Stone_ExposedTerrain_03",
"AGR_GZ_Stone_ValleyEdge_04",
],
}
def get_actor_label(actor):
try:
return actor.get_actor_label()
except Exception:
return actor.get_name()
def resource_item_id(actor):
item_asset = actor.get_editor_property("yield_item_definition")
definition = item_asset.get_editor_property("definition") if item_asset else None
return str(definition.get_editor_property("item_id")) if definition else ""
def main():
if not unreal.EditorLevelLibrary.load_level(MAP_PATH):
raise RuntimeError(f"Could not load map: {MAP_PATH}")
actors_by_label = {get_actor_label(actor): actor for actor in unreal.EditorLevelLibrary.get_all_level_actors()}
failures = []
for expected_item_id, labels in EXPECTED_RESOURCE_LABELS.items():
for label in labels:
actor = actors_by_label.get(label)
if not actor:
failures.append(f"{label} missing")
continue
actual_item_id = resource_item_id(actor)
if actual_item_id != expected_item_id:
failures.append(f"{label} expected {expected_item_id}, got {actual_item_id}")
if actor.get_editor_property("remaining_harvests") <= 0:
failures.append(f"{label} has no remaining harvests")
if failures:
raise RuntimeError("Ground Zero resource verification failed: " + "; ".join(failures))
unreal.log(
"Ground Zero resource verification complete: "
f"{len(EXPECTED_RESOURCE_LABELS['wood'])} wood, "
f"{len(EXPECTED_RESOURCE_LABELS['fiber'])} fiber, "
f"{len(EXPECTED_RESOURCE_LABELS['stone'])} stone nodes."
)
main()