OpenTTD Source 20260208-master-g43af8e94d0
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={}, bool suspendable=false)
 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, bool suspendable=false)
 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={}, bool suspendable=false)
 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, bool suspendable=false)
 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,
bool suspendable = false )
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(), and SQConvert::DefSQAdvancedNonStaticCallback().

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,
bool suspendable = false )
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(), and SQConvert::DefSQAdvancedStaticCallback().

◆ 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 = {},
bool suspendable = false )
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 = {},
bool suspendable = false )
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: