speed: add api methods and preliminary csm

wsc-master-rebase
cora 2020-11-10 17:41:39 +01:00 committed by Schmappie Eldress
parent 093913be33
commit a1ea16f10f
4 changed files with 21 additions and 1 deletions

View File

@ -31,3 +31,5 @@ load_mod_autodupe = true
load_mod_randomscreenshot = true
load_mod_util = true
load_mod_sapscaffold = true
load_mod_adupe = false
load_mod_speedlimit = true

View File

@ -0,0 +1,7 @@
minetest.register_globalstep(function()
if minetest.settings:get_bool("movement_ignore_server_speed") then
minetest.localplayer:set_override_speed()
end
end)
minetest.register_cheat("IgnoreServerSpeed", "Movement", "movement_ignore_server_speed")

View File

@ -504,7 +504,6 @@ int LuaLocalPlayer::l_get_object(lua_State *L)
return 1;
}
LuaLocalPlayer *LuaLocalPlayer::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
@ -530,6 +529,14 @@ LocalPlayer *LuaLocalPlayer::getobject(lua_State *L, int narg)
return player;
}
int LuaLocalPlayer::l_set_override_speed(lua_State *L)
{
LocalPlayer *player = getobject(L, 1);
g_settings->setBool("movement_ignore_server_speed",true);
player->movement_speed_walk = g_settings->getFloat("movement_speed_walk") * BS;
return 0;
}
int LuaLocalPlayer::gc_object(lua_State *L)
{
LuaLocalPlayer *o = *(LuaLocalPlayer **)(lua_touserdata(L, 1));
@ -604,6 +611,7 @@ const luaL_Reg LuaLocalPlayer::methods[] = {
luamethod(LuaLocalPlayer, get_nearby_objects),
luamethod(LuaLocalPlayer, get_object),
luamethod(LuaLocalPlayer, set_override_speed),
{0, 0}
};

View File

@ -123,6 +123,9 @@ private:
// get_object(self)
static int l_get_object(lua_State *L);
// set_override_speed
static int l_set_override_speed(lua_State *L);
LocalPlayer *m_localplayer = nullptr;
public: