1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Various features and fixes

This commit is contained in:
sfan5 2020-04-11 00:09:11 +02:00 committed by Loïc Blot
parent 5f3a17eb65
commit 1292bdbbce
5 changed files with 123 additions and 69 deletions

View file

@ -29,7 +29,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "cpp_api/s_base.h"
#include "gettext.h"
#include "l_internal.h"
#include "lua_api/l_item.h"
#include "lua_api/l_nodemeta.h"
#include "gui/mainmenumanager.h"
#include "map.h"
@ -245,25 +244,18 @@ int ModApiClient::l_get_language(lua_State *L)
return 2;
}
// get_wielded_item()
int ModApiClient::l_get_wielded_item(lua_State *L)
{
Client *client = getClient(L);
LocalPlayer *player = client->getEnv().getLocalPlayer();
if (!player)
return 0;
ItemStack selected_item;
player->getWieldedItem(&selected_item, nullptr);
LuaItemStack::create(L, selected_item);
return 1;
}
// get_meta(pos)
int ModApiClient::l_get_meta(lua_State *L)
{
v3s16 p = read_v3s16(L, 1);
NodeMetadata *meta = getClient(L)->getEnv().getMap().getNodeMetadata(p);
// check restrictions first
bool pos_ok;
getClient(L)->CSMGetNode(p, &pos_ok);
if (!pos_ok)
return 0;
NodeMetadata *meta = getEnv(L)->getMap().getNodeMetadata(p);
NodeMetaRef::createClient(L, meta);
return 1;
}
@ -390,6 +382,7 @@ int ModApiClient::l_get_node_def(lua_State *L)
return 1;
}
// get_privilege_list()
int ModApiClient::l_get_privilege_list(lua_State *L)
{
const Client *client = getClient(L);
@ -436,7 +429,6 @@ void ModApiClient::Initialize(lua_State *L, int top)
API_FCT(send_respawn);
API_FCT(gettext);
API_FCT(get_node_or_nil);
API_FCT(get_wielded_item);
API_FCT(disconnect);
API_FCT(get_meta);
API_FCT(sound_play);