电脑程序

CC:T 中所有的电脑程序均使用 Lua 编写。有关于 Lua 基本语法以及内置函数用法请查阅 Lua 5.3 Refrence Manual

CC:T 使用自己的 Cobalt 引擎运行程序,Cobalt 并不完全匹配 Lua 5.3 有的功能,具体所支持/不支持的功能请在 这里 查看。

rom 是 CC:T 的一个特殊文件夹,其挂载了 CC:T 内置的模块和脚本并嵌入在 CC:T 的 mod 文件内。玩家无法更改 rom 文件夹的位置或内容。但服务器管理员可以通过数据包添加或更改 data/computer/lua/rom 文件夹中的内容。

当电脑开机时,CC:T 首先会在电脑上执行 bios.lua 文件,该文件同样嵌入在 CC:T 的 mod 文件内。玩家无法更改也无法读取 bios.lua 的内容。

bios.lua 文件会执行一些初始化操作,包括:

  1. 创建向后兼容的 API 别名。

  2. 创建内置方法。

  3. 加载 .settings 配置文件。

  4. 并行执行 rom/programs/shell.lua 脚本和 rednet.run 方法。

在用户层面来看,bios 执行完毕后会转到 shell。shell 程序在第一次运行时会执行 rom/startup.lua 文件。

rom/startup.lua 会初始化 shell path,用于在 shell 执行指令时定位脚本。同时 rom/startup.lua 会创建一些命令别名(例如 cp -> copy)以及加载内置脚本的自动补全程序。

之后 rom/startup.lua 会运行位于 rom/autorun 文件夹下所有不以 . 开头的文件。该文件夹默认不存在任何文件,需要使用数据包自行添加。

如果设置内启用了motd,startup还会执行 motd 程序随机打印一行 motd。

最后,rom/startup.lua 会寻找位于磁盘驱动器内的 startup 文件/文件夹,或者本地的 startup 文件/文件夹,并执行。需要注意若多个磁盘驱动器或本地目录都存在 startup 路径,则只会执行其中之一。

若 startup 不存在或执行完毕,shell 程序会继续执行并出现用户交互界面。

短评加载中..