This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
tutorial:custom_oses:zh [2023/12/03 10:52] hfsr [引导启动] |
tutorial:custom_oses:zh [2023/12/03 10:55] hfsr [在 BIOS 中访问组件] |
||
---|---|---|---|
Line 16: | Line 16: | ||
什么可用? | 什么可用? | ||
----------------- | ----------------- | ||
- | Wiki 上记录了一些库,它们实际上是 OpenOS 的一部分,所以当你实现自己的操作系统时这些库无法使用。最值得注意的是,这包括 `io`,`package` 和 `filesystem` 库。有关 init 脚本中可用内容的明确参考,请查看系统内核或[[https://github.com/MightyPirates/OpenComputers/blob/master-MC1.12/src/main/resources/assets/opencomputers/lua/machine.lua|你当前OpenComputer模组版本对应的machine.lua脚本](英文)。 以下列表不能保证完整性与/或时效性! | + | Wiki 上记录了一些库,它们实际上是 OpenOS 的一部分,所以当你实现自己的操作系统时这些库无法使用。最值得注意的是,其中包括`io`、`package`和`filesystem`库。要获取init脚本中可用内容的明确参考,请查看系统内核代码或[[https://github.com/MightyPirates/OpenComputers/blob/master-MC1.12/src/main/resources/assets/opencomputers/lua/machine.lua|你当前OpenComputer模组版本对应的machine.lua脚本](英文)。 以下列表不能保证完整性与/或时效性! |
```lua | ```lua | ||
Line 191: | Line 191: | ||
``` | ``` | ||
- | 在 BIOS 中访问组件 | + | 在BIOS中访问组件 |
----------------- | ----------------- | ||
- | 与 OpenOS 不同,BIOS没有首选组件系统。这意味着您不能只编写 `component.redstone.setOutput`,而是必须先手动为组件创建代理对象。出于多种原因,代理对象系统是通过机器本身提供的,因此您仍然可以使用它。若要获取代理对象,请使用 `component.proxy` 方法。此函数需要你打算包装的组件地址。 您可以手动写下来,或者用 `component.list` 来获得组件的列表并从中获取。 | + | 与OpenOS不同,BIOS没有首选组件系统。这意味着你不能只写`component.redstone.setOutput`,而是必须先手动为组件创建代理对象。出于多种原因,代理对象系统是通过机器本身提供的,因此您仍然可以使用它。若要获取代理对象,请使用`component.proxy`方法。此函数需要你提供打算包装的组件地址。 您可以手动写下来,或者用`component.list`来获得组件的列表并从中获取。 |
比如说,要获得第一个红石组件,您可以执行以下操作: | 比如说,要获得第一个红石组件,您可以执行以下操作: | ||
Line 199: | Line 199: | ||
local r = component.proxy(component.list("redstone")()) | local r = component.proxy(component.list("redstone")()) | ||
``` | ``` | ||
- | 这行代码可以工作,因为 `component.list` 返回一个 Lua 迭代器——一个可重复调用来获得下一个元素的函数,当没有元素时返回`nil`。 | + | 这行代码可以工作,因为`component.list`返回一个 Lua 迭代器——一个可重复调用来获得下一个元素的函数,当没有元素时返回`nil`。 |
其他东西 | 其他东西 |