实体
基本信息
| 属性 | 值 |
|---|---|
| modid | RandomThings |
| 注册类 | lumien.randomthings.Entity.ModEntitys |
| 实体总数 | 5(ID 1–5) |
| 公共参数 | 追踪范围 80、更新频率 1(ModEntitys.java:11-23) |
| 开关 | 无 —— 5 个实体均无条件注册 |
功能
本 mod 注册 5 个实体,全部通过 EntityRegistry.registerModEntity 且无任何配置开关(Entity/ModEntitys.java:10-31):
EntityRegistry.registerModEntity(EntityHealingOrb.class, "HealingOrb", 1, RandomThings.instance, 80, 1, true);
EntityRegistry.registerModEntity(EntitySoul.class, "playerSoul", 2, RandomThings.instance, 80, 1, true);
EntityRegistry.registerModEntity(EntitySpirit.class, "spirit", 3, RandomThings.instance, 80, 1, true);
EntityRegistry.registerModEntity(EntityReviveCircle.class, "reviveCircle", 4, RandomThings.instance, 80, 1, true);
EntityRegistry.registerModEntity(EntityBloodmoonCircle.class,"bloodmoonCircle", 5, RandomThings.instance, 80, 1, true);
注册名中只有 spirit 与 bloodmoonCircle 有语言条目;HealingOrb、playerSoul、reviveCircle 属内部实体,没有 lang 名称(zh_CN.lang 中仅 :91 与 :189 两条实体名)。
5 个实体
| ID | 注册名 | 类 | 可见性 | 作用 |
|---|---|---|---|---|
| 1 | HealingOrb |
EntityHealingOrb |
内部(渲染器 RenderHealingOrb) |
治疗粒子球 |
| 2 | playerSoul |
EntitySoul |
内部(RenderSoul) |
击杀生物时生成的灵魂 |
| 3 | spirit |
EntitySpirit |
有名称(zh_CN.lang:91「灵魂」) |
掉灵气(meta 3)的可击杀生物 |
| 4 | reviveCircle |
EntityReviveCircle |
内部(RenderReviveCircle) |
重生圈,玩家死亡时触发 |
| 5 | bloodmoonCircle |
EntityBloodmoonCircle |
有名称(zh_CN.lang:189) |
血月仪式圈 |
lang 中有两条 spirit 相关键(一条中文 :91、一条英文 :188),说明历史上曾调整过命名。
灵魂(spirit)
EntitySpirit 是唯一可正常生成与击杀的生物。生成逻辑在 RTEventHandler 的死亡事件中(Handler/RTEventHandler.java:527-546),触发概率见 灵魂之剑。
击杀它掉落灵气(ingredient meta 3):
protected Item getDropItem() { return ModItems.ingredients; }
protected void dropFewItems(boolean par1, int looting) {
int amount = this.rand.nextInt(3) + this.rand.nextInt(1 + looting);
this.entityDropItem(new ItemStack(ModItems.ingredients, amount, 3), 0.0F);
}
(EntitySpirit.java:108-117)—— 掉落量 0 到 2 + looting 个灵气。
重生圈(reviveCircle)
EntityReviveCircle 会调用 TeleporterSpectre 把玩家送回灵魂世界(Entity/EntityReviveCircle.java:60)—— 这是玩家在灵魂世界死亡后的返回路径。
血月圈(bloodmoonCircle)
由血石仪式触发,渲染器为 RenderBloodmoonCircle。
数值
| 数值名 | 值 |
|---|---|
| 实体数 | 5 |
| 实体 ID 范围 | 1–5 |
| 追踪范围 | 80(全部相同) |
| 更新频率 | 1(全部相同) |
| 实体开关 | 无 |
| 具名实体数 | 2(spirit、bloodmoonCircle) |
MineFactory Reloaded 兼容
若加载 MFR,4 个实体被加入 Safari Net 黑名单,防止被传送网捕获(ModEntitys.java:25-30):
if (Loader.isModLoaded("MineFactoryReloaded")) {
MFRRegistry.registerSafariNetBlacklist(EntitySpirit.class);
MFRRegistry.registerSafariNetBlacklist(EntitySoul.class);
MFRRegistry.registerSafariNetBlacklist(EntityReviveCircle.class);
MFRRegistry.registerSafariNetBlacklist(EntityHealingOrb.class);
}
注意 EntityBloodmoonCircle 不在黑名单中。注册走反射调用 powercrystals.minefactoryreloaded.MFRRegistry.registerSafariNetBlacklist(Handler/ModCompability/MFR/MFRRegistry.java:11-15)。
EntitySpirit 还经过 MixinSpawnerAnimals 扩展(Mixins/ducks/SpawnerAnimalsExt.java)参与刷怪逻辑。