EF waves N+35–N+43: lambda captures in 30 files (aph..zz), compileJava green
This commit is contained in:
parent
51b4c3cef2
commit
036d94952c
76 changed files with 2723 additions and 181 deletions
124
tools/waves_n35.py
Normal file
124
tools/waves_n35.py
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
"""Волна N+35: vfbuild52 — 36 EF в aph.java (3 метода, 4 лямбды).
|
||||
Запуск: python3 tools/waves_n35.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/aph.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, old, new):
|
||||
global ok
|
||||
i = ln - 1
|
||||
if i < len(L) and old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
elif i < len(L) and new in L[i]:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '<oob>').strip()!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, lines):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = lines[0].strip() in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
L[ip:ip] = lines
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:50]!r} next={L[ip].strip()[:50]!r}"
|
||||
)
|
||||
|
||||
|
||||
# --- line edits (descending) ---
|
||||
# region3: truncateAfterSubstring lambda (f-suffix)
|
||||
edit(392, "var8[0] = (boolean)", "var8f[0] = (boolean)")
|
||||
edit(388, "var5.setLength(", "var5f.setLength(")
|
||||
edit(
|
||||
387,
|
||||
"var4.append(Component.literal(var5.toString()).setStyle(var6[0]));",
|
||||
"var4f.append(Component.literal(var5f.toString()).setStyle(var6f[0]));",
|
||||
)
|
||||
edit(383, "var6[0] = var7x;", "var6f[0] = var7x;")
|
||||
edit(376, "var7.toString()", "var7f.toString()")
|
||||
edit(367, "var6[0]", "var6f[0]")
|
||||
edit(366, "var7.append(var9x);", "var7f.append(var9x);")
|
||||
edit(359, "var5.length() > 0", "var5f.length() > 0")
|
||||
edit(356, "var5.append(var9x);", "var5f.append(var9x);")
|
||||
# region2: replaceLastChar lambdaA (var3f) + lambdaB (f-suffix)
|
||||
edit(247, "var3[0] = var3[0]", "var3f[0] = var3f[0]")
|
||||
edit(227, "if (var7[0] != null)", "if (var7f[0] != null)")
|
||||
edit(215, "var7[0] = var7x;", "var7f[0] = var7x;")
|
||||
edit(214, "flushRun(var5, var6, var7[0]);", "flushRun(var5f, var6f, var7f[0]);")
|
||||
edit(199, "if (var8[0] == var4)", "if (var8f[0] == var4f)")
|
||||
edit(191, "if (!var7[0].equals(var7x))", "if (!var7f[0].equals(var7x))")
|
||||
edit(187, "var8[0] = var8[0]", "var8f[0] = var8f[0]")
|
||||
edit(186, "var6.appendCodePoint(var8x);", "var6f.appendCodePoint(var8x);")
|
||||
# region1: truncateAfterSecondSpace lambda (f-suffix)
|
||||
edit(109, "if (!var4.isEmpty())", "if (!var4f.isEmpty())")
|
||||
edit(106, "var7[0] = (boolean)", "var7f[0] = (boolean)")
|
||||
edit(98, "var4.appendCodePoint(var7x);", "var4f.appendCodePoint(var7x);")
|
||||
edit(90, "if (var6[0]", "if (var6f[0]")
|
||||
edit(85, "var5[0] = var6x;", "var5f[0] = var6x;")
|
||||
edit(78, "var6[0] = var6[0]", "var6f[0] = var6f[0]")
|
||||
edit(71, "var5[0]", "var5f[0]")
|
||||
edit(67, "var4.setLength(", "var4f.setLength(")
|
||||
edit(
|
||||
66,
|
||||
"var3.append(Component.literal(var4.toString()).setStyle(var5[0]));",
|
||||
"var3f.append(Component.literal(var4f.toString()).setStyle(var5f[0]));",
|
||||
)
|
||||
|
||||
# --- inserts (descending by line) ---
|
||||
insert_before(
|
||||
348,
|
||||
"var8 = var15;",
|
||||
"var3.accept(",
|
||||
[
|
||||
" final MutableComponent var4f = var4;",
|
||||
" final StringBuilder var5f = var5;",
|
||||
" final Style[] var6f = var6;",
|
||||
" final StringBuilder var7f = var7;",
|
||||
" final boolean[] var8f = var8;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
245, "var3 = var10000;", "var2.accept(", [" final int[] var3f = var3;"]
|
||||
)
|
||||
insert_before(
|
||||
177,
|
||||
"var8 = var16;",
|
||||
"var2.accept(",
|
||||
[
|
||||
" final int var4f = var4;",
|
||||
" final MutableComponent var5f = var5;",
|
||||
" final StringBuilder var6f = var6;",
|
||||
" final Style[] var7f = var7;",
|
||||
" final int[] var8f = var8;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
59,
|
||||
"var7 = var15;",
|
||||
"var2.accept(",
|
||||
[
|
||||
" final MutableComponent var3f = var3;",
|
||||
" final StringBuilder var4f = var4;",
|
||||
" final Style[] var5f = var5;",
|
||||
" final int[] var6f = var6;",
|
||||
" final boolean[] var7f = var7;",
|
||||
],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
71
tools/waves_n36.py
Normal file
71
tools/waves_n36.py
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
"""Волна N+36: vfbuild53 — 4 EF в apq.java (3 сайта). Запуск: python3 tools/waves_n36.py"""
|
||||
|
||||
import os, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/apq.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, old, new):
|
||||
global ok
|
||||
i = ln - 1
|
||||
if i < len(L) and old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
elif i < len(L) and new in L[i]:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '<oob>').strip()!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decl):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decl in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + decl]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:60]!r} next={L[ip].strip()[:60]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending), then inserts (descending) — line numbers stay valid
|
||||
# site 3 (line 666): addTask lambda captures non-EF var4 (int)
|
||||
edit(666, "var0 - var4, ContainerInput.SWAP", "var0 - var4f, ContainerInput.SWAP")
|
||||
# site 2 (line 536): addTask lambda captures non-EF var3 (Slot)
|
||||
edit(536, "swapAndUse(var3, var1)", "swapAndUse(var3f, var1)")
|
||||
# site 1 (line 344): nested filter lambda captures non-EF var4
|
||||
edit(344, ".equals(var4)", ".equals(var4f)")
|
||||
|
||||
insert_before(
|
||||
666,
|
||||
"case -730314354:",
|
||||
"app.addTask(() -> clickSlot(var1, var0 - var4f,",
|
||||
"final int var4f = var4;",
|
||||
)
|
||||
insert_before(
|
||||
536,
|
||||
"case 1613240963:",
|
||||
"app.addTask(() -> swapAndUse(var3f, var1));",
|
||||
"final Slot var3f = var3;",
|
||||
)
|
||||
insert_before(
|
||||
336,
|
||||
"var4 = var10;",
|
||||
"var5 = StreamSupport",
|
||||
"final MobEffectCategory var4f = var4;",
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
62
tools/waves_n37.py
Normal file
62
tools/waves_n37.py
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
"""Волна N+37: vfbuild54 — 4 EF в apt.java (2 метода). Запуск: python3 tools/waves_n37.py"""
|
||||
|
||||
import os, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/apt.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, old, new):
|
||||
global ok
|
||||
i = ln - 1
|
||||
if i < len(L) and old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
elif i < len(L) and new in L[i]:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '<oob>').strip()!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0].strip() in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:60]!r} next={L[ip].strip()[:60]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending), then inserts (descending)
|
||||
edit(560, "distanceToSqr(var2)", "distanceToSqr(var2f)")
|
||||
edit(431, "distanceToSqr(var5)", "distanceToSqr(var5f)")
|
||||
edit(430, "this.isValidPoint(var4, var4x,", "this.isValidPoint(var4f, var4x,")
|
||||
|
||||
insert_before(
|
||||
560,
|
||||
"var2 = mc.player.getEyePosition();",
|
||||
"distanceToSqr(var2f)",
|
||||
["final Vec3 var2f = var2;"],
|
||||
)
|
||||
insert_before(
|
||||
429,
|
||||
"case -446377969:",
|
||||
"return var1.stream()",
|
||||
["final Vec3 var4f = var4;", "final Vec3 var5f = var5;"],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
92
tools/waves_n38.py
Normal file
92
tools/waves_n38.py
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
"""Волна N+38: vfbuild57 — 9 EF-сайтов в auk.java (2 метода, 5 лямбд).
|
||||
Запуск: python3 tools/waves_n38.py"""
|
||||
|
||||
import os, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/auk.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, old, new):
|
||||
global ok
|
||||
i = ln - 1
|
||||
if i < len(L) and old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
elif i < len(L) and new in L[i]:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '<oob>').strip()!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0].strip() in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:60]!r} next={L[ip].strip()[:60]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending)
|
||||
edit(
|
||||
247,
|
||||
"var4xx.start.add(var6), var4xx.end.add(var6)",
|
||||
"var4xx.start.add(var6f), var4xx.end.add(var6f)",
|
||||
)
|
||||
edit(244, "var5xx.move(var6),", "var5xx.move(var6f),")
|
||||
edit(237, "var1x.boxes.equals(var7)", "var1x.boxes.equals(var7f)")
|
||||
edit(152, "vertexQuad(var1, var9,", "vertexQuad(var1g, var9,")
|
||||
edit(135, "vertexQuad(var1, var10,", "vertexQuad(var1f, var10,")
|
||||
edit(125, "arj.draw(var3, var3x);", "arj.draw(var3g, var3x);")
|
||||
edit(97, "arj.begin(var3);", "arj.begin(var3g);")
|
||||
edit(81, "arj.draw(var3, var3x);", "arj.draw(var3f, var3x);")
|
||||
edit(54, "arj.begin(var3);", "arj.begin(var3f);")
|
||||
|
||||
# inserts (descending); f/g suffixes because case groups share switch scope
|
||||
insert_before(
|
||||
236,
|
||||
"var7 = var1.toAabbs();",
|
||||
"SHAPE_OUTLINES.stream()",
|
||||
["final List var7f = var7;", "final Vec3 var6f = var6;"],
|
||||
)
|
||||
insert_before(
|
||||
152,
|
||||
"BufferBuilder var9 = arj.begin(var5);",
|
||||
"QUAD.forEach(var2x -> vertexQuad(var1g, var9,",
|
||||
["final Pose var1g = var1;"],
|
||||
)
|
||||
insert_before(
|
||||
135,
|
||||
"BufferBuilder var10 = arj.begin(var6);",
|
||||
"QUAD_DEPTH.forEach(var2x -> vertexQuad(var1f, var10,",
|
||||
["final Pose var1f = var1;"],
|
||||
)
|
||||
insert_before(
|
||||
96,
|
||||
"var3 = arj.lines();",
|
||||
"var2.forEach(var2x -> {",
|
||||
["final RenderType var3g = var3;"],
|
||||
)
|
||||
insert_before(
|
||||
53,
|
||||
"var3 = arj.linesDepthNoWrite();",
|
||||
"var2.forEach(var2x -> {",
|
||||
["final RenderType var3f = var3;"],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
96
tools/waves_n39.py
Normal file
96
tools/waves_n39.py
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
"""Волна N+39: vfbuild60 — 18 EF в tr.java (submitDroplets + submitSplashes).
|
||||
Запуск: python3 tools/waves_n39.py"""
|
||||
|
||||
import os, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/tr.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, old, new):
|
||||
global ok
|
||||
i = ln - 1
|
||||
if i < len(L) and old in L[i]:
|
||||
L[i] = L[i].replace(old, new, 1)
|
||||
elif i < len(L) and new in L[i]:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '<oob>').strip()!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0].strip() in "\n".join(L[max(0, ip - 8) : ip + 12])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:60]!r} next={L[ip].strip()[:60]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending): region2 (submitSplashes) then region1 (submitDroplets)
|
||||
edit(1601, "var11x < var10", "var11x < var10f")
|
||||
edit(1596, "var8 * (1.0F", "var8f * (1.0F")
|
||||
edit(1582, "var6 - this.splashStart", "var6f - this.splashStart")
|
||||
edit(1581, "(var11 + var11x)", "(var11f + var11x)")
|
||||
edit(
|
||||
1574,
|
||||
"var14x * var9.x() + var16x * var9.y() + var18 * var9.z()",
|
||||
"var14x * var9f.x() + var16x * var9f.y() + var18 * var9f.z()",
|
||||
)
|
||||
edit(
|
||||
1452,
|
||||
"var18x * var12 + var19x * var13 + var20x * var14",
|
||||
"var18x * var12f + var19x * var13f + var20x * var14f",
|
||||
)
|
||||
edit(1400, "-var6 / var13x", "-var6f / var13x")
|
||||
edit(1398, "var6 * var6", "var6f * var6f")
|
||||
edit(1387, "var17x < var15", "var17x < var15f")
|
||||
edit(1369, "var29 = var10 * var22x", "var29 = var10f * var22x")
|
||||
edit(1368, "var28 = var8 * this.dropSpeed", "var28 = var8f * this.dropSpeed")
|
||||
edit(1367, "Math.max(var9,", "Math.max(var9f,")
|
||||
|
||||
# inserts (descending)
|
||||
insert_before(
|
||||
1524,
|
||||
"var11 = this.splashHead;",
|
||||
"var1.submitCustomGeometry(var2, arj.positionColorDepthNoWrite(), (var9x, var10x) -> {",
|
||||
[
|
||||
"final long var6f = var6;",
|
||||
"final float var8f = var8;",
|
||||
"final Vector3fc var9f = var9;",
|
||||
"final int var10f = var10;",
|
||||
"final int var11f = var11;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
1329,
|
||||
"var15 = this.dropCount;",
|
||||
"var1.submitCustomGeometry(var2, arj.positionColorDepthNoWrite(), (var11x, var12x) -> {",
|
||||
[
|
||||
"final float var6f = var6;",
|
||||
"final float var8f = var8;",
|
||||
"final float var9f = var9;",
|
||||
"final float var10f = var10;",
|
||||
"final float var12f = var12;",
|
||||
"final float var13f = var13;",
|
||||
"final float var14f = var14;",
|
||||
"final int var15f = var15;",
|
||||
],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
75
tools/waves_n40.py
Normal file
75
tools/waves_n40.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
"""Волна N+40: vfbuild70 — 31 EF в op.java (5 методов, 9 групп лямбд).
|
||||
Запуск: python3 tools/waves_n40.py"""
|
||||
|
||||
import os, re, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/op.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, name):
|
||||
"""rename all whole-word `name` occurrences on line ln to name+'f'"""
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = re.sub(rf"\b{name}\b", name + "f", L[i])
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
elif name + "f" not in L[i]:
|
||||
ok = False
|
||||
print(f"MISS {ln}: no {name} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decl):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decl in "\n".join(L[max(0, ip - 8) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + decl]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:70]!r} next={L[ip].strip()[:70]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending line numbers)
|
||||
for ln in (1452, 1451, 1450, 1441, 1440, 1439, 1428, 1427, 1426):
|
||||
edit(ln, "var5")
|
||||
for ln in (1336, 1335, 1334):
|
||||
edit(ln, "var4")
|
||||
for ln in (1306, 1304, 1302, 1293, 1292, 1291):
|
||||
edit(ln, "var5")
|
||||
for ln in (1205, 1204, 1203):
|
||||
edit(ln, "var4")
|
||||
for ln in (1166, 1165, 1164, 1153, 1152, 1151):
|
||||
edit(ln, "var4")
|
||||
|
||||
# inserts (descending): one copy per method/case group
|
||||
insert_before(
|
||||
1418,
|
||||
"var7 = var6.toLowerCase(Locale.ROOT);",
|
||||
"var0.add(",
|
||||
"final aso var5f = var5;",
|
||||
)
|
||||
insert_before(1326, "var4 = var1[var3];", "var0.add(", "final od var4f = var4;")
|
||||
insert_before(
|
||||
1283, "var7 = var6.toLowerCase(Locale.ROOT);", "var0.add(", "final oe var5f = var5;"
|
||||
)
|
||||
insert_before(
|
||||
1195, "var5 = titleCase(((ob)var4).name());", "var0.add(", "final ob var4f = var4;"
|
||||
)
|
||||
insert_before(
|
||||
1143, "var6 = var5.toLowerCase(Locale.ROOT);", "var0.add(", "final nz var4f = var4;"
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
75
tools/waves_n41.py
Normal file
75
tools/waves_n41.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
"""Волна N+41: vfbuild73 — 16 EF в ts.java (submitFlakes).
|
||||
Запуск: python3 tools/waves_n41.py"""
|
||||
|
||||
import os, re, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/ts.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, *names):
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = L[i]
|
||||
for name in names:
|
||||
new = re.sub(rf"\b{name}\b", name + "f", new)
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: none of {names} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0] in "\n".join(L[max(0, ip - 12) : ip + 8])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:70]!r} next={L[ip].strip()[:70]!r}"
|
||||
)
|
||||
|
||||
|
||||
# edits first (descending)
|
||||
edit(1226, "var7")
|
||||
edit(1222, "var6")
|
||||
edit(1212, "var10", "var11", "var12")
|
||||
edit(1180, "var13", "var14")
|
||||
edit(1179, "var13", "var15")
|
||||
edit(1178, "var14", "var15")
|
||||
edit(1155, "var16")
|
||||
edit(1125, "var15")
|
||||
edit(1124, "var14")
|
||||
edit(1123, "var13")
|
||||
|
||||
insert_before(
|
||||
1069,
|
||||
"var16 = this.flakeCount;",
|
||||
"var1.submitCustomGeometry(var2, arj.positionColorDepthNoWrite(), (var12x, var13x) -> {",
|
||||
[
|
||||
"final float var6f = var6;",
|
||||
"final float var7f = var7;",
|
||||
"final float var10f = var10;",
|
||||
"final float var11f = var11;",
|
||||
"final float var12f = var12;",
|
||||
"final float var13f = var13;",
|
||||
"final float var14f = var14;",
|
||||
"final float var15f = var15;",
|
||||
"final int var16f = var16;",
|
||||
],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
126
tools/waves_n42.py
Normal file
126
tools/waves_n42.py
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
"""Волна N+42: vfbuild75 — 42 EF в up.java (render, renderBlood, renderSoul ×2).
|
||||
Запуск: python3 tools/waves_n42.py"""
|
||||
|
||||
import os, re, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/up.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, *names):
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = L[i]
|
||||
for name in names:
|
||||
new = re.sub(rf"\b{name}\b", name + "f", new)
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: none of {names} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0] in "\n".join(L[max(0, ip - 12) : ip + 10])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:70]!r} next={L[ip].strip()[:70]!r}"
|
||||
)
|
||||
|
||||
|
||||
# --- edits (descending) ---
|
||||
# Region D: renderSoul, 2nd lambda (drawBox)
|
||||
edit(2958, "var14")
|
||||
edit(2957, "var13")
|
||||
for ln in (2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949):
|
||||
edit(ln, "var20")
|
||||
# Region C: renderSoul, 1st lambda (emitBoltSegment)
|
||||
edit(2881, "var15")
|
||||
edit(2877, "var11")
|
||||
edit(2875, "var6")
|
||||
edit(2874, "var6")
|
||||
edit(2873, "var6")
|
||||
# Region B: renderBlood lambda
|
||||
for ln, name in (
|
||||
(2682, "var16"),
|
||||
(2681, "var15"),
|
||||
(2680, "var14"),
|
||||
(2679, "var13"),
|
||||
(2678, "var12"),
|
||||
(2677, "var11"),
|
||||
):
|
||||
edit(ln, name)
|
||||
# Region A: render lambda (drawBox ×2)
|
||||
edit(2180, "var15")
|
||||
edit(2179, "var10")
|
||||
for ln in (2178, 2177, 2176, 2175, 2174):
|
||||
edit(ln, "var16")
|
||||
edit(2173, "var19")
|
||||
edit(2172, "var18")
|
||||
edit(2171, "var17")
|
||||
edit(2166, "var17", "var18", "var19", "var16", "var10", "var15")
|
||||
|
||||
# --- inserts (descending) ---
|
||||
insert_before(
|
||||
2943,
|
||||
"var2.translate(var20.centerXPx() * 0.0625F, var20.centerYPx() * 0.0625F, 0.0F);",
|
||||
"var3.submitCustomGeometry(",
|
||||
[
|
||||
"final float var13f = var13;",
|
||||
"final float var14f = var14;",
|
||||
"final um var20f = var20;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
2843,
|
||||
"var15 = var9;",
|
||||
"var3.submitCustomGeometry(",
|
||||
[
|
||||
"final float var6f = var6;",
|
||||
"final float var11f = var11;",
|
||||
"final float var15f = var15;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
2617,
|
||||
"case 1921332157:",
|
||||
"var3.submitCustomGeometry(",
|
||||
[
|
||||
"final float var11f = var11;",
|
||||
"final float var12f = var12;",
|
||||
"final float var13f = var13;",
|
||||
"final float var14f = var14;",
|
||||
"final float var15f = var15;",
|
||||
"final float var16f = var16;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
2162,
|
||||
"var19 = var16.depthPx() * 0.0625F * 0.5F;",
|
||||
"var3.submitCustomGeometry(",
|
||||
[
|
||||
"final int var10f = var10;",
|
||||
"final int var15f = var15;",
|
||||
"final um var16f = var16;",
|
||||
"final float var17f = var17;",
|
||||
"final float var18f = var18;",
|
||||
"final float var19f = var19;",
|
||||
],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
150
tools/waves_n43.py
Normal file
150
tools/waves_n43.py
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
"""Волна N+43: vfbuild79 — 22 EF в vp.java (renderCircles/renderTextures/renderRings,
|
||||
по 2 лямбды на метод → суффиксы f/g в рамках одного switch).
|
||||
Запуск: python3 tools/waves_n43.py"""
|
||||
|
||||
import os, re, sys
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
p = os.path.join(ROOT, "src/main/java/defpackage/vp.java")
|
||||
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
||||
ok = True
|
||||
|
||||
|
||||
def edit(ln, *names):
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = L[i]
|
||||
for name in names:
|
||||
new = re.sub(rf"\b{name}\b", name, new) # placeholder, replaced below
|
||||
new = L[i]
|
||||
for name in names:
|
||||
new = re.sub(rf"\b{name}\b", name + "f", new)
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: none of {names} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def editg(ln, *names):
|
||||
global ok
|
||||
i = ln - 1
|
||||
new = L[i]
|
||||
for name in names:
|
||||
new = re.sub(rf"\b{name}\b", name + "g", new)
|
||||
if new != L[i]:
|
||||
L[i] = new
|
||||
else:
|
||||
ok = False
|
||||
print(f"MISS {ln}: none of {names} in {L[i].strip()[:90]!r}")
|
||||
|
||||
|
||||
def insert_before(ln, anchor_prev, anchor_next, decls):
|
||||
global ok
|
||||
ip = ln - 1
|
||||
prev_ok = anchor_prev in L[ip - 1]
|
||||
next_ok = anchor_next in L[ip]
|
||||
done = decls[0] in "\n".join(L[max(0, ip - 12) : ip + 10])
|
||||
if prev_ok and next_ok and not done:
|
||||
line = L[ip]
|
||||
indent = line[: len(line) - len(line.lstrip())]
|
||||
L[ip:ip] = [indent + d for d in decls]
|
||||
elif done:
|
||||
pass
|
||||
else:
|
||||
ok = False
|
||||
print(
|
||||
f"INSERT-MISS {ln}: prev={L[ip - 1].strip()[:70]!r} next={L[ip].strip()[:70]!r}"
|
||||
)
|
||||
|
||||
|
||||
# --- edits (descending, suffix f = 1st lambda of method, g = 2nd) ---
|
||||
# renderRings L2 (g)
|
||||
editg(1205, "var6")
|
||||
editg(1190, "var4")
|
||||
# renderRings L1 (f)
|
||||
edit(1127, "var4")
|
||||
# renderTextures L2 (g)
|
||||
editg(1045, "var6")
|
||||
editg(1044, "var5")
|
||||
editg(1038, "var8")
|
||||
editg(1037, "var7")
|
||||
editg(1009, "var9")
|
||||
editg(1008, "var11")
|
||||
# renderTextures L1 (f)
|
||||
edit(964, "var11", "var9")
|
||||
# renderCircles L2 (g)
|
||||
editg(775, "var9", "var7")
|
||||
# renderCircles L1 (f)
|
||||
edit(732, "var11")
|
||||
edit(731, "var11")
|
||||
edit(720, "var4")
|
||||
edit(719, "var6")
|
||||
edit(718, "var5")
|
||||
edit(711, "var11")
|
||||
edit(695, "var9", "var7")
|
||||
|
||||
# --- inserts (descending) ---
|
||||
insert_before(
|
||||
1147,
|
||||
"boolean var10 = this.ringGlowSetting.isEnabled();",
|
||||
"var1.submitCustomGeometry(var2, textureLayer(RING_TEXTURE), (var6x, var7x) -> {",
|
||||
[
|
||||
"final long var4g = var4;",
|
||||
"final float var6g = var6;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
1114,
|
||||
"var4 = System.currentTimeMillis();",
|
||||
"this.rings.removeIf(var2x -> {",
|
||||
["final long var4f = var4;"],
|
||||
)
|
||||
insert_before(
|
||||
996,
|
||||
"var17 = textureLayer((Identifier)var16);",
|
||||
"var1.submitCustomGeometry(var2, var17, (var10, var11x) -> {",
|
||||
[
|
||||
"final int var5g = var5;",
|
||||
"final int var6g = var6;",
|
||||
"final float var7g = var7;",
|
||||
"final float var8g = var8;",
|
||||
"final long var9g = var9;",
|
||||
"final long var11g = var11;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
940,
|
||||
"var11 = System.currentTimeMillis();",
|
||||
"this.textures.removeIf(var4x -> {",
|
||||
[
|
||||
"final long var9f = var9;",
|
||||
"final long var11f = var11;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
767,
|
||||
"var11 = 48;",
|
||||
"this.circles.removeIf(var4x -> {",
|
||||
[
|
||||
"final long var7g = var7;",
|
||||
"final long var9g = var9;",
|
||||
],
|
||||
)
|
||||
insert_before(
|
||||
677,
|
||||
"case 1353796141:",
|
||||
"var2.submitCustomGeometry(var1, arj.positionColor(), (var10, var11x) -> {",
|
||||
[
|
||||
"final int var4f = var4;",
|
||||
"final float var5f = var5;",
|
||||
"final float var6f = var6;",
|
||||
"final long var7f = var7;",
|
||||
"final long var9f = var9;",
|
||||
"final int var11f = var11;",
|
||||
],
|
||||
)
|
||||
|
||||
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
||||
print("OK" if ok else "PROBLEMS")
|
||||
sys.exit(0 if ok else 1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue