碎纸机 (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

相关条目