占位物品
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | vendingmachine:placeholder(GameRegistry.registerItem(ItemPlaceholder.placeholder, "placeholder"),无显式 ResourceLocation) |
| 显示名 | vendingmachine.placeholder |
| 类 | ItemPlaceholder extends Item |
| 最大堆叠 | 64(Item 默认,未覆写 getItemStackLimit) |
| 耐久 | 无(未覆写 setMaxDamage) |
| 附魔适用 | 是(未覆写 getItemEnchantability) |
| 获得方式 | 无合成配方,无法正常获得 |
功能
这是一个内部占位物品,不是给玩家用的道具。当交易数据库引用的物品在本环境中不存在时
(例如整合包删掉了某个 mod),ItemPlaceholder.getBigItemStackFrom(...) 会生成一个占位 BigItemStack,
把原始信息存进 NBT:
| NBT 键 | 类型 | 含义 |
|---|---|---|
orig_id |
String | 原始物品注册名 |
orig_meta |
int | 原始 metadata |
orig_tag |
Compound | 原始 NBT(可缺省) |
读取时若 orig_id 能解析回真实物品,就还原成真物品;解析失败则保持占位状态并显示原始 ID。
使用方式
| 使用方式 | 触发条件 | 使用效果 |
|---|---|---|
| 容器使用 | 占位物在玩家背包中,每 100 tick 检查一次(world.getTotalWorldTime() % 100 == 0) |
onUpdate 自动把占位替换回原物品(先按 orig_id 查注册表,失败再按 Item.getIdById 查数字 ID) |
交互
| 触发 | 行为 |
|---|---|
| 鼠标悬停 | addInformation 追加 Original ID: <orig_id>/<orig_meta>;若完全没有 NBT 则显示 ERROR: Original information missing! |
数值
| 数值 | 值 |
|---|---|
| 还原检查间隔 | 100 tick(5 秒) |
| 默认最大堆叠 | 64 |
相关条目
- 交易与定价系统 - 占位物品由交易数据库解析时产生