22 if (std::is_integral<T>())
23 ret = lua_tointeger(L, -1);
25 ret = lua_tonumber(L, -1);
28 template <
typename T,
size_t N>
46 if (lua_isnumber(L, -1)) {
47 auto n = lua_tonumber(L, -1);
59 if (lua_isnumber(L, -1)) {
60 auto n = lua_tonumber(L, -1);
80 luaL_checktype(L, -1, LUA_TSTRING);
83 throw LuaError(
"tween style must be one of ('fwd', 'rev', 'pulse', 'flicker')");
101 luaL_checktype(L, -1, LUA_TSTRING);
104 throw LuaError(
"attractor kind must be one of ('none', 'point', 'line', 'plane')");
111 if (lua_isnil(L, -1))
115 {(int)BlendMode::alpha,
"alpha"},
116 {(int)BlendMode::add,
"add"},
117 {(int)BlendMode::sub,
"sub"},
118 {(int)BlendMode::screen,
"screen"},
119 {(int)BlendMode::clip,
"clip"},
123 luaL_checktype(L, -1, LUA_TSTRING);
124 int v = (int)BlendMode::alpha;
126 throw LuaError(
"blend mode must be one of ('alpha', 'clip', 'add', 'sub', 'screen')");
131 template <
typename T>
void
136 if (!lua_istable(L,-1))
139 lua_getfield(L, -1,
"min");
141 if (lua_isnil(L,-1)) {
148 lua_getfield(L, -1,
"max");
152 lua_getfield(L, -1,
"bias");
153 if (!lua_isnil(L,-1))
163 template <
typename T>
void
166 template <
typename T>
void
169 int tbl = lua_gettop(L);
170 lua_pushliteral(L,
"min");
171 lua_pushstring(L, name);
173 lua_gettable(L, tbl);
174 if (!lua_isnil(L, -1)) {
179 lua_pushliteral(L,
"max");
180 lua_pushstring(L, name);
182 lua_gettable(L, tbl);
183 if (!lua_isnil(L, -1)) {
189 template <
typename T>
void
192 int tbl = lua_gettop(L);
194 lua_pushstring(L, name);
195 lua_pushliteral(L,
"_tween");
197 lua_gettable(L, tbl);
198 if(lua_istable(L, -1)) {
199 int tween = lua_gettop(L);
201 lua_pushinteger(L, 1), lua_gettable(L, tween);
207 lua_pushinteger(L, (lua_Integer)lua_objlen(L, -1)), lua_gettable(L, tween);
212 lua_getfield(L, -1,
"style");
213 if (!lua_isnil(L,-1))
217 lua_getfield(L, -1,
"reps");
218 if (!lua_isnil(L,-1))
222 lua_getfield(L, -1,
"start");
223 if (!lua_isnil(L,-1))
233 lua_getfield(L, tbl, name);
234 if(!lua_isnil(L, -1)) {
255 lua_getfield(L, -1, name);
256 if (!lua_isnil(L, -1)) {
v2f check_v2f(lua_State *L, int index)
Definition c_converter.cpp:162
v3f check_v3f(lua_State *L, int index)
Definition c_converter.cpp:180
static T * checkObject(lua_State *L, int narg)
Definition l_base.h:97
static ServerActiveObject * getobject(ObjectRef *ref)
Definition l_object.cpp:38
bool string_to_enum(const EnumString *spec, int &result, std::string_view str)
Definition enum_string.cpp:8
Definition l_particleparams.h:13
void readNumericLuaValue(lua_State *L, T &ret)
Definition l_particleparams.h:17
u16 readAttachmentID(lua_State *L, const char *name)
Definition l_particleparams.h:252
void readTweenTable(lua_State *L, const char *name, TweenedParameter< T > &field)
Definition l_particleparams.h:190
void readTexValue(lua_State *L, ServerParticleTexture &tex)
Definition l_particles.cpp:15
void readLegacyValue(lua_State *L, const char *name, T &field)
Definition l_particleparams.h:164
void readLuaValue(lua_State *L, f32Parameter &ret)
Definition l_particleparams.h:36
Definition particles.cpp:110
Parameter< f32, 1 > f32Parameter
Definition particles.h:121
VectorParameter< v3f, 3 > v3fParameter
Definition particles.h:123
TweenStyle
Definition particles.h:181
@ pulse
Definition particles.h:181
@ flicker
Definition particles.h:181
@ fwd
Definition particles.h:181
@ rev
Definition particles.h:181
VectorParameter< v2f, 2 > v2fParameter
Definition particles.h:122
BlendMode
Definition particles.h:228
AttractorKind
Definition particles.h:226
@ none
Definition particles.h:226
@ line
Definition particles.h:226
@ point
Definition particles.h:226
@ plane
Definition particles.h:226
Definition enum_string.h:11
Definition particles.h:66
T val
Definition particles.h:70
Definition particles.h:129
T max
Definition particles.h:133
f32 bias
Definition particles.h:134
T min
Definition particles.h:133
Definition particles.h:186
T start
Definition particles.h:194
f32 beginning
Definition particles.h:192
T end
Definition particles.h:194
u16 reps
Definition particles.h:191
TweenStyle style
Definition particles.h:190
Definition particles.h:254