录音机
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | RandomThings:soundRecorder |
| 类 | lumien.randomthings.Items.ItemSoundRecorder |
| GUI ID | GuiIds.SOUND_RECORDER = 9(GuiIds.java:14) |
| 容器槽位 | 0(ContainerSoundRecorder 只覆写 canInteractWith) |
| 访问权限 | 无限制(canInteractWith 直接返回 true) |
| 开关 | Items.SoundRecorder(RTConfiguration.java:222) |
功能
录音机是一个环境声音录制与广播工具:记录所在位置播放过的声音,并可将其作为广播音效重放。
录制开关
Shift + 右键切换录制状态(ItemSoundRecorder.java:37-45):
if (par3EntityPlayer.isSneaking()) {
if (par1ItemStack.getItemDamage() == 0) {
par1ItemStack.setItemDamage(1);
} else {
par1ItemStack.setItemDamage(0);
}
状态存在 metadata:0 = 未录制,1 = 录制中。
状态贴图
两张贴图对应两种状态(ItemSoundRecorder.java:22-26):
| metadata | 贴图 |
|---|---|
| 0 | RandomThings:soundRecorderInactive |
| 1 | RandomThings:soundRecorderActive |
getIconFromDamage 对越界 damage 返回 null(:31-35),是本 mod 中少见的显式空值返回。
播放
Client/Audio/BroadcastSoundEffect.java 负责重放已录制的声音。
数值
| 数值名 | 值 |
|---|---|
| 状态数 | 2(metadata 0 / 1) |
| 容器槽位 | 0(纯 GUI,无背包槽) |
| 访问限制 | 无(canInteractWith 恒 true) |
| GUI ID | 9 |
| 切换方式 | Shift + 右键 |
交互
| 触发 | 行为 |
|---|---|
| 右键 | 打开 GUI ID 9 |
| Shift + 右键 | 切换录制开关(贴图随之切换) |
| 录制中 | 记录周围播放的声音 |
| 重放 | 通过 BroadcastSoundEffect 播放 |
[!NOTE] 与虚空之石、磁力仪 等不同,录音机的
ContainerSoundRecorder.canInteractWith不做任何手持物或配置校验,直接返回true(Container/ContainerSoundRecorder.java:11-13)。
合成配方
xrx
wiw
wiw
| 字符 | 物品 |
|---|---|
r |
红石火把(Blocks.redstone_torch) |
w |
木板(plankWood) |
i |
铁锭(ingotIron) |
来源:Library/Recipes.java:410-421,受 ConfigItems.soundRecorder 约束。
相关条目
- 方块与物品开关 -
Items.SoundRecorder