灵魂容器
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:spiritBinder |
| 类 | lumien.randomthings.Items.ItemSpiritBinder |
| 堆叠上限 | 1(ItemSpiritBinder.java:22) |
| 开关 | Items.SpiritBinder(RTConfiguration.java:225) |
功能
灵魂容器是一个吸收并携带刷怪笼的道具。右键已放置的 BlockMobSpawner 会把其内部数据打包进物品 NBT(ItemSpiritBinder.java:44 起):
if (b instanceof BlockMobSpawner) {
TileEntityMobSpawner te = (TileEntityMobSpawner) par3World.getTileEntity(posX, posY, posZ);
NBTTagCompound nbt = new NBTTagCompound();
...
持有的判据是 NBT 布尔 hasSpawner(:28、:36):
hasEffect在持有时返回 true,使物品持续发出附魔光效(:39-41)addInformation显示Holding <实体名> Spawner,用Colors.DARK_GREEN着色(:27-35)
被捕获的实体名存在 NBT 字符串键 EntityId 中(:30)。
副带效果:提高灵魂掉率
灵魂之剑的灵魂掉率有两个档位(Handler/RTEventHandler.java:527-546):
| 配置项 | 默认 | 代码中的实际条件 |
|---|---|---|
SpiritChance |
0.02 | 默认档 |
SpiritChanceSword |
0.1 | 仅当手持灵魂之剑(player.getCurrentEquippedItem().getItem() == ModItems.spectreSword) |
[!NOTE]
SpiritChanceSword的配置项描述文字声称条件是"背包里有 spirit binder"(RTConfiguration.java:73-74),但RTEventHandler的实现里没有任何读取灵魂容器或检查背包的代码 —— 判定只看手中武器。因此本道具对灵魂掉率没有实际影响,该描述与实现不一致。
数值
| 数值名 | 值 |
|---|---|
| 堆叠上限 | 1 |
| 携带判据 | NBT 布尔 hasSpawner |
| 实体名 NBT 键 | EntityId |
| 灵魂掉率(无容器) | 0.02(SpiritChance) |
| 灵魂掉率(有容器) | 0.1(SpiritChanceSword) |
交互
| 触发 | 行为 |
|---|---|
| 右键刷怪笼 | 吸收该刷怪笼(含 NBT) |
| 已装载状态 | 物品发出附魔光效 + 绿色提示文字 |
| 常驻背包 | 提高灵魂之剑的灵魂掉率 |
合成配方
ses
ene
ses
| 字符 | 物品 |
|---|---|
s |
灵气(RandomThings:ingredient meta 3) |
e |
末影珍珠(Items.ender_pearl) |
n |
下界之星(Items.nether_star) |
来源:Library/Recipes.java:398-409,受 ConfigItems.spiritBinder 约束。