开放式电脑官方文档

开放式电脑(OpenComputers, OC)是一个Minecraft模组。它向游戏中加入了可用Lua 5.3编程的电脑和机器人。OC借鉴了几个类似模组的创意,比如ComputerCraft、StevesCarts和Modular Powersuits,以创造一些新奇而有趣的东西。

连接能力

OC的电脑可以通过若干方式连接到外界的Minecraft世界,并与其交互:

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

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

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

查看访问组件页面来了解如何通过Lua与组件通信。

模块化

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

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

资源限制

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

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

持续性

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

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

能量

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

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

可配置性

模组中的几乎一切都能通过配置文件调整。不喜欢需要能量才能运行的电脑?那就把运行时能量消耗设置到零。完全不想考虑能量?那么完全禁用它!感觉机器人走的太慢了?那就让它们快点。想要更大的多方块屏幕?那就增加最大尺寸。你可以查看默认配置文件(英文)来了解所有配置项。

目录

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