Lua API
基本信息
| 属性 | 值 |
|---|---|
| Lua 函数总数 | 29 |
| 源码位置 | surface/widgets/core/luafunction/(29 个文件,每个一个函数) |
| 基类 | LuaFunction implements Value(lua/LuaFunction.java:14) |
| 参考类 | LuaReference(lua/LuaReference.java) |
| 运行环境 | OpenComputers Lua(li.cil.oc.api.machine.*) |
OCGlasses 把 29 个函数注入 OpenComputers 的 Lua 虚拟机,在眼镜终端的 openos 中直接可用,用于操纵 Widget System 的图元。
全部 29 个函数
函数名取自各类的 getName() 返回值(LuaFunction.java:21 声明为 public abstract String getName())。
位置与朝向(8)
| Lua 名 | 类 |
|---|---|
getPosition |
GetPosition |
setPosition |
SetPosition |
get3DPos |
GetPosition3D |
set3DPos |
SetPosition3D |
getRotation |
GetRotation |
setRotation |
SetRotation |
getLookingAt |
GetLookingAt |
setLookingAt |
SetLookingAt |
尺寸与缩放(4)
| Lua 名 | 类 |
|---|---|
getSize |
GetSize |
setSize |
SetSize |
getScale |
GetScale |
setScale |
SetScale |
外观(4)
| Lua 名 | 类 |
|---|---|
getAlpha |
GetAlpha |
setAlpha |
SetAlpha |
getColor |
GetColor |
setColor |
SetColor |
可见性(4)
| Lua 名 | 类 |
|---|---|
isVisible |
IsVisible |
setVisible |
SetVisible |
isVisibleThroughObjects |
IsVisibleThroughObjects |
setVisibleThroughObjects |
SetVisibleThroughObjects |
内容(4)
| Lua 名 | 类 |
|---|---|
getText |
GetText |
setText |
SetText |
getItem |
GetItem |
setItem |
SetItem |
其它(5)
| Lua 名 | 类 |
|---|---|
getID |
GetID |
getVertexCount |
GetVertexCount |
setVertex |
SetVertex |
getViewDistance |
GetViewDistance |
setViewDistance |
SetViewDistance |
对照:2D / 3D 命名不对称
getPosition / setPosition 与 get3DPos / set3DPos 命名不对称——3D 版本用 3DPos 而非 Position3D。这是源码实际命名,脚本中必须照此写。
Value 接口实现
LuaFunction implements Value(li.cil.oc.api.machine.Value),并实现了 NBT 持久化:
public void load(NBTTagCompound nbt) {
ref = new LuaReference().readFromNBT(nbt.getCompoundTag("ref"));
}
public void save(NBTTagCompound nbt) {
NBTTagCompound refTag = new NBTTagCompound();
ref.writeToNBT(refTag);
nbt.setTag("ref", refTag);
}
即图元的引用(LuaReference)可随存档序列化,脚本重建后可重新绑定到同一图元。
LuaReference 持有 id 与 Location(世界坐标),是 OC 侧定位图元的句柄。
相关条目
- Widget System - 被这些函数操纵的 12 种图元
- AR Glasses - Lua 运行所在的物品
- Glasses Terminal - 终端环境与 Lua 运行时
- OpenComputers -
Value/Arguments/ContextAPI