parent
df991edaa8
commit
162ffd7fba
|
@ -609,6 +609,8 @@ Helper functions
|
||||||
* Converts a string representing an area box into two positions
|
* Converts a string representing an area box into two positions
|
||||||
* `minetest.is_yes(arg)`
|
* `minetest.is_yes(arg)`
|
||||||
* returns whether `arg` can be interpreted as yes
|
* returns whether `arg` can be interpreted as yes
|
||||||
|
* `minetest.is_nan(arg)`
|
||||||
|
* returns true true when the passed number represents NaN.
|
||||||
* `table.copy(table)`: returns a table
|
* `table.copy(table)`: returns a table
|
||||||
* returns a deep copy of `table`
|
* returns a deep copy of `table`
|
||||||
|
|
||||||
|
|
|
@ -2541,6 +2541,8 @@ Helper functions
|
||||||
in formspecs.
|
in formspecs.
|
||||||
* `minetest.is_yes(arg)`
|
* `minetest.is_yes(arg)`
|
||||||
* returns true if passed 'y', 'yes', 'true' or a number that isn't zero.
|
* returns true if passed 'y', 'yes', 'true' or a number that isn't zero.
|
||||||
|
* `minetest.is_nan(arg)`
|
||||||
|
* returns true when the passed number represents NaN.
|
||||||
* `minetest.get_us_time()`
|
* `minetest.get_us_time()`
|
||||||
* returns time with microsecond precision. May not return wall time.
|
* returns time with microsecond precision. May not return wall time.
|
||||||
* `table.copy(table)`: returns a table
|
* `table.copy(table)`: returns a table
|
||||||
|
|
|
@ -21,7 +21,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "lua_api/l_internal.h"
|
#include "lua_api/l_internal.h"
|
||||||
#include "cpp_api/s_base.h"
|
#include "cpp_api/s_base.h"
|
||||||
#include "content/mods.h"
|
#include "content/mods.h"
|
||||||
#include <server.h>
|
#include "server.h"
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
ScriptApiBase *ModApiBase::getScriptApiBase(lua_State *L)
|
ScriptApiBase *ModApiBase::getScriptApiBase(lua_State *L)
|
||||||
{
|
{
|
||||||
|
@ -84,3 +85,8 @@ bool ModApiBase::registerFunction(lua_State *L, const char *name,
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ModApiBase::isNaN(lua_State *L, int idx)
|
||||||
|
{
|
||||||
|
return lua_type(L, idx) == LUA_TNUMBER && std::isnan(lua_tonumber(L, idx));
|
||||||
|
}
|
||||||
|
|
|
@ -69,4 +69,6 @@ public:
|
||||||
const char* name,
|
const char* name,
|
||||||
lua_CFunction func,
|
lua_CFunction func,
|
||||||
int top);
|
int top);
|
||||||
|
|
||||||
|
static bool isNaN(lua_State *L, int idx);
|
||||||
};
|
};
|
||||||
|
|
|
@ -895,6 +895,9 @@ int ObjectRef::l_set_yaw(lua_State *L)
|
||||||
ObjectRef *ref = checkobject(L, 1);
|
ObjectRef *ref = checkobject(L, 1);
|
||||||
LuaEntitySAO *co = getluaobject(ref);
|
LuaEntitySAO *co = getluaobject(ref);
|
||||||
if (co == NULL) return 0;
|
if (co == NULL) return 0;
|
||||||
|
if (isNaN(L, 2))
|
||||||
|
throw LuaError("ObjectRef::set_yaw: NaN value is not allowed.");
|
||||||
|
|
||||||
float yaw = luaL_checknumber(L, 2) * core::RADTODEG;
|
float yaw = luaL_checknumber(L, 2) * core::RADTODEG;
|
||||||
// Do it
|
// Do it
|
||||||
co->setYaw(yaw);
|
co->setYaw(yaw);
|
||||||
|
|
|
@ -240,6 +240,15 @@ int ModApiUtil::l_is_yes(lua_State *L)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// is_nan(arg)
|
||||||
|
int ModApiUtil::l_is_nan(lua_State *L)
|
||||||
|
{
|
||||||
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
|
||||||
|
lua_pushboolean(L, isNaN(L, 1));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// get_builtin_path()
|
// get_builtin_path()
|
||||||
int ModApiUtil::l_get_builtin_path(lua_State *L)
|
int ModApiUtil::l_get_builtin_path(lua_State *L)
|
||||||
{
|
{
|
||||||
|
@ -481,6 +490,7 @@ void ModApiUtil::Initialize(lua_State *L, int top)
|
||||||
API_FCT(get_password_hash);
|
API_FCT(get_password_hash);
|
||||||
|
|
||||||
API_FCT(is_yes);
|
API_FCT(is_yes);
|
||||||
|
API_FCT(is_nan);
|
||||||
|
|
||||||
API_FCT(get_builtin_path);
|
API_FCT(get_builtin_path);
|
||||||
|
|
||||||
|
@ -513,6 +523,7 @@ void ModApiUtil::InitializeClient(lua_State *L, int top)
|
||||||
API_FCT(write_json);
|
API_FCT(write_json);
|
||||||
|
|
||||||
API_FCT(is_yes);
|
API_FCT(is_yes);
|
||||||
|
API_FCT(is_nan);
|
||||||
|
|
||||||
API_FCT(compress);
|
API_FCT(compress);
|
||||||
API_FCT(decompress);
|
API_FCT(decompress);
|
||||||
|
|
|
@ -65,6 +65,9 @@ private:
|
||||||
// is_yes(arg)
|
// is_yes(arg)
|
||||||
static int l_is_yes(lua_State *L);
|
static int l_is_yes(lua_State *L);
|
||||||
|
|
||||||
|
// is_nan(arg)
|
||||||
|
static int l_is_nan(lua_State *L);
|
||||||
|
|
||||||
// get_builtin_path()
|
// get_builtin_path()
|
||||||
static int l_get_builtin_path(lua_State *L);
|
static int l_get_builtin_path(lua_State *L);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue