mirror of
https://github.com/luanti-org/luanti.git
synced 2025-11-21 00:45:23 +01:00
68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
// Luanti
|
|
// SPDX-License-Identifier: LGPL-2.1-or-later
|
|
// Copyright (C) 2013 sapier
|
|
// Copyright (C) 2025 grorp
|
|
|
|
#include "l_menu_common.h"
|
|
|
|
#include "client/renderingengine.h"
|
|
#include "client/shadows/dynamicshadowsrender.h"
|
|
#include "gettext.h"
|
|
#include "lua_api/l_internal.h"
|
|
|
|
|
|
int ModApiMenuCommon::l_gettext(lua_State *L)
|
|
{
|
|
const char *srctext = luaL_checkstring(L, 1);
|
|
const char *text = *srctext ? gettext(srctext) : "";
|
|
lua_pushstring(L, text);
|
|
|
|
return 1;
|
|
}
|
|
|
|
|
|
int ModApiMenuCommon::l_get_active_driver(lua_State *L)
|
|
{
|
|
auto drivertype = RenderingEngine::get_video_driver()->getDriverType();
|
|
lua_pushstring(L, RenderingEngine::getVideoDriverInfo(drivertype).name.c_str());
|
|
return 1;
|
|
}
|
|
|
|
|
|
int ModApiMenuCommon::l_driver_supports_shadows(lua_State *L)
|
|
{
|
|
lua_pushboolean(L, ShadowRenderer::isSupported(RenderingEngine::get_raw_device()));
|
|
return 1;
|
|
}
|
|
|
|
|
|
int ModApiMenuCommon::l_irrlicht_device_supports_touch(lua_State *L)
|
|
{
|
|
lua_pushboolean(L, RenderingEngine::get_raw_device()->supportsTouchEvents());
|
|
return 1;
|
|
}
|
|
|
|
|
|
int ModApiMenuCommon::l_normalize_keycode(lua_State *L)
|
|
{
|
|
auto keystr = luaL_checkstring(L, 1);
|
|
lua_pushstring(L, KeyPress(keystr).sym().c_str());
|
|
return 1;
|
|
}
|
|
|
|
|
|
void ModApiMenuCommon::Initialize(lua_State *L, int top)
|
|
{
|
|
API_FCT(gettext);
|
|
API_FCT(get_active_driver);
|
|
API_FCT(driver_supports_shadows);
|
|
API_FCT(irrlicht_device_supports_touch);
|
|
API_FCT(normalize_keycode);
|
|
}
|
|
|
|
|
|
void ModApiMenuCommon::InitializeAsync(lua_State *L, int top)
|
|
{
|
|
API_FCT(gettext);
|
|
}
|