![]() |
ezEngine
Release 25.03
|
Base class for all types of ezConsoleFunction, represents functions to be exposed to ezConsole. More...
#include <ConsoleFunction.h>
Public Member Functions | |
ezConsoleFunctionBase (ezStringView sFunctionName, ezStringView sDescription) | |
The constructor takes the function name and description as it should appear in the console. | |
ezStringView | GetName () const |
Returns the name of the function as it should be exposed in the console. | |
ezStringView | GetDescription () const |
Returns the description of the function as it should appear in the console. | |
virtual ezUInt32 | GetNumParameters () const =0 |
Returns the number of parameters that this function takes. | |
virtual ezVariant::Type::Enum | GetParameterType (ezUInt32 uiParam) const =0 |
Returns the type of the n-th parameter. | |
virtual ezResult | Call (ezArrayPtr< ezVariant > params)=0 |
Calls the function. Each parameter must be put into an ezVariant and all of them are passed along as an array. More... | |
Additional Inherited Members | |
![]() | |
static const ezRTTI * | GetStaticRTTI () |
![]() | |
ezEnumerable * | m_pNextInstance |
Base class for all types of ezConsoleFunction, represents functions to be exposed to ezConsole.
Console functions are similar to ezCVar's in that they can be executed from the ezConsole. A console function can wrap many different types of functions with differing number and types of parameters. ezConsoleFunction uses an ezDelegate internally to store the function reference, so even member functions would be possible.
All console functions are enumerable, as their base class ezConsoleFunctionBase is an ezEnumerable class.
Console functions can have between zero and six parameters. The LuaInterpreter for ezConsole only supports parameter types (unsigned) int, float/double, bool and string and uses the conversion feature of ezVariant to map the lua input to the final function.
To make a function available as a console function, create a global variable of type ezConsoleFunction with the proper template arguments to mirror its parameters and return type. Note that although functions with return types are accepted, the return value is currently always ignored.
Here the global function MyConsoleFunc2 is exposed to the console. The return value type and parameter types are passed as template arguments. ConFunc_MyConsoleFunc2 is now the global variable that represents the function for the console. The first string is the name with which the function is exposed, which is also used for auto-completion. The second string is the description of the function. Here we inserted the parameter list with types, so that the user knows how to use it. Finally the last parameter is the actual function to expose.
|
pure virtual |
Calls the function. Each parameter must be put into an ezVariant and all of them are passed along as an array.
Returns EZ_FAILURE, if the number of parameters did not match, or any parameter was not convertible to the actual type that the function expects.
Implemented in ezConsoleFunction< R(EZ_LIST(P, ARG_COUNT))>.