"""Волна N+12: vfbuild27 — 31 EF в afa.java (submitRoots lambda). Запуск: python3 tools/waves_n12.py""" import os, sys ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) JAVA = os.path.join(ROOT, "src/main/java") p = os.path.join(JAVA, "defpackage/afa.java") L = open(p, encoding="utf-8", errors="replace").read().splitlines() ok = True def edit(ln, pairs): global ok i = ln - 1 if i >= len(L): ok = False print(f"MISS {ln} oob") return line = L[i] for old, new in pairs: if old in line: line = line.replace(old, new) elif new not in line: ok = False print(f"MISS {ln}: {old!r} got {L[i].strip()!r}") return L[i] = line edit(159, [("apply(var7, var8, var12, var6)", "apply(var7f, var8f, var12f, var6)")]) for ln in range(153, 159): edit( ln, [ ("applyLimb(var7, var8, var11[", "applyLimb(var7f, var8f, var11f["), (", var10.", ", var10f."), ], ) edit(152, [("resetPose(var7, var8)", "resetPose(var7f, var8f)")]) edit(145, [("apply(var7, var8, var6)", "apply(var7f, var8f, var6)")]) # insert before 139 (submitRoots) INS = [ " final aif var7f = var7;", " final Map var8f = var8;", " final aez var10f = var10;", " final String[] var11f = var11;", " final aeu var12f = var12;", ] if ( L[138].strip().startswith("this.modelRenderer.submitRoots(") and "final aif var7f" not in L[133:139] ): L[138:138] = INS else: ok = False print(f"INSERT-MISS: L139 = {L[138].strip()[:60]!r}") open(p, "w", encoding="utf-8").write("\n".join(L) + "\n") print("OK" if ok else "PROBLEMS") sys.exit(0 if ok else 1)