docs(reports): migrate F-items from TDLMPack into reports/
Split Pack reports/repos/thaumicadditions.md into reports/README.md + F-*.md. Keep Pack statuses.
This commit is contained in:
1 parent
a183f618ca
commit
f0275d9ce1
18 files changed
+419
No files matched your search
@@ -0,0 +1,22 @@
|
||||
# F-001
|
||||
- **状态**:修·已修复(会话合入 TDLM/thaumicadditions#4,2026-10-26)
|
||||
- **范式**:B1
|
||||
- **位置**:`.github/workflows/build.yml:3-5`、`:55`
|
||||
- **证据**:
|
||||
```yaml
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
```
|
||||
(`.github/workflows/build.yml:3-5`;全文件无 `concurrency:` 键)
|
||||
```yaml
|
||||
if: ${{ github.event_name == 'push' || inputs.publish == 'true' }}
|
||||
```
|
||||
(`:55`;`:24`/`:57` `timeout-minutes` 在位)
|
||||
- **机制**:workflow 无 concurrency 组而 push 即进入 publish job,连续 push 并行构建并争发构件。
|
||||
- **频率**:每次 push(CI 期)。
|
||||
- **修法**:补 `concurrency: { group: ${{ github.workflow }}-${{ github.ref }}, cancel-in-progress: false }`(含发布步骤,取 false 保逐 commit 构件)。
|
||||
- **风险 · 置信度**:无(仅消并发发布竞争) · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
- **修复**:会话合入 TDLM/thaumicadditions#4,2026-10-26。
|
||||
@@ -0,0 +1,19 @@
|
||||
# F-002
|
||||
- **状态**:修·已修复(会话合入 TDLM/thaumicadditions#4,2026-10-26)
|
||||
- **范式**:B1
|
||||
- **位置**:`build.gradle:19-28`
|
||||
- **证据**:
|
||||
```gradle
|
||||
repositories {
|
||||
maven {
|
||||
name = 'TDLM Maven'
|
||||
url = 'https://git.nest.potatolab.uk:8443/api/packages/TDLM/maven'
|
||||
```
|
||||
(`build.gradle:18-21`;块内无 `content { includeGroup … }`;对照 `settings.gradle:6-8` GTNH 块有 mavenContent 正例)
|
||||
- **机制**:自建 TDLM maven 无 content 过滤,依赖解析对无关坐标反复探测 404。
|
||||
- **频率**:每次依赖解析(构建期)。
|
||||
- **修法**:maven 块补 `content { includeGroup("uk.potatolab") }`(或本仓实际 group 集合)。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
- **修复**:会话合入 TDLM/thaumicadditions#4,2026-10-26。
|
||||
@@ -0,0 +1,16 @@
|
||||
# F-003
|
||||
- **状态**:修·已修复(会话合入 TDLM/thaumicadditions#4,2026-10-26)
|
||||
- **范式**:T4
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileVoidChest.java:55`
|
||||
- **证据**:
|
||||
```java
|
||||
public void updateEntity() {}
|
||||
```
|
||||
(`:55`;全仓 `boolean canUpdate(` 覆写 0;1.7.10 `TileEntity.canUpdate()` 默认 true;注册见 `init/MTE.java:37`)
|
||||
- **机制**:虚空箱有空体 updateEntity 且未关 tick 资格,世界内每箱每 tick 白付调度。
|
||||
- **频率**:每 tick × 每虚空箱实例。
|
||||
- **修法**:覆写 `canUpdate()` 返回 false(空体无副作用,零行为变更)。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-004
|
||||
- **修复**:会话合入 TDLM/thaumicadditions#4,2026-10-26。
|
||||
@@ -0,0 +1,16 @@
|
||||
# F-004
|
||||
- **状态**:修·已修复(会话合入 TDLM/thaumicadditions#4,2026-10-26)
|
||||
- **范式**:T4
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileReturner.java:6`
|
||||
- **证据**:
|
||||
```java
|
||||
public class TileReturner extends TileEntity {
|
||||
```
|
||||
(`:6`;类内无 `updateEntity`/`canUpdate`;`BlockReturner.java:22` `TileEntity.addMapping(TileReturner.class, …)`)
|
||||
- **机制**:返回器仅存坐标 NBT,继承基类空 updateEntity,默认 canUpdate=true 仍进 tick 表。
|
||||
- **频率**:每 tick × 每返回器。
|
||||
- **修法**:覆写 `canUpdate()` 返回 false。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-003
|
||||
- **修复**:会话合入 TDLM/thaumicadditions#4,2026-10-26。
|
||||
@@ -0,0 +1,19 @@
|
||||
# F-005
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:F1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/renderer/RendererDarkGen.java:16`、`:22`;同型 `RendererHyperNodeCreator.java:17`、`:23`、`RendererInfuser.java:19`、`:24`、`RendererInfuserActivator.java:19`、`:37`、`RendererSymboller.java:17`、`:23`、`RendererThaumicGenerator.java:17`、`:23`、`RendererThaumicRestorer.java:16`、`:22`、`RendererSeal.java:41-48`、`RendererTankBasic.java:20`、`:32`
|
||||
- **证据**:
|
||||
```java
|
||||
ResourceLocation textures = new ResourceLocation("thaumicadditions", "textures/models/DarkGen.png");
|
||||
```
|
||||
(RendererDarkGen.java:16)
|
||||
```java
|
||||
(new ModelDarkGen()).render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F, false);
|
||||
```
|
||||
(`:22`;Seal 同帧多次 `new ModelSeal()` 见 RendererSeal.java:42/:48/:61/:72/:83)
|
||||
- **机制**:多枚 TESR 每帧重建不可变 ResourceLocation 与 Model 实例;路径常量可 static final,Model 可字段复用。
|
||||
- **频率**:每帧 × 可视 TESR 实例。
|
||||
- **修法**:提 `private static final ResourceLocation`;Model 提实例字段复用(需确认无跨 TE 可变状态串扰,故本档观察)。
|
||||
- **风险 · 置信度**:RL 提常量无;Model 复用需隔离论证 · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-006/F-016
|
||||
@@ -0,0 +1,20 @@
|
||||
# F-006
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:F1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileRendererCreativeNode.java:22-23`、`:34`
|
||||
- **证据**:
|
||||
```java
|
||||
Random rnd = new Random((long)(tcn.getId() + "" + tcn.yCoord).hashCode() ^ 256L);
|
||||
float rot = (float)(Calendar.getInstance().get(14) + rnd.nextInt(1000)) % 1000.0F;
|
||||
```
|
||||
(`:22-23`)
|
||||
```java
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("thaumicadditions", "textures/models/aura_" + (rnd.nextInt(2) + 1) + ".png"));
|
||||
```
|
||||
(`:34`)
|
||||
- **机制**:创造节点 TESR 每帧 new Random、Calendar.getInstance、拼接 ResourceLocation;固定种子序列可预计算。
|
||||
- **频率**:每帧 × 可视创造节点。
|
||||
- **修法**:种子 Random/两张 aura RL 提字段;时间改 `System.currentTimeMillis()%1000` 或字段时钟。量级未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:低(动画相位需对齐) · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-005
|
||||
@@ -0,0 +1,18 @@
|
||||
# F-007
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:S1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/entity/EntitySingularity.java:70-73`
|
||||
- **证据**:
|
||||
```java
|
||||
for(p = 0; p < 128; ++p) {
|
||||
AxisAlignedBB ent = AxisAlignedBB.getBoundingBox(this.posX - (double)this.radius, this.posY - (double)this.radius, this.posZ - (double)this.radius, this.posX + (double)this.radius, this.posY + (double)this.radius, this.posZ + (double)this.radius);
|
||||
l = this.worldObj.getEntitiesWithinAABB(Entity.class, ent);
|
||||
l2 = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, ent);
|
||||
```
|
||||
(`:70-73`;`radius = 10` 见 `:22`;落地分支 `:56`)
|
||||
- **机制**:奇点落地后每 tick 将同一 21³ 盒 AABB 查询重复 128 次×两类实体,盒有界但频率无 interval,乘子为设计放大。
|
||||
- **频率**:每 tick × 每落地奇点 × 256 次查询(静态推断)。
|
||||
- **修法**:单次双查询后在循环内处理;或降循环次数。行为/手感可能变 ⇒ 观察,量级需 profile。
|
||||
- **风险 · 置信度**:中(牵引力/破坏节奏) · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,16 @@
|
||||
# F-008
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:S1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/event/sealing/SealEventCollectItems.java:25-26`
|
||||
- **证据**:
|
||||
```java
|
||||
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox((double)(x - 16), (double)(y - 16), (double)(z - 16), (double)(x + 16), (double)(y + 16), (double)(z + 16));
|
||||
List i = world.getEntitiesWithinAABB(EntityItem.class, aabb);
|
||||
```
|
||||
(`:25-26`;由 `TileSeal.updateEntity` `:62` 每 tick 调用)
|
||||
- **机制**:收集印激活时每 tick 扫 33³ 盒掉落物,有半径无 interval/短路门。
|
||||
- **频率**:每 tick × 每匹配收集印。
|
||||
- **修法**:加 interval 或相位门;缩小盒需平衡裁决。量级未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:中(收集半径即玩法) · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,19 @@
|
||||
# F-009
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:T1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileInfuser.java:41-45`;`TileDarkInfuser.java:41-45`
|
||||
- **证据**:
|
||||
```java
|
||||
List var5 = InfuserRecipeRegistry.complexOfRecipes.recipesOnTheRegularInfuser;
|
||||
int foundRecipes = 0;
|
||||
|
||||
for(int i = 0; i < var5.size(); ++i) {
|
||||
if(areItemStacksEqual(this.slots[1], ((InfuserRecipe)var5.get(i)).input1) && areItemStacksEqual(this.slots[2], ((InfuserRecipe)var5.get(i)).input2) && areItemStacksEqual(this.slots[3], ((InfuserRecipe)var5.get(i)).input3) && areItemStacksEqual(this.slots[4], ((InfuserRecipe)var5.get(i)).input4) && areItemStacksEqual(this.slots[5], ((InfuserRecipe)var5.get(i)).input5) && areItemStacksEqual(this.slots[6], ((InfuserRecipe)var5.get(i)).input6) && (this.slots[0] == null || areItemStacksEqual(this.slots[0], ((InfuserRecipe)var5.get(i)).output) && this.slots[0].stackSize + ((InfuserRecipe)var5.get(i)).output.stackSize < this.slots[0].getMaxStackSize())) {
|
||||
```
|
||||
(TileInfuser.java:41-45;Dark 表同型 `:41-45`;注册约 7+4 条见 `init/MIR.java`)
|
||||
- **机制**:注能/暗注能每 tick 无缓存全表线性匹配六格输入;表近静态。
|
||||
- **频率**:每 tick × 每台注能器。
|
||||
- **修法**:槽位指纹缓存命中配方下标,槽变更失效。表小量级未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:低 · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,15 @@
|
||||
# F-010
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:T1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileTileBooster.java:27`
|
||||
- **证据**:
|
||||
```java
|
||||
TileEntity te = this.worldObj.getTileEntity(x, y, z) != null && !(this.worldObj.getTileEntity(x, y, z) instanceof TileTileBooster)?this.worldObj.getTileEntity(x, y, z):null;
|
||||
```
|
||||
(`:27`;六向循环 `:22-33`)
|
||||
- **机制**:加速器每 tick 每向对同坐标最多三次 getTileEntity。
|
||||
- **频率**:每 tick × 6 向 × 每加速器。
|
||||
- **修法**:`TileEntity te = worldObj.getTileEntity(x,y,z)` 提局部一次。零行为;量级随实例未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-011/F-013
|
||||
@@ -0,0 +1,15 @@
|
||||
# F-011
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:T1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileThaumicGenerator.java:62-87`、`:71`
|
||||
- **证据**:
|
||||
```java
|
||||
if(Loader.isModLoaded("Botania") && (new Botania()).canConnect(this.worldObj, this.xCoord, this.yCoord, this.zCoord, dirs[i])) {
|
||||
```
|
||||
(`:71`;同方法 `:62-82` 多处重复 `getTileEntity(...)`;`:85-86` 再次 `Loader.isModLoaded` + `new Botania()`)
|
||||
- **机制**:发电机有能量时每 tick 六向重复 TE 查找,并反复 `Loader.isModLoaded` 与 `new Botania()`。
|
||||
- **频率**:每 tick × 有能量的发电机 × 6 向。
|
||||
- **修法**:`isModLoaded` 提 static final;Botania 桥接单例;getTileEntity 提局部。量级未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:低 · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-010
|
||||
@@ -0,0 +1,24 @@
|
||||
# F-012
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:T1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileSeal.java:43`、`:57-62`
|
||||
- **证据**:
|
||||
```java
|
||||
this.current = new SealCombo(new Seal[]{this.f});
|
||||
```
|
||||
(`:43`)
|
||||
```java
|
||||
List events = MSE.events.eventList;
|
||||
|
||||
for(int i = 0; i < events.size(); ++i) {
|
||||
if(this.CompareSealCombos(this.f, ((SealEvent)events.get(i)).getSealCombination().getSeal1()) && this.CompareSealCombos(this.s, ((SealEvent)events.get(i)).getSealCombination().getSeal2()) && this.CompareSealCombos(this.t, ((SealEvent)events.get(i)).getSealCombination().getSeal3()) || this.current.length() == 3 && ((SealEvent)events.get(i)).getSealCombination().length() == 2 && ((SealEvent)events.get(i)).canWorkWith3rdSymbol(this.t)) {
|
||||
SealEvent event = (SealEvent)events.get(i);
|
||||
event.sealTick(this.worldObj, this.xCoord, this.yCoord, this.zCoord, this.f, this.s, this.t, this.extraNBT);
|
||||
```
|
||||
(`:57-62`)
|
||||
- **机制**:封印每 tick 新建 SealCombo 并对近静态事件表线性匹配;印面未变时结果可记忆。
|
||||
- **频率**:每 tick × 每封印方块。
|
||||
- **修法**:印面指纹缓存 `currentWorkingComboID`,变更再全表扫。缓存语义需核对 ⇒ 观察。
|
||||
- **风险 · 置信度**:低 · 中
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,16 @@
|
||||
# F-013
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:T1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/piping/TileVisTube.java:61-75`、`:98`
|
||||
- **证据**:
|
||||
```java
|
||||
if(this.worldObj.getTileEntity(x, y, z) instanceof ITubeConnectable) {
|
||||
ITubeConnectable tube = (ITubeConnectable)this.worldObj.getTileEntity(x, y, z);
|
||||
```
|
||||
(`:61-62`;`:74-75` 同坐标再查 `ITubable`;`:98` 合并环再双查)
|
||||
- **机制**:灵气管每 tick 六向对同坐标多次 getTileEntity 做连通与合并。
|
||||
- **频率**:每 tick × 每管段 × 至多两轮六向。
|
||||
- **修法**:每向 `TileEntity te = getTileEntity(...)` 一次后分支。零行为;管网密度未证 ⇒ 观察。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-010
|
||||
@@ -0,0 +1,19 @@
|
||||
# F-014
|
||||
- **状态**:边界·待处理
|
||||
- **范式**:N1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/playnet/packtetmng/PacketAuraVis.java:38`、`:45`
|
||||
- **证据**:
|
||||
```java
|
||||
this.amts = new int[buf.readInt()];
|
||||
```
|
||||
(`:38`)
|
||||
```java
|
||||
this.aspects = new EnumAT[buf.readInt()];
|
||||
```
|
||||
(`:45`;分配后无 clamp)
|
||||
- **机制**:两处数组长度直取网络 int,无上限;畸形包可驱动大分配。
|
||||
- **频率**:每入站包。
|
||||
- **修法**:记录不修(边界):协议本为短枚举列表;上限取值需安全侧/包维护者裁决。建议 clamp 至 `EnumAT` 基数后超限断连。
|
||||
- **风险 · 置信度**:安全相邻 · 高(形态)
|
||||
- **移交**:安全侧
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,15 @@
|
||||
# F-015
|
||||
- **状态**:边界·待处理
|
||||
- **范式**:T15
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/tileentity/TileTankBasic.java:45`
|
||||
- **证据**:
|
||||
```java
|
||||
boolean ttb = rand.nextInt(1000) < 100 && ext > 0.5F;
|
||||
```
|
||||
(`:45`;`:43` `!isRemote` 门内每 tick)
|
||||
- **机制**:污秽过半时每 tick 重掷约 10% 爆炸门,事件稀疏却抽样= tick×实例。
|
||||
- **频率**:每 tick × 高污秽储罐。
|
||||
- **修法**:记录不修:分布改倒计时会变爆炸时序;量级在污秽门后。若修则预约下次爆炸 tick。
|
||||
- **风险 · 置信度**:中(时序) · 高(形态)
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9
|
||||
@@ -0,0 +1,15 @@
|
||||
# F-016
|
||||
- **状态**:边界·待处理
|
||||
- **范式**:F1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/gui/GUIInfuser.java:24`;同型 `GUICondensator.java:26`、`GUIDarkGenerator.java:26`、`GUIDarkInfuser.java:26`、`GUIHyperNodeCreator.java:25`、`GUISealGlobe.java:38`、`GUIThaumicCrystallizer.java:24`、`GUIThaumicGenerator.java:24`、`GUIThaumicRestorer.java:25`、`GUIVoidChest.java:23`
|
||||
- **证据**:
|
||||
```java
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("thaumicadditions", "textures/gui/guiinfuser.png"));
|
||||
```
|
||||
(GUIInfuser.java:24;其余 9 处同句式换路径)
|
||||
- **机制**:十个容器 GUI 背景层每帧 new ResourceLocation;可提 static final。
|
||||
- **频率**:每帧(GUI 打开期间)。
|
||||
- **修法**:记录不修:形态命中量级微(仅开 GUI);维护者可按 TESR 同法提常量。
|
||||
- **风险 · 置信度**:无 · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同族 F-005
|
||||
@@ -0,0 +1,15 @@
|
||||
# F-017
|
||||
- **状态**:观察·待处理
|
||||
- **范式**:D1
|
||||
- **位置**:`src/main/java/com/pengu/thaumcraft/additions/playnet/packtetmng/PacketAuraVis.java:25`
|
||||
- **证据**:
|
||||
```java
|
||||
FMLLog.info("Received!", new Object[0]);
|
||||
```
|
||||
(`:25`;`onMessage` 内、try 块首行)
|
||||
- **机制**:灵气同步包每包打 INFO,控制台同步 IO 随包频放大。
|
||||
- **频率**:每包(客户端收包沿)。
|
||||
- **修法**:删除该行或改 `FMLLog.fine`/debug 开关。若运维依赖该日志则裁决。
|
||||
- **风险 · 置信度**:低(可观测性) · 高
|
||||
- **移交**:无
|
||||
- **来源**:P1 2026-10-26 2f7b9c9;同点位 F-014
|
||||
@@ -0,0 +1,120 @@
|
||||
# thaumicadditions — reports
|
||||
|
||||
本目录为该模组 F-item 的**权威来源**(自 TDLMPack `reports/repos/` 迁入)。
|
||||
|
||||
## 索引
|
||||
|
||||
| ID | 状态 | 文件 |
|
||||
|---|---|---|
|
||||
| [F-001](F-001.md) | 修·已修复 | `F-001.md` |
|
||||
| [F-002](F-002.md) | 修·已修复 | `F-002.md` |
|
||||
| [F-003](F-003.md) | 修·已修复 | `F-003.md` |
|
||||
| [F-004](F-004.md) | 修·已修复 | `F-004.md` |
|
||||
| [F-005](F-005.md) | 观察·待处理 | `F-005.md` |
|
||||
| [F-006](F-006.md) | 观察·待处理 | `F-006.md` |
|
||||
| [F-007](F-007.md) | 观察·待处理 | `F-007.md` |
|
||||
| [F-008](F-008.md) | 观察·待处理 | `F-008.md` |
|
||||
| [F-009](F-009.md) | 观察·待处理 | `F-009.md` |
|
||||
| [F-010](F-010.md) | 观察·待处理 | `F-010.md` |
|
||||
| [F-011](F-011.md) | 观察·待处理 | `F-011.md` |
|
||||
| [F-012](F-012.md) | 观察·待处理 | `F-012.md` |
|
||||
| [F-013](F-013.md) | 观察·待处理 | `F-013.md` |
|
||||
| [F-014](F-014.md) | 边界·待处理 | `F-014.md` |
|
||||
| [F-015](F-015.md) | 边界·待处理 | `F-015.md` |
|
||||
| [F-016](F-016.md) | 边界·待处理 | `F-016.md` |
|
||||
| [F-017](F-017.md) | 观察·待处理 | `F-017.md` |
|
||||
|
||||
未关闭项(不含已修复/已延后):**13**(F-005, F-006, F-007, F-008, F-009, F-010, F-011, F-012, F-013, F-014, F-015, F-016, F-017)
|
||||
|
||||
## 迁移备注
|
||||
|
||||
自 TDLMPack 报告拆分迁入;状态字段保持 Pack 原文。未来扫描不再把 scan.sh exit 99、Semgrep、PMD 作为必跑流水线工具(历史正文中的提及可保留,本 README 不要求再跑它们)。
|
||||
|
||||
## 一、概况
|
||||
|
||||
| 项 | 值 |
|
||||
|---|---|
|
||||
| 仓库 | TDLM/thaumicadditions(建档源:`D:\tmp\missing-mod-archive\repos\thaumicadditions`,无 `.git` 的 zip 反编译树) |
|
||||
| 分支 · HEAD | (源树无 git)· `2f7b9c9696ee6cceb11d93c54592fed30ca218de`(`SCAN_HEAD_SHA.txt`) |
|
||||
| 最近更新 | 2026-10-26(P1 建档) |
|
||||
| 形态 | Forge 1.7.10 TC4 附属内容 mod(反编译重托管,jar `Thaumic Additions - 0.41`);java 307(src/main,无 kt/scala/Mixin);updateEntity 20、canUpdate 覆写 0;TESR 16;@SubscribeEvent 含 PlayerTick/ClientTick/HUD;SimpleNetworkWrapper 通道 `thaumicadditions-playnet`;实体 4;IFMLLoadingPlugin 类在树内但本提取无 META-INF 清单 |
|
||||
| 工具 | 人工形态画像+候选式 grep+命中点全文回读;范式 B1/D1 全仓必扫;周期/渲染/包/空间面按形态选 T1/T4/T15/F1/S1/N1;未跑目标仓构建 |
|
||||
|
||||
**计数矩阵**(处置 × 状态;合计 17)
|
||||
|
||||
| 处置\状态 | 待处理 | 待裁决 | 已延后 | 已驳回 | 已修复 |
|
||||
|---|---|---|---|---|---|
|
||||
| 修 | 0 | 0 | 0 | 0 | 4 |
|
||||
| 观察 | 10 | 0 | 0 | 0 | 0 |
|
||||
| 边界 | 3 | 0 | 0 | 0 | 0 |
|
||||
|
||||
**扫描轮次**
|
||||
|
||||
| 轮次 | 日期 | SHA | 范围 | 净增(修/观/边) |
|
||||
|---|---|---|---|---|
|
||||
| P1 | 2026-10-26 | 2f7b9c9 | 建档:B1+D1 必扫+TE/TESR/包/封印/奇点热入口 | 4/10/3 |
|
||||
|
||||
## 四、命中(已记)
|
||||
|
||||
| 范式 | 定位 | 备注 |
|
||||
|---|---|---|
|
||||
| B1 | F-001、F-002 | concurrency;maven content |
|
||||
| T4 | F-003、F-004 | 空转 TE |
|
||||
| F1 | F-005、F-006、F-016 | TESR/创造节点/GUI |
|
||||
| S1 | F-007、F-008 | 奇点;收集印 |
|
||||
| T1 | F-009–F-013 | 配方/重复 getTE/封印/管 |
|
||||
| D1 | F-017 | 包路径 INFO |
|
||||
| N1 | F-014 | 安全相邻 |
|
||||
| T15 | F-015 | 储罐抽样 |
|
||||
|
||||
## 五、排除面
|
||||
|
||||
| 范式 | 排除码 | 依据 |
|
||||
|---|---|---|
|
||||
| T2 | E-守卫在位 | 未见无变化守卫即恒 `markDirty`/`markBlockForUpdate` 的周期路径;创造节点脏写在 `mfu` 门内(TileCreativeNode.java:145-147) |
|
||||
| T3 | E-形态全零 | 无全服实例对齐同一 `worldTime%N` 周期谓词的 tick 群 |
|
||||
| T5 | E-玩家回执 | `TileTaintedCrops` 反射仅坏土掉落分支(`:24-29`);`Class.forName` 在 TA/API 启动或交互沿 |
|
||||
| T6 | E-守卫在位 | 主要 TE 工作含 `isRemote` 门(如 TileDarkGen/Infuser/Crystallizer);BlockVisTube.playerTick 为方块碰撞箱语义非无门世界扫描 |
|
||||
| T7 | E-设计本体 | `Util.setBlockMetadata` 用 flag 2(Util.java:31)为元数据同步本体;未见无变化双通道失效广播热路径 |
|
||||
| T8 | E-形态全零 | 配方表为 ArrayList 线性匹配已记 T1(F-009);无拼接键/契约破损 Map 热查询 |
|
||||
| T9 | E-形态全零 | 自研实体为奇点/焦点弹/粒子,无「在地静止仍全价移动」物品实体形态 |
|
||||
| T10 | E-形态全零 | 无红石粉式逐级衰减重通知链 |
|
||||
| T11 | E-形态全零 | 无锁+装箱/弱键双查型热查询间接层 |
|
||||
| T12 | E-形态全零 | 无长期混入未就绪项的工作队列全表 drain |
|
||||
| T13 | E-设计本体 | SealCombo 每 tick new 已并入 F-012(T1);不另立临时对象条 |
|
||||
| T14 | E-形态全零 | 全仓 `.stream()` 热路径 0 |
|
||||
| F2 | E-形态全零 | 未见每帧 NBT 反序列化/深拷贝/全树文本重编译链 |
|
||||
| F3 | E-形态全零 | 无超集过滤缺候选索引的热查询 |
|
||||
| F4 | E-形态全零 | 同帧同参重复昂贵求值未独立确认(重复 getTE 归 T1) |
|
||||
| F5 | E-形态全零 | TESR 无每帧射线/无节流世界反查主形态 |
|
||||
| F6 | E-产品形态 | 无自研网格面剔除;渲染走 Model/原版通道 |
|
||||
| S2 | E-设计本体 | 周期 `getBlock`/`getTileEntity` 均为已加载邻域作业读取,非「结果可弃的试读加载」 |
|
||||
| N2 | E-产品形态 | SimpleNetworkWrapper 1.7.10 主线程投递标准形态;无裸 Netty 业务线程改世界 |
|
||||
| N3 | E-形态全零 | 未见无 shutdown 线程池或静态滞留 World/TE 注册表只增 |
|
||||
| N4 | E-启动期 | `OpenLibDownloadEngine`/`TACore` 静态下载为类加载/coremod 沿;本提取无 META-INF 清单,运行可达性未证 |
|
||||
| N5 | E-形态全零 | 出站包直接写 ByteBuf,无每包整份中间拷贝 |
|
||||
| L1 | E-启动期 | 无 transformer 每类建全树/脚本 O(k·n) 注册表重扫;OpenLib 见 N4 |
|
||||
| H1 | E-设计本体 | Infuser 事件 post 有配方完成语义;非「无订阅仍每实体每 tick 构造」 |
|
||||
| M1 | E-形态全零 | 无长生命周期回调捕获仅创建时需要的宿主 |
|
||||
| M2 | E-形态全零 | 未见本可 interning 的大量等价常驻谓词/形状重复创建热面 |
|
||||
| J1 | E-形态全零 | 无已确认热路径上可 final 却阻碍内联的短链形态立案 |
|
||||
| J2 | E-形态全零 | 热路径无定幂 `Math.pow`/仅比较用开方等未廉价化算式立案 |
|
||||
| J3 | E-形态全零 | `parkNanos`/`yield`/`onSpinWait` 0 |
|
||||
| J4 | E-形态全零 | 无基本类型数组同构手写循环可换批量原语的热面 |
|
||||
| J5 | E-形态全零 | 粒子/TESR 非「同纹理逐元素 startDrawing…draw 成对未合并」主形态 |
|
||||
| J6 | E-形态全零 | 未见同一拍同源多谓词可融合的独立遍历立案 |
|
||||
|
||||
## 六、规则反馈
|
||||
|
||||
| 范式 | 盲区/建议 | 本仓锚点 |
|
||||
|---|---|---|
|
||||
| F1 | 反编译 TESR 常「每帧 new Model + new ResourceLocation」成对出现,规则文案可明示 Model 与 RL 同判 | F-005 RendererDarkGen.java:16/:22 |
|
||||
| T1 | `Loader.isModLoaded` + `new` 桥接对象出现在 updateEntity 六向环,易被只扫配方表的规则漏掉 | F-011 TileThaumicGenerator.java:71 |
|
||||
| S1 | 「盒有界但循环内重复查询同一盒」应明示计入频率乘子,勿因 radius 字面量有界直接排除 | F-007 EntitySingularity.java:70 |
|
||||
| T4 | 1.7.10 默认 `canUpdate()==true`;无覆写 + 空/继承空 updateEntity 即命中,勿写「默认 false」 | F-003/F-004 |
|
||||
|
||||
## 七、修订史
|
||||
|
||||
| 日期 | 轮次 | 变更 |
|
||||
|---|---|---|
|
||||
| 2026-10-26 | P1 | 建档:修 4 / 观 10 / 边 3;源树 HEAD `2f7b9c9696ee6cceb11d93c54592fed30ca218de` |
|
||||
Reference in new issue
Block a user