@maniascript/api
TypeScript icon, indicating that this package has built-in type declarations

6.0.0 • Public • Published

Maniascript API

Parse the maniascript documentation file generated by the game executable (game.exe /generatescriptdoc=doc.h) and generate an object describing the maniascript API.

Installation

Install with npm: npm install @maniascript/api.

Binary

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

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 the classes object.
  • namespaceNames contains the name of all namespaces listed in the namespaces object.
  • classes contains the description of each of this classes.
  • namespaces contains the description of all the default maniascript libraries. eg: MathLib, TextLib, ...

generate

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')

execute

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'

Dependencies (1)

Dev Dependencies (10)

Package Sidebar

Install

npm i @maniascript/api

Weekly Downloads

44

Version

6.0.0

License

LGPL-3.0-or-later

Unpacked Size

2.47 MB

Total Files

14

Last publish

Collaborators

  • aessi