便携式磁带驱动器
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | computronics.portableTapeDrive |
| 物品类 | pl.asie.computronics.item.ItemPortableTapeDrive |
| GUI | GuiProviderPortableTapeDrive,注册于 Computronics.java:299-300 |
| 开启配置 | enable.portableTapeDrive,默认 true(Computronics.java:296) |
| 生命期 | 服务器停止时清理:PortableDriveManager.INSTANCE.onServerStop()(Computronics.java:448) |
功能
磁带机的物品形态——不占地方,可塞进背包随身播放录音带。核心差异是按物品而非按方块管理磁带数据。
实现方式:每个 ItemStack 通过 NBT 的 tid 字段引用 PortableDriveManager 中的一条记录(ItemPortableTapeDrive.java:61、:82、:113、:132)。因此掉落的驱动器仍指向原磁带数据,除非管理器记录被清理。
配套事件处理器 TapeStorageEventHandler 仅在磁带机或便携驱动器任一存在时注册(Computronics.java:347-350);PortableDriveManager 自身在便携驱动器存在时注册到 FMLCommonHandler 总线(Computronics.java:352-354)。
数值
| 数值名 | 值 | 范围 | 来源 |
|---|---|---|---|
tapedrive.portable.hearingDistance |
8 | 0–64 | Config.java:420-426 |
Config.PORTABLE_TAPEDRIVE_DISTANCE 字段初值 |
8 | — | Config.java:21 |
可听距离默认只有磁带机的 1/3(8 vs 24)。
交互
| 触发 | 行为 |
|---|---|
| 右击 | 打开 GuiProviderPortableTapeDrive,GUI 与磁带机同构(GuiProviderPortableTapeDrive.java:35-46:读取/切换状态并经封包回传) |
| 掉落 | 磁带数据保留在 PortableDriveManager 中 |
⚠️ 该 GUI 的状态封包同样走 GuiProviderTapeDrive 风格的 try/catch,失败路径不写日志。
合成配方
无 OC 配方(ModRecipes.java:186-205):
sgs
sas
srs
| 字符 | 物品 |
|---|---|
s |
石砖 minecraft:stonebrick |
r |
红石粉 dustRedstone |
g |
玻璃 blockGlassColorless |
a |
磁带机 → 铁音符盒 → 音符盒(依次回退) |
OC 配方(ModRecipes.java:473-492):
sgs
tab
srs
| 字符 | 物品 |
|---|---|
s |
oc:chamelium |
r |
oc:materialCircuitBoardPrinted |
g |
玻璃 blockGlassColorless |
t |
oc:materialTransistor |
b |
铁栅栏 minecraft:iron_bars |
a |
磁带机 → 铁音符盒 → 音符盒(依次回退) |