Personal Dimension Portal (Item)
基本信息
| 属性 | 值 |
|---|---|
| 类型 | ItemBlock(PortalItem extends ItemBlock) |
| 注册名 | 与对应 Block 相同:personalspace:personalPortal(主) / personalPortal_migration2 / _migration3 / _migration4 |
| 关联 Block | Personal Dimension Portal |
| 最大堆叠 | 64(原版 ItemBlock 默认) |
| 附魔适用 | 否(ItemBlock 默认) |
功能
PortalItem 是 PortalBlock 的物品形式。每个 PortalBlock 实例都通过 GameRegistry.registerBlock(..., PortalItem.class, "<name>") 关联到独立的 PortalItem(4 个 Block 各 1 个,共 4 个 Item 实例)。
物品状态:
hasEffect(stack):当 NBT 含target时返回 true → 物品带附魔光效(提示已被"激活"/绑定)。addInformation:在 tooltip 显示DIM<dimId>: <x>, <y>, <z>。
使用方式
| 使用方式 | 触发条件 | 效果 |
|---|---|---|
| 右键方块 | 在 5×5×5 立方体内已存在 PortalBlock |
显示 chat.personalWorld.proximity,阻止放置并返回 false |
| 右键方块(正常) | 通过距离检查 | 走 ItemBlock.onItemUse 默认路径放置 PortalBlock |
| 物品作为掉落物 | 无 | 永远不会消失(getEntityLifespan = Integer.MAX_VALUE) |
| 物品实体 | 任何伤害 | 仅 DamageSource.outOfWorld 生效;火/岩浆/仙人掌/爆炸全部免疫(Portal Entity Item) |
关联
- 物品 NBT 由
PortalBlock.getItemStack(...)写入:active,target[],facing,targetFacing;移除x/y/z/facing这类位置字段(位置字段由放置时重写)。 - 放置后由
PortalBlock.onBlockPlacedBy读取fromItem.hasTagCompound()→te.readFromNBT(tag)+linkOtherPortal(false, placer)。