开放式打印机 (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 张打印页。
摆放要求
- 元数据
meta0-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(右缩)
- meta 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;普通纸返回 stackSizegetBlackInkLevel()- 黑墨水cfg.printerInkUse - damagegetColorInkLevel()- 彩墨水cfg.printerInkUse - damagecharCount(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 |