虚空之石
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:voidStone |
| 类 | lumien.randomthings.Items.ItemVoidStone |
| 堆叠上限 | 1(ItemVoidStone.java:13) |
| GUI ID | GuiIds.VOID_STONE = 6(GuiIds.java:11) |
| 中文名 | 未在 zh_CN.lang 中翻译(grep 'voidStone' zh_CN.lang 无结果) |
| 开关 | Items.VoidStone(RTConfiguration.java:217) |
功能
虚空之石是一个虚空删除器:右键打开 GUI,在其中放入要删除的物品栈,确认后从玩家背包中移除。
onItemRightClick 打开 GUI 时用玩家自身坐标作为参数(ItemVoidStone.java:17-24):
par3EntityPlayer.openGui(RandomThings.instance, GuiIds.VOID_STONE, par2World,
(int) par3EntityPlayer.posX, (int) par3EntityPlayer.posY, (int) par3EntityPlayer.posZ);
GUI 结构
ContainerVoidStone 继承 ContainerItem,只有 1 个专属槽位(Container/ContainerVoidStone.java:13):
this.addSlotToContainer(new SlotVoid(80, 18));
SlotVoid 是本 mod 自定义槽位类型(Container/Slots/SlotVoid.java),与 SlotLocked 同属"防止取回"的限制类槽位。ContainerItem.bindPlayerInventory 会把玩家当前手持格替换为 SlotLocked(ContainerItem.java:24-28)—— 因为操作时手持的就是虚空之石本身。
getPlayerInventoryAndHotbarOffset 是 ContainerItem 的抽象方法,暗示不同物品的 GUI 背包区有不同偏移。
数值
| 数值名 | 值 |
|---|---|
| 堆叠上限 | 1 |
| 专属槽位 | 1(SlotVoid,坐标 80, 18) |
| 背包区槽位 | 27 + 9(ContainerItem.java:16-28) |
| 锁定槽位 | 玩家当前手持格 |
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开 GUI ID 6 |
| 放入物品 | 进入待删除槽位(SlotVoid) |
| 确认 | 从背包移除,物品不返还、不掉落 |
合成配方
xox
oeo
xox
| 字符 | 物品 |
|---|---|
o |
石头(stone) |
e |
末影珍珠(Items.ender_pearl) |
来源:Library/Recipes.java:317-326,受 ConfigItems.voidStone 约束。
配方联动
虚空之石还被掉落物过滤器的 meta 1 配方当作材料,且会随配置切换(Library/Recipes.java:340-347):
'e', ConfigItems.voidStone ? ModItems.voidStone : iEnderPearl
即关闭 Items.VoidStone 时该配方自动退回用末影珍珠,避免配方因物品缺失而失效。