Guardian Snowman
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | EMT:archer |
| 源码类 | EntityArcher(emt/entity/EntityArcher.java) |
| 显示名 | Guardian Snowman |
| 更新频率 / 追踪范围 | 80 / 3(emt/init/EMTEntities.java:34) |
⚠️ 刷怪蛋双重注册缺陷
EntityArcher 是全模组唯一被注册两次刷怪蛋的实体:
// EMTEntities.java:34 —— registerModEntity 内部已分配 egg
EntityRegistry.registerModEntity(EntityArcher.class, "archer", entityIDs++, EMT.instance, 80, 3, true);
// EMTEntities.java:35 —— 随后又手工注册一次
registerEntityEgg(EntityArcher.class, 0x99111F, 0xE5685);
registerEntityEgg 用的是独立的 ID 空间(private static int startEID = 300; 起递增,EMTEntities.java:16),与 entityIDs++ 产生的 ID 不一定相同:
| 序列 | 机制 | 产出 |
|---|---|---|
entityIDs(初值 0) |
EntityRegistry 内部 ID 空间 |
一个刷怪蛋 |
startEID(初值 300) |
手工 EntityList.IDtoClassMapping |
第二个刷怪蛋 |
getUniqueEntityID() 会跳过已被占用的 ID(EntityList.getStringFromID(startEID) != null 时递增),所以两个 ID 不同 → 雪人在刷怪蛋选择界面出现两个条目,指向同一个 EntityArcher 类。
刷怪蛋颜色
| 主色 | 次色 |
|---|---|
0x99111F |
0xE5685 |
⚠️ 次色
0xE5685是 5 位十六进制数,超过 24-bit 颜色范围。EntityEggInfo接受 int 传参故不会崩溃,但该值超出合法 RGB 编码,写入刷怪蛋贴图时行为未定义。这是源码中真实存在的数值异常,不是笔误转述。