OpenTTD Source: DefSQClass< CL, ST > Class Template Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Private Attributes
DefSQClass< CL, ST > Class Template Reference

The template to define classes in Squirrel. More...

`#include <squirrel_class.hpp>`

## Public Member Functions
| DefSQClass (std::string_view _classname)
template<typename Func >
void | DefSQMethod (Squirrel &engine, Func function_proc, std::string_view function_name, std::string_view params={})
| This defines a method inside a class for Squirrel with defined params.
template<typename Func >
void | DefSQAdvancedMethod (Squirrel &engine, Func function_proc, std::string_view function_name)
| This defines a method inside a class for Squirrel, which has access to the 'engine' (experts only!).
template<typename Func >
void | DefSQStaticMethod (Squirrel &engine, Func function_proc, std::string_view function_name, std::string_view params={})
| This defines a static method inside a class for Squirrel with defined params.
template<typename Func >
void | DefSQAdvancedStaticMethod (Squirrel &engine, Func function_proc, std::string_view function_name)
| This defines a static method inside a class for Squirrel, which has access to the 'engine' (experts only!).
template<typename Var >
void | DefSQConst (Squirrel &engine, Var value, std::string_view var_name)
void | PreRegister (Squirrel &engine)
void | PreRegister (Squirrel &engine, std::string_view parent_class)
template<typename Func >
void | AddConstructor (Squirrel &engine, std::string_view params)
void | AddSQAdvancedConstructor (Squirrel &engine)
void | PostRegister (Squirrel &engine)

## Private Attributes
std::string_view | classname

## Detailed Description

template<class CL, ScriptType ST>
class DefSQClass< CL, ST >

The template to define classes in Squirrel.

It takes care of the creation and calling of such classes, to minimize the API layer.

Definition at line 20 of file squirrel_class.hpp.

## Constructor & Destructor Documentation

## ◆ DefSQClass()

template<class CL , ScriptType ST>

DefSQClass< CL, ST >::DefSQClass | ( | std::string_view | _classname | ) |
| inline

Definition at line 25 of file squirrel_class.hpp.

## Member Function Documentation

## ◆ AddConstructor()

template<class CL , ScriptType ST>
template<typename Func >

void DefSQClass< CL, ST >::AddConstructor | ( | Squirrel & | engine,
|  | std::string_view | params
| ) |  |
| inline

Definition at line 92 of file squirrel_class.hpp.

## ◆ AddSQAdvancedConstructor()

template<class CL , ScriptType ST>

void DefSQClass< CL, ST >::AddSQAdvancedConstructor | ( | Squirrel & | engine | ) |
| inline

Definition at line 98 of file squirrel_class.hpp.

## ◆ DefSQAdvancedMethod()

template<class CL , ScriptType ST>
template<typename Func >

void DefSQClass< CL, ST >::DefSQAdvancedMethod | ( | Squirrel & | engine,
|  | Func | function_proc,
|  | std::string_view | function_name
| ) |  |
| inline

This defines a method inside a class for Squirrel, which has access to the 'engine' (experts only!).

Definition at line 46 of file squirrel_class.hpp.

References Squirrel::AddMethod().

Referenced by AIInfo::RegisterAPI(), and GameInfo::RegisterAPI().

## ◆ DefSQAdvancedStaticMethod()

template<class CL , ScriptType ST>
template<typename Func >

void DefSQClass< CL, ST >::DefSQAdvancedStaticMethod | ( | Squirrel & | engine,
|  | Func | function_proc,
|  | std::string_view | function_name
| ) |  |
| inline

This defines a static method inside a class for Squirrel, which has access to the 'engine' (experts only!).

Definition at line 69 of file squirrel_class.hpp.

References Squirrel::AddMethod().

## ◆ DefSQConst()

template<class CL , ScriptType ST>
template<typename Var >

void DefSQClass< CL, ST >::DefSQConst | ( | Squirrel & | engine,
|  | Var | value,
|  | std::string_view | var_name
| ) |  |
| inline

Definition at line 76 of file squirrel_class.hpp.

## ◆ DefSQMethod()

template<class CL , ScriptType ST>
template<typename Func >

void DefSQClass< CL, ST >::DefSQMethod | ( | Squirrel & | engine,
|  | Func | function_proc,
|  | std::string_view | function_name,
|  | std::string_view | params = `{}`
| ) |  |
| inline

This defines a method inside a class for Squirrel with defined params.

Note
  If you define params, make sure that the first param is always 'x', which is the 'this' inside the function. This is hidden from the rest of the code, but without it calling your function will fail!

Definition at line 36 of file squirrel_class.hpp.

## ◆ DefSQStaticMethod()

template<class CL , ScriptType ST>
template<typename Func >

void DefSQClass< CL, ST >::DefSQStaticMethod | ( | Squirrel & | engine,
|  | Func | function_proc,
|  | std::string_view | function_name,
|  | std::string_view | params = `{}`
| ) |  |
| inline

This defines a static method inside a class for Squirrel with defined params.

Note
  If you define params, make sure that the first param is always 'x', which is the 'this' inside the function. This is hidden from the rest of the code, but without it calling your function will fail!

Definition at line 59 of file squirrel_class.hpp.

## ◆ PostRegister()

template<class CL , ScriptType ST>

void DefSQClass< CL, ST >::PostRegister | ( | Squirrel & | engine | ) |
| inline

Definition at line 104 of file squirrel_class.hpp.

## ◆ PreRegister() [1/2]

template<class CL , ScriptType ST>

void DefSQClass< CL, ST >::PreRegister | ( | Squirrel & | engine | ) |
| inline

Definition at line 81 of file squirrel_class.hpp.

## ◆ PreRegister() [2/2]

template<class CL , ScriptType ST>

void DefSQClass< CL, ST >::PreRegister | ( | Squirrel & | engine,
|  | std::string_view | parent_class
| ) |  |
| inline

Definition at line 86 of file squirrel_class.hpp.

## Field Documentation

## ◆ classname

template<class CL , ScriptType ST>

std::string_view DefSQClass< CL, ST >::classname
| private

Definition at line 22 of file squirrel_class.hpp.

The documentation for this class was generated from the following file:

- src/script/squirrel_class.hpp