Ground widened add-building descriptor names

This commit is contained in:
Jan Petykiewicz 2026-04-19 02:01:26 -07:00
commit a3df447186
6 changed files with 287 additions and 15 deletions

View file

@ -115,8 +115,21 @@ def load_cargo_bindings(raw_table_path: Path) -> dict[int, dict[str, object]]:
}
def load_building_bindings(raw_table_path: Path) -> dict[int, dict[str, object]]:
bindings_path = raw_table_path.parent / "event-effects-building-bindings.json"
if not bindings_path.exists():
return {}
artifact = json.loads(bindings_path.read_text(encoding="utf-8"))
return {
int(binding["descriptor_id"]): binding
for binding in artifact.get("bindings", [])
}
def classify(
row: dict[str, object], cargo_bindings: dict[int, dict[str, object]]
row: dict[str, object],
cargo_bindings: dict[int, dict[str, object]],
building_bindings: dict[int, dict[str, object]],
) -> dict[str, object]:
descriptor_id = int(row["descriptor_id"])
label = str(row["label"])
@ -223,7 +236,11 @@ def classify(
executable_in_runtime = True
elif 503 <= descriptor_id <= 613:
parameter_family = "world_building_spawn"
label = f"Add Building Slot {descriptor_id - 502}"
binding = building_bindings.get(descriptor_id)
if binding is not None:
label = f"Add Building {binding['candidate_name']}"
else:
label = f"Add Building Slot {descriptor_id - 502}"
runtime_status = "shell_owned"
elif "Earthquake" in label or "Storm" in label:
parameter_family = "world_disaster_scalar"
@ -249,7 +266,11 @@ def main() -> None:
raw_artifact = json.loads(args.raw_table.read_text(encoding="utf-8"))
cargo_bindings = load_cargo_bindings(args.raw_table)
descriptors = [classify(row, cargo_bindings) for row in raw_artifact["descriptors"]]
building_bindings = load_building_bindings(args.raw_table)
descriptors = [
classify(row, cargo_bindings, building_bindings)
for row in raw_artifact["descriptors"]
]
artifact = {
"descriptor_count": len(descriptors),
"raw_table_binary_sha256": raw_artifact.get("binary_sha256"),