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

API

标准库

最基本也是最首要的,如果你是 Lua 新人,你应该熟悉 Lua 参考手册(英文)。你会在这里找到大部分基本 Lua 功能和例子,以及大量标准库功能。

(译者注:中文读者可参见菜鸟教程的 Lua 教程。)

OC 尽力去模拟大部分和系统互动的标准库,也就是 I/O 库。有少许不同,你可以在这里查看:与标准库的差异。最值得注意的是,几乎整个 debug 库都是不可用的,load 只接受文本源文件,不接受二进制或预编译的 Lua 程序(这是由于安全原因)。

下列标准库文件可以在全局环境下使用,它们不需要预加载到你的脚本中也能正常运行。

snippet.lua
print("hello world")

自定义的库

下列是为了方便而提供的非标准库。

请注意,在使用所有非标准库之前,你需要 require 它们,非标准库即所有没有在Lua基本参考手册中列出的标准库。举例来说,你不应该仅仅使用 local rs = component.redstone,你需要先通过 require 声明调用此API,就像这样:

snippet.lua
local component = require("component")
local rs = component.redstone
 
-- 你当然可以更改变量名称:
local mycomp = require("component")
local rs = mycomp.redstone

以下列出的 API 都是这样(甚至 sides 和 colors 也是如此)。

除了Lua提供的标准库外,OC 提供了两个内建的库。它们当中的一些功能可能无法使用,视你的配置(HTTP)或情况(计算机上无法调用机器人上的库)而定,但是它们仍然存在。

  • buffer:一个适用于包装好的流的 Lua File*原文如此 API 缓冲区实现。
  • colors:一个被用来按标准引用的包含所有 Minecraft 颜色的表。
  • component:查找与管理所有连接到计算机的组件。
  • computer:通过 Lua 查询计算机的运行信息并与计算机交互的库。
  • event:一个事件系统, 通常被其他库调用, 用于注册信号接收程序。
  • uuid:创建一串 8-4-4-4-12 格式的字符串。
  • filesystem:一套抽象的文件系统交互。
  • internet:一个网卡功能的包装。
  • keyboard:一个按名称和按下的按键追踪按键的代码表。
  • note:把音乐在 MIDI 代码、频率和实际音符间转换的库。
  • process:保持追踪正在运行的程序与运行环境。
  • rc:Lua 提供的一套自动执行程序与服务管理的库。
  • robot:以抽象方法操作机器人的库。
  • serialization:允许序列化值,例如当通过网络发送它们时。
  • shell:正在执行的程序路径跟踪与程序执行情况。
  • sides:一个允许根据按名称引用方向(面)的全局表。
  • term:提供光标的概念,用于分别读写键盘输入和屏幕输出。
  • text:提供类似于 tab 转空格之类的文字实用程序。
  • thread:提供自主且非阻塞的协作线程。
  • transforms:提供有用且强大的表操作器。
  • unicode:提供 string 库某些功能的 Unicode 实现。

目录