13T* CheckLuaType(lua_State* L,
int arg,
const char* typeName,
bool throwError =
true)
16 (T*)luaL_checkudata(L, arg, typeName) :
17 (T*)luaL_testudata(L, arg, typeName);
21T* CheckHierarchyLuaType(lua_State* L,
int arg,
const char* typeName,
const char* classFlag,
bool throwError =
true)
23 luaL_checktype(L, arg, LUA_TUSERDATA);
24 T* ret = (T*)lua_touserdata(L, arg);
29 bool hasClassFlag = (lua_getfield(L, arg, classFlag) != LUA_TNIL);
38 luaL_error(L,
"Error: Arg #%d: Expected %s", arg, typeName);
47T* CheckAssetLuaType(lua_State* L,
int arg,
const char* className,
const char* classFlag,
bool throwError =
true)
50 if (lua_isstring(L, arg))
52 const char* name = lua_tostring(L, arg);
53 ret = LoadAsset<T>(name);
57 Asset_Lua* assetLua = CheckHierarchyLuaType<Asset_Lua>(L, arg, className, classFlag, throwError);
58 ret =
static_cast<T*
>(assetLua ? assetLua->mAsset.Get() :
nullptr);
66POLYPHASE_API Node* CheckNodeLuaType(lua_State* L,
int arg,
const char* className,
const char* classFlag);
69POLYPHASE_API Asset* CheckAssetOrNilLuaType(lua_State* L,
int arg,
const char* className,
const char* classFlag);
70POLYPHASE_API Node* CheckNodeOrNilLuaType(lua_State* L,
int arg,
const char* className,
const char* classFlag);
74const char* CheckTableName(lua_State* L,
int arg);
76#define CHECK_STRING(L, Arg) lua_tostring(L, Arg); luaL_checktype(L, Arg, LUA_TSTRING);
77#define CHECK_NUMBER(L, Arg) lua_tonumber(L, Arg); luaL_checktype(L, Arg, LUA_TNUMBER);
78#define CHECK_INTEGER(L, Arg) lua_tointeger(L, Arg); luaL_checktype(L, Arg, LUA_TNUMBER);
79#define CHECK_BOOLEAN(L, Arg) lua_toboolean(L, Arg); luaL_checktype(L, Arg, LUA_TBOOLEAN);
80#define CHECK_TABLE(L, Arg) luaL_checktype(L, Arg, LUA_TTABLE);
81#define CHECK_FUNCTION(L, Arg) luaL_checktype(L, Arg, LUA_TFUNCTION);
82#define CHECK_USERDATA(L, Arg) luaL_checktype(L, Arg, LUA_TUSERDATA);
83#define CHECK_NIL(L, Arg) luaL_checktype(L, Arg, LUA_TNIL);
85#define CHECK_INDEX(L, Arg) (lua_tointeger(L, Arg) - 1); luaL_checktype(L, Arg, LUA_TNUMBER);
87bool CheckClassFlag(lua_State* L,
int arg,
const char* flag);
#define POLYPHASE_API
Definition PolyphaseAPI.h:31