yl_speak_up/fs/README.md
2023-12-18 05:58:39 +01:00

44 lines
1.5 KiB
Markdown

In general, files in here ought to provide exactly tow functions:
```
yl_speak_up.input_fs_<FILE_NAME> = function(player, formname, fields)
-- react to whatever input the player supplied;
-- usually show another formspec
return
end
```
and:
```
yl_speak_up.get_fs_<FILE_NAME> = function(player, param)
-- return a formspec string
return formspec_string
end
```
The actual displaying of the formspecs and calling of these functions happens
in `show_fs.lua`.
There may be no function for handling input if the formspec only displays
something and only offers a back button or buttons to other formspecs.
Additional (local) helper functions may be included if they are only used
by those two functions above and not used elsewhere in the mod.
That is not a technical requirement but mostly for keeping things clean.
These functions are usually *not* declared as local and may be overridden
from outside if needed.
An exception to the above rule are the functions
```
yl_speak_up.show_precondition
yl_speak_up.show_action
yl_speak_up.show_effect
```
because in those cases it was better for readability and context to have them
in their respective `fs/fs_edit_<precondition|action|effect>.lua` files.
These functions are called in debug mode when excecuting the preconditions,
actions and effects as well.
Another exception is `exec_actions.lua` as the respective `get_fs_*` and
`input_*` functions there are only called when an action is executed and not
via `show_fs.lua` at all.