**This is an old revision of the document!**

开放式电脑官方文档

开放式电脑(OpenComputers, OC)是一个 Minecraft 的模组,它把电脑和机器人添加进了游戏,使用 Lua 5.3 作为编程语言。OC 借鉴了几个类似的模组,比如 ComputerCraft,StevesCarts 和 Modular Powersuits,来创造一些新奇而有趣的东西。

另请喜欢这个模组而有时间、能力的各位,帮助翻译一些英文文档,一起为 OC 社区做贡献!

连接能力

OC 可以通过若干种方法连接到MC世界,并与其交互:

对OC模组的大部分方块而言,只要紧挨着摆放就可以让它们自动“看见”彼此,并进行交互,或者也可以使用 线缆 间隔一段距离进行连接。你还可以使用多种网卡与交换机来逻辑化地连接或分断组件,有线或无线均可。

来自原版MC或其它模组的方块也可以通过 红石卡红石 I/O 端口 或者 适配器 与OC进行连接。很多来自其他模组的方块已经可以与适配器交互,例如来自BuildCraft、IndustrialCraft2 或者Thermal Expansion的方块。其它模组作者同样可以使用 Java API 来为他们的方块添加相应句柄。

机器人 几乎可以像真正的玩家一样与世界互动。 它们可以装备大多数工具、方块和其他物品,并且可以变成控制机器人如何使用这个物品,你可以编写程序让机器人整理箱子、挖掘资源或是为你建造一座堡垒。你甚至可以让它 唱歌 或跳舞。只有你想不到的,没有它机器人做不到的。

查看 组件互动 来了解如何通过 Lua 和组件通信。

模块化

OC模组中的电脑是由多种独立模块构建的,例如显卡、硬盘和扩展卡。这使得你能够按照需求精确定制每台电脑。如果你只想处理简单任务,可以节省构建电脑的资源。或者你也可以将所有的钻石都用在构建 MC 最昂贵、最强力的电脑上。

查看 方块和物品文档 以获取可用于组装电脑的组件列表。

资源限制

开放式电脑的内存和磁盘大小都是有限的,可以在配置文件中根据你的喜好调整。这不仅有利于减轻OC对服务端造成的负荷,还会带给你温暖的怀旧感,回到那个磁盘和内存都用 KB 和 MB 计算的年代。但由于 Lua 程序占用的资源很少,中等性能的开放式电脑已经足以解决大多数问题。如果不能,你也可以花费更多钻石制造更大的内存。

除了这些直观的限制,我们还为了OC能在服务端中完美运行而进行了特殊设计:开放式电脑使用固定数量的低优先度线程来处理协程,以尽量减少造成的服务端tick延迟。另外,运行程序时所占用的资源会被强制限制在一个可配置的恒定标准之下,如果因为种种原因没能做到这点的话,(游戏中的)电脑会被强制崩溃,以避免服务端因为恶意的或工作异常的程序出现延迟。

持续性

当开放式电脑所在区块停止加载,它们的运行会被挂起,区块重新加载时会从停止的位置继续执行。这让玩家在MC环境中使用开放式电脑时很符合直觉,因为你不必担心区块加载或恢复,也不需要添加来自其它模组的区块加载器来保持电脑运行。

为了实现这个功能,OC引入了一个原生库——Eris 库。这个库包含了官方的 Lua 虚拟机实现,它已经足以支持电脑暂停的功能。现在这个库已经包含在 Windows, Mac OS X, Linux 和 BSD 版本的模组中,只需服务端支持即可,因为OC模组的所有Lua代码都仅在服务端执行。如果你的系统不支持此运行库,模组会回退到基于 Java 的 Lua 实现:LuaJ。这种情况下电脑的运行状态在卸载区块时不能保持,内存也不会被限制。

能量

电脑运行时会依据所做工作消耗能量。某些组件,例如显卡和无线网卡,除了每 tick 会消耗的少量能量外还会根据工作负载大小额外消耗能量。这不仅很真实,同时还能鼓励玩家优化代码,不让OC模组的服务器一直运行无用任务。能量消耗的准确数值可以在配置文件中修改,如果你想在一个不必考虑能量消耗的环境中工作的话,甚至可以完全移除。

在开放式电脑模组中可以用 电容 产生静电以供电。此外,发电机升级可以用于机器人,太阳能发电机升级可以用于机器人和微控制器。开放式电脑的设备也可以由 其它模组 的能源供电。

可配置性

模组中几乎所有方面都能通过配置文件调整。不是需要能量才能运行的电脑的爱好者?把运行消耗设置到零。不想能量出现在游玩过程中?那么完全禁用它!感觉机器人走的太慢了?让它们快点。想要更多的多方块屏幕?增大最大尺寸。快去查看 默认配置文件 来了解所有配置项。

目录

附加模组 附属模组 Computronics(英文)
支持 OC 的模组 Thut's Concrete
其他语言 英文(English)