forked from Mirrorlandia_minetest/minetest
c_converter: Function template for numeric fields, add v3s16 default (#7090)
This commit is contained in:
parent
a1cf8a127c
commit
ebbd158774
@ -467,71 +467,6 @@ bool getstringfield(lua_State *L, int table,
|
|||||||
return got;
|
return got;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, int &result)
|
|
||||||
{
|
|
||||||
lua_getfield(L, table, fieldname);
|
|
||||||
bool got = false;
|
|
||||||
if(lua_isnumber(L, -1)){
|
|
||||||
result = lua_tointeger(L, -1);
|
|
||||||
got = true;
|
|
||||||
}
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u8 &result)
|
|
||||||
{
|
|
||||||
lua_getfield(L, table, fieldname);
|
|
||||||
bool got = false;
|
|
||||||
if(lua_isnumber(L, -1)){
|
|
||||||
result = lua_tointeger(L, -1);
|
|
||||||
got = true;
|
|
||||||
}
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, s8 &result)
|
|
||||||
{
|
|
||||||
lua_getfield(L, table, fieldname);
|
|
||||||
bool got = false;
|
|
||||||
if (lua_isnumber(L, -1)) {
|
|
||||||
result = lua_tointeger(L, -1);
|
|
||||||
got = true;
|
|
||||||
}
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u16 &result)
|
|
||||||
{
|
|
||||||
lua_getfield(L, table, fieldname);
|
|
||||||
bool got = false;
|
|
||||||
if(lua_isnumber(L, -1)){
|
|
||||||
result = lua_tointeger(L, -1);
|
|
||||||
got = true;
|
|
||||||
}
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u32 &result)
|
|
||||||
{
|
|
||||||
lua_getfield(L, table, fieldname);
|
|
||||||
bool got = false;
|
|
||||||
if(lua_isnumber(L, -1)){
|
|
||||||
result = lua_tointeger(L, -1);
|
|
||||||
got = true;
|
|
||||||
}
|
|
||||||
lua_pop(L, 1);
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool getfloatfield(lua_State *L, int table,
|
bool getfloatfield(lua_State *L, int table,
|
||||||
const char *fieldname, float &result)
|
const char *fieldname, float &result)
|
||||||
{
|
{
|
||||||
@ -612,6 +547,13 @@ bool getboolfield_default(lua_State *L, int table,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v3s16 getv3s16field_default(lua_State *L, int table,
|
||||||
|
const char *fieldname, v3s16 default_)
|
||||||
|
{
|
||||||
|
getv3intfield(L, table, fieldname, default_);
|
||||||
|
return default_;
|
||||||
|
}
|
||||||
|
|
||||||
void setstringfield(lua_State *L, int table,
|
void setstringfield(lua_State *L, int table,
|
||||||
const char *fieldname, const char *value)
|
const char *fieldname, const char *value)
|
||||||
{
|
{
|
||||||
|
@ -42,31 +42,51 @@ bool getboolfield_default(lua_State *L, int table,
|
|||||||
const char *fieldname, bool default_);
|
const char *fieldname, bool default_);
|
||||||
float getfloatfield_default(lua_State *L, int table,
|
float getfloatfield_default(lua_State *L, int table,
|
||||||
const char *fieldname, float default_);
|
const char *fieldname, float default_);
|
||||||
int getintfield_default (lua_State *L, int table,
|
int getintfield_default(lua_State *L, int table,
|
||||||
const char *fieldname, int default_);
|
const char *fieldname, int default_);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
bool getintfield(lua_State *L, int table,
|
||||||
|
const char *fieldname, T &result)
|
||||||
|
{
|
||||||
|
lua_getfield(L, table, fieldname);
|
||||||
|
bool got = false;
|
||||||
|
if (lua_isnumber(L, -1)){
|
||||||
|
result = lua_tointeger(L, -1);
|
||||||
|
got = true;
|
||||||
|
}
|
||||||
|
lua_pop(L, 1);
|
||||||
|
return got;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
bool getv3intfield(lua_State *L, int index,
|
||||||
|
const char *fieldname, T &result)
|
||||||
|
{
|
||||||
|
lua_getfield(L, index, fieldname);
|
||||||
|
bool got = false;
|
||||||
|
if (lua_istable(L, -1)) {
|
||||||
|
got = getintfield(L, index, "x", result.X) ||
|
||||||
|
getintfield(L, index, "y", result.Y) ||
|
||||||
|
getintfield(L, index, "z", result.Z);
|
||||||
|
}
|
||||||
|
lua_pop(L, 1);
|
||||||
|
return got;
|
||||||
|
}
|
||||||
|
|
||||||
|
v3s16 getv3s16field_default(lua_State *L, int table,
|
||||||
|
const char *fieldname, v3s16 default_);
|
||||||
bool getstringfield(lua_State *L, int table,
|
bool getstringfield(lua_State *L, int table,
|
||||||
const char *fieldname, std::string &result);
|
const char *fieldname, std::string &result);
|
||||||
size_t getstringlistfield(lua_State *L, int table,
|
size_t getstringlistfield(lua_State *L, int table,
|
||||||
const char *fieldname,
|
const char *fieldname,
|
||||||
std::vector<std::string> *result);
|
std::vector<std::string> *result);
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, int &result);
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u8 &result);
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, s8 &result);
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u16 &result);
|
|
||||||
bool getintfield(lua_State *L, int table,
|
|
||||||
const char *fieldname, u32 &result);
|
|
||||||
void read_groups(lua_State *L, int index,
|
void read_groups(lua_State *L, int index,
|
||||||
std::unordered_map<std::string, int> &result);
|
std::unordered_map<std::string, int> &result);
|
||||||
bool getboolfield(lua_State *L, int table,
|
bool getboolfield(lua_State *L, int table,
|
||||||
const char *fieldname, bool &result);
|
const char *fieldname, bool &result);
|
||||||
bool getfloatfield(lua_State *L, int table,
|
bool getfloatfield(lua_State *L, int table,
|
||||||
const char *fieldname, float &result);
|
const char *fieldname, float &result);
|
||||||
|
|
||||||
std::string checkstringfield(lua_State *L, int table,
|
std::string checkstringfield(lua_State *L, int table,
|
||||||
const char *fieldname);
|
const char *fieldname);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user