本条基于 Minecraft 1.20.1 + Forge,Mojang 映射名。
EntityTickList(net.minecraft.world.level.entity.EntityTickList)是“需要被 tick 的实体”名单,ServerLevel 与 ClientLevel 各持有一个。
与实体储存的关系
- 内部是三个 Int2ObjectMap
<Entity>(Int2ObjectLinkedOpenHashMap):active、passive、iterated,键为实体 ID。 - 遍历期间若有增删,会先把
active复制一份再改(ensureActiveIsNotIterated),避免并发修改异常。 - 增删由 LevelCallback 的
onTickingStart/onTickingEnd触发。 - 它只是 tick 名单,不是实体的主存储:实体能否被查询由 LevelEntityGetterAdapter 背后的 EntityLookup 决定。
备注
从这里移除实体只会让它停止更新,它仍会出现在 say @e、/forge entity list 和渲染中。