Modules
A module is just a TO2-file containing some public (pub) functions or types.
Currently all scripts are located in the plugin folder itself:
BepInEx/plugins/KontrolSystem2/to2
The name of the script becomes the name of the module. Subfolders will be prefixed with a :: delimiter.
E.g.
to2/
| - intercept.to2 module name: "intercept"
| - std/
| | - utils.to2 module name: "std::utils"
| | - vac.to2 module name: "std::vac"
| | - numerics/
| | | - brent_optimize.to2 module name: "std::numerics::brent_optimize
Importing for modules
Public functions can be used fully qualified: E.g.:
std::utils::angle_to_360(520)
will call the angle_to_360 function defined in the std::utils module.
Alternatively function can be import via the use keyword.
use { angle_to_360 } from std::utils
angle_to_360(520)