perf: singularity pull box queried once per tick #28

Merged
layue13 merged 1 commits from perf/singularity-queries into main 2026-11-07 06:16:34 +00:00
Owner

Requested by Ethyn · project thread

Closes #21

落地奇点的 onUpdate 里 128 轮循环,每轮重建同一个 AABB(位置与半径在循环内不变)并做两次实体查询,再对同一批生物重复 16 次幂等的“拉向奇点”赋值。改动(行为不变):

  • 盒子与两次查询放到循环外;只有上一轮可能增删实体时才重新查询(吃到明矾产生新奇点、破坏方块并掉落)。
  • 删除 16 次重复赋值(与前一个循环完全相同的值,中间没有副作用)。
  • 明矾转化与破坏方块逻辑原样保留,顺序、随机数调用次数不变。
    测试:用夹具世界统计拉力盒查询次数,旧代码 256 次,新代码 2 次,且旁观者与生物的运动量仍等于 (奇点−位置)/10 加抬升。随人群、奇点数量增长的开销同比下降。

🤖 Generated with Claude Code

<!-- claude-projects-attribution --> _Requested by **Ethyn** · [project thread](https://claude.ai/code/project/chan_01DUNCDJLEksDHKpX5X5cThi?thread=cmsg_01DUNCDJLEksDHKpX5X5cThiWWzw9g2ZbURExfCGHZcnLC)_ Closes #21 落地奇点的 `onUpdate` 里 128 轮循环,每轮重建同一个 AABB(位置与半径在循环内不变)并做两次实体查询,再对同一批生物重复 16 次幂等的“拉向奇点”赋值。改动(行为不变): - 盒子与两次查询放到循环外;只有上一轮可能增删实体时才重新查询(吃到明矾产生新奇点、破坏方块并掉落)。 - 删除 16 次重复赋值(与前一个循环完全相同的值,中间没有副作用)。 - 明矾转化与破坏方块逻辑原样保留,顺序、随机数调用次数不变。 测试:用夹具世界统计拉力盒查询次数,旧代码 256 次,新代码 2 次,且旁观者与生物的运动量仍等于 (奇点−位置)/10 加抬升。随人群、奇点数量增长的开销同比下降。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
layue13 added 1 commit 2026-11-07 06:15:43 +00:00
perf: grounded singularity builds its pull box and queries entities once per tick
Build / build (push) Skipped
Build / publish (push) Skipped
Build / build (pull_request) Successful in 40s
Build / publish (pull_request) Skipped
51a1e0d83d
Closes TDLM/thaumicadditions#21

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
layue13 merged commit f523d73954 into main 2026-11-07 06:16:34 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TDLM/thaumicadditions#28