本条基于 Minecraft 1.20.1 + Forge,Mojang 映射名。
Int2ObjectMap(it.unimi.dsi.fastutil.ints.Int2ObjectMap)是 fastutil 提供的 int 键映射,省去了 Map<Integer, V> 的装箱开销。Minecraft 用它以实体 ID 为键储存实体。
与实体储存的关系
- EntityLookup 的
byId:Int2ObjectLinkedOpenHashMap<T>,实体的主索引。LevelEntityGetterAdapter 的get(int)、getAll()、按类型遍历都基于它的values()。 - EntityTickList 的
active/passive/iterated:tick 名单。 - ServerLevel 的
dragonParts:多部件实体的子部件。
备注
这里用的是 Linked 实现,遍历顺序就是加入顺序。say @e 默认不排序,所以它的输出顺序、/forge entity list 的统计顺序、渲染遍历顺序都来源于此。