Parse the maniascript documentation file generated by the game executable (game.exe /generatescriptdoc=doc.h
) and generate an object describing the maniascript API.
Install with npm: npm install @maniascript/api
.
The package exposes a generate-api
command. It takes one argument, the path to the documentation file to parse. It will create an api.json
file containing the api in json format described by the documentation file.
generate-api ./path/to/doc.h
will create the ./path/to/api.json
file.
import { api } from '@maniascript/api'
or const { api } = require('@maniascript/api')
api
is an object describing the whole maniascript api.
{
classNames: [
"CMlScript",
"CManiaApp",
"CEditorMainPlugin",
"CServerPlugin",
"CSmMode",
"CSmAction",
"CSmMapType",
"CNod",
...
],
namespaceNames: [
"TextLib",
"MathLib",
...
],
classes: {
CMlScript: {
enums: {
LinkType: [
"ExternalBrowser",
...
]
},
variables: {
Page: {
isConst: true,
type: {
category: "class",
name: "CMlPage"
}
},
...
},
functions: {
IsKeyPressed: [
{
type: {
category: "literal",
name: "Boolean"
},
parameters: [
{
type: {
category: "literal",
name: "Integer"
},
name: "KeyCode"
}
]
}
],
...
}
},
...
},
namespaces: {
MathLib: {
enums: { ... },
variables: { ... },
functions: { ... }
},
...
}
}
-
classNames
contains the name of all classes listed in theclasses
object. -
namespaceNames
contains the name of all namespaces listed in thenamespaces
object. -
classes
contains the description of each of this classes. -
namespaces
contains the description of all the default maniascript libraries. eg:MathLib
,TextLib
, ...
import { generate } from '@maniascript/api'
or const { generate } = require('@maniascript/api')
generate
is a function that takes the documentation text to parse as input and returns an object describing the api
defined in the documentation.
const api = generate('SomeDocumentationText')
import { execute } from '@maniascript/api'
or const { execute } = require('@maniascript/api')
execute
is a function that takes the path to the documentation file to parse and create a file containing the description of the api defined in the documentation in json format.
execute('path/to/doc.h')
// generate a file: 'path/to/api.json'