碎纸机 (Open Shredder)
基本信息
| 属性 |
值 |
| 注册名 |
openprinter:shredder |
| TileEntity |
pcl.openprinter.tileentity.ShredderTE |
| 硬度 |
0.5 |
| 材质 |
Material.iron |
功能
碎纸机持续处理输入槽中的 PrintedPage(打印页)或 Minecraft 书本(Items.book / Items.writable_book / Items.written_book),将其粉碎为碎纸(Paper Shreds)。书本每次产出 3 张碎纸(含 NBT 满溢出到下一格)。每 10 tick 处理一次。
摆放要求
- 元数据 0-3 表示基础朝向,放置时 meta =
(yaw_segment + 1) & 0x3(即实际 meta 范围 1-4)
- 碰撞箱按
render3D 配置切换(与打印机共用逻辑)
数值
| 数值名 |
值 |
| GUI ID |
2 |
| 槽位数 |
19(0: 输入, 1-18: 输出×18) |
| 处理周期 |
每 10 tick |
| 单次产出(普通 PrintedPage) |
1 张碎纸 |
| 单次产出(书类) |
3 张碎纸 |
| 侧面槽位访问 |
顶面=输出, 底面=输入, 侧面=输出 |
交互
| 触发 |
行为 |
| 左键 |
无效果 |
| 右键(未潜行) |
打开 Shredder GUI(ID 2) |
| 右键(潜行) |
阻止打开 GUI |
| 破坏 |
掉落全部内容物(10-30 随机批量) |
处理逻辑(ShredderTE.updateEntity)
if (inputSlot != null):
processingTime++
if (processingTime > 10):
for x = 1..9:
if output[x] 是碎纸且 < 64:
if input 是 book: incStackSize(x, 3)
else: incStackSize(x, 1)
decrStackSize(0, 1)
break
elif output[x] == null:
创建新碎纸栈
if input 是 book: incStackSize(x, 2)
decrStackSize(0, 1)
break
processingTime = 0
输入校验(isItemValidForSlot)
- 槽位 0 仅接受
PrintedPage 或 Items.book
- 其他槽位不校验(输出)
合成配方
| 材料 |
配方 |
nuggetIron × 4 + 红石 × 2(角) + 剪刀 × 1(中心) |
3×3 IRI / ISI / IRI |
相关条目
- 碎纸 - 产出物
- 打印页 - 主要输入
- 文件柜 - 存放打印页的反向选择
- 打印机 - 产生 PrintedPage