开放式打印机 (Open Printer)

基本信息

属性 值
注册名 openprinter:printer
TileEntity pcl.openprinter.tileentity.PrinterTE
硬度 0.5
爆炸抗性 0 (默认铁材质)
材质 Material.iron
3D 模型 可配置(render3D),启用时使用 TESR

功能

开放打印机是 OpenPrinter 模组的核型方块。它连接 OpenComputers 组件网络(component.openprinter),提供带颜色与对齐控制的纸张打印、扫描仪(读取 PrintedPage NBT)、Name Tag 打印以及内置文件系统(/lua/printer/)。玩家可通过 GUI 摆放墨水/纸张/扫描纸并输出 9 张打印页。

摆放要求

  • 元数据 meta 0-3 表示四个朝向(玩家 rotationYaw 转 4 段)
  • 启用 3D 模型时(默认 render3D=true)碰撞箱根据 meta 偏移:
    • meta 0: 0.0, 0.0, 0.4 到 1.0, 1.0, 1.0(后缩)
    • meta 1: 0.0, 0.0, 0.0 到 0.6, 1.0, 1.0(左缩)
    • meta 2: 0.0, 0.0, 0.0 到 1.0, 1.0, 0.6(前缩)
    • meta 3: 0.4, 0.0, 0.0 到 1.0, 1.0, 1.0(右缩)
  • 关闭 3D 模型时为完整方块碰撞箱
  • 放置时玩家朝向决定 meta(MathHelper.floor_double(player.rotationYaw * 4F / 360F + 0.5D) & 3)

数值

数值名 值
GUI ID 0
槽位数 20(0:黑墨水, 1:彩墨水, 2:纸张, 3-11:输出×9, 12:扫描纸槽, 13:扫描纸实际位)
侧面槽位访问 顶面=纸张输入 (slot 2), 底面=输出 (3-12), 侧面=墨水槽 (0, 1)
OC 组件名 openprinter
OC 连接器缓冲 32
文件系统组件 /lua/printer/(提供 xerox.lua)
单次可写行数上限 20 行
单次可打印页数(默认) 9(print(copies) 可调)

交互

触发 行为
左键 无效果
右键(未潜行) 打开 Printer GUI(ID 0)
右键(潜行) 阻止打开 GUI(返回 false)
破坏 掉落所有内容物(按 10-30 随机批量)

OpenComputers 接口(PrinterTE)

回调方法全部标 @Callback:

  • greet() - 返回 "Lasciate ogne speranza, voi ch'intrate"(但丁神曲地狱铭文)
  • setTitle(title) - 设置下一页标题
  • writeln(text, color?, align?) - 写入一行(color 整数如 0xFF0000;align "left"/"center"/"right")
  • print(copies=9) - 实际打印当前缓存的所有行,每页消耗 1 个纸张槽;自动消耗黑/彩墨水(每 §[0-9a-f] 颜色码算 1 点彩墨)
  • scan() - 返回 {pageTitle, {line0=..., line1=..., ...}} 表
  • scanLine(n) - 返回第 n 行文本(仅 NBT 内容)
  • getPaperLevel() - 纸卷剩余 256-damage;普通纸返回 stackSize
  • getBlackInkLevel() - 黑墨水 cfg.printerInkUse - damage
  • getColorInkLevel() - 彩墨水 cfg.printerInkUse - damage
  • charCount(text) - 去除 §[0-9a-fk-or] 后字符数(@Callback(direct=true))
  • clear() - 清空缓存行/颜色/对齐/标题
  • printTag(name) - 打印 Name Tag(消耗 1 个 name_tag + 1 点黑墨水)

合成配方

材料 配方
nuggetIron × 4(边框) + 红石 × 2(角) + Microchip (OC chip1) × 1 + PCB × 1(中心) 3×3 配方 IRI / MPM / IRI

相关条目