Files
Spine_lab/tools/deobf/anchors.tsv
T
tianmo d9ea449b64 面板增删改查 + Inspector + 可识别源码版(src-named)
面板(viewpanel/src/com/spineview/)
- ObjectPanel:Refresh / New Bone / New Slot / New BBox / New Path / Delete / Rename / Inspect + 名字输入框 + 对象列表(点行=选中)+ 状态行,全英文。
- SceneObjects:查(Tree 控件按层级/扁平列全部对象)、选中(VZ.D(Tree.Node,boolean) —— VZ.D(Object) 内部只是 Selection.L(),不真选中)、读当前选择(VZ.B())。
- SceneActions:增/删/改 + 撤销包装(un.D()/un.B())+ 树节点重建(VZ.D(GP,true,true));
  统一在编辑器渲染线程执行(OG.B(Runnable);OG.I() 有线程断言,非渲染线程会抛 RuntimeException);
  输入名字对话框自动化:找到『有 TextField 字段 + L(Object)V 回调』的对话框对象 → 填名字 → 调 L(true)。
- 实测:骨骼新建自动编号(bone7/bone8);模型层允许重名、按名字查只返回第一个;删父骨骼连子节点一起删;
  不能在渲染线程里 sleep(有些创建是下一帧做的)。
- 探针:-Dspine.probe=objects|panels|select|crud|matrix|panel。

可识别源码版(工具)
- tools/deobf/Renamer.java:ASM Remapper 只改成员名不改类名(indy 运行时要用加密串里的类名反射查)。
- tools/deobf/anchors.tsv(手动 14 条有证据的锚点)+ anchors-libgdx.tsv(MapMethods 对 gdx-1.11.0 指纹自动生成 178 条)→ names.tsv 192 条。
- 产物 ~/Desktop/spine398/src-named(4176 类全量,原 src-readable 不动);已验证 Table.add/clearChildren、SelectBox.getSelected/setSelected/setSelectedIndex、Gp.name。
- 文档:混淆名对照表.md 新增第六节(工具链 + 已验证 + 已知限制)。
2026-10-16 15:25:02 +08:00

1.4 KiB

1# 名字映射锚点(只放**已确定**的;每条都要能说清依据,依据写进 混淆名对照表.md)
2# 列:ownernamedescnewName (desc 写 * 表示该 owner 下所有同名成员)
3#
4# ---- libGDX:Table(载荷名 et);依据 Obf.java + 直读字节码 ----
5etD(Ldl;)LdR;add
6etD([Ldl;)Let;addAll
7etI()LdR;row
8etZ(Z)VsetFillParent
9etSourceFile()VclearChildren
10etD(Ljava/lang/CharSequence;)LdR;addLabel
11# ---- libGDX:Cell(载荷名 dR)----
12dRStackMapTable()LdR;expand
13dRD()LdR;fill
14dRC()LdR;left
15dRS()LdR;top
16# ---- libGDX:Button / Label(保名类)----
17com/badlogic/gdx/scenes/scene2d/ui/ButtonString()ZisChecked
18com/badlogic/gdx/scenes/scene2d/ui/ButtonI(Z)VsetChecked
19com/badlogic/gdx/scenes/scene2d/ui/ButtonB(ZZ)VsetCheckedAndFire
20com/badlogic/gdx/scenes/scene2d/ui/Buttona_(Z)VsetDisabled
21com/badlogic/gdx/scenes/scene2d/ui/LabelD(Ljava/lang/CharSequence;)VsetText
22com/badlogic/gdx/scenes/scene2d/ui/LabelD()Ljava/lang/StringBuilder;getTextBuilder
23# ---- libGDX:SelectBox(载荷名 KP);依据 DumpSites 解出的 (Ljava/lang/String;)V ----
24KPB(Ljava/lang/String;)VsetSelected
25KPB()Ljava/lang/String;getSelected
26KPB(I)VsetSelectedIndex
27# ---- 场景模型:Gp = 骨骼;依据 gp_2.java 的 toString()/D(String,boolean)V ----
28GpDLjava/lang/String;name
29GpD(Ljava/lang/String;Z)VsetName