|
|
|
@ -11,3 +11,44 @@ bc = require("bc"):init("<master-address>")
|
|
|
|
```
|
|
|
|
```
|
|
|
|
where `<master-address>` is the address of you networks master.
|
|
|
|
where `<master-address>` is the address of you networks master.
|
|
|
|
The master is only required to download the base structure file.
|
|
|
|
The master is only required to download the base structure file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The basic idea behind basecontrol is, that network node have a set of **nouns**,
|
|
|
|
|
|
|
|
which represent different values. A computer near a reactor for example could have
|
|
|
|
|
|
|
|
a noun called `power-output`. Network nodes also have **verbs**, actions that other
|
|
|
|
|
|
|
|
nodes can perform. The reactor comuputer could have a `shutdown` verb for example.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The `bc` object has the following methods to interface with verbs and nouns:
|
|
|
|
|
|
|
|
```lua
|
|
|
|
|
|
|
|
-- Retrieve a noun from it's network node
|
|
|
|
|
|
|
|
val = bc:get_noun("<noun>")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Set a noun on the local machine
|
|
|
|
|
|
|
|
bc:set_noun("<noun>", value)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Call a verb on it's network node
|
|
|
|
|
|
|
|
bc:call_verb("<verb>", param)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Register a handler for verbs on the current machine
|
|
|
|
|
|
|
|
bc:on_verb("<verb>", function handler)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Additionally, there is
|
|
|
|
|
|
|
|
```lua
|
|
|
|
|
|
|
|
id = bc:listen_noun("<noun>", event_type, event_arg, function callback)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
which is used to register asynchroneous callbacks on noun changes.
|
|
|
|
|
|
|
|
`event_type` is one of
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* onchange => whenever the value changes, `event_arg` is ignored
|
|
|
|
|
|
|
|
* onrising => whenever the value gets bigger, `event_arg` is ignored
|
|
|
|
|
|
|
|
* onfalling => whenever the value gets smaller, `event_arg` is ignored
|
|
|
|
|
|
|
|
* onvalue => whenever the value equals `event_arg`
|
|
|
|
|
|
|
|
* onabove => whenever the value is bigger than `event_arg`
|
|
|
|
|
|
|
|
* onbelow => whenever the value smaller than `event_arg`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A listener can be removed using
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```lua
|
|
|
|
|
|
|
|
bc:listen_cancel("<noun>", id)
|
|
|
|
|
|
|
|
```
|
|
|
|
|