1
0
Fork 0
cuberite-2a/src/Bindings/DeprecatedBindings.cpp

361 lines
9.7 KiB
C++
Raw Normal View History

2014-03-02 09:12:29 +00:00
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "DeprecatedBindings.h"
#undef TOLUA_TEMPLATE_BIND
2014-03-02 09:12:29 +00:00
#include "tolua++/include/tolua++.h"
#include "../BlockInfo.h"
#include "../World.h"
#include "../Entities/Player.h"
2014-11-17 17:01:56 +00:00
#include "LuaState.h"
2014-03-02 09:12:29 +00:00
/* get function: g_BlockLightValue */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockLightValue
static int tolua_get_AllToLua_g_BlockLightValue(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
2014-07-19 12:53:41 +00:00
tolua_pushnumber(tolua_S, (lua_Number)cBlockInfo::GetLightValue((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockSpreadLightFalloff */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockSpreadLightFalloff
static int tolua_get_AllToLua_g_BlockSpreadLightFalloff(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushnumber(tolua_S, (lua_Number)cBlockInfo::GetSpreadLightFalloff((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockTransparent */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockTransparent
static int tolua_get_AllToLua_g_BlockTransparent(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, cBlockInfo::IsTransparent((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockOneHitDig */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockOneHitDig
static int tolua_get_AllToLua_g_BlockOneHitDig(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, cBlockInfo::IsOneHitDig((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockPistonBreakable */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockPistonBreakable
static int tolua_get_AllToLua_g_BlockPistonBreakable(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, cBlockInfo::IsPistonBreakable((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockIsSnowable */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockIsSnowable
static int tolua_get_AllToLua_g_BlockIsSnowable(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, cBlockInfo::IsSnowable((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockIsSolid */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockIsSolid
static int tolua_get_AllToLua_g_BlockIsSolid(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, (bool)cBlockInfo::IsSolid((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
2014-03-02 09:12:29 +00:00
/* get function: g_BlockFullyOccupiesVoxel */
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockFullyOccupiesVoxel
static int tolua_get_AllToLua_g_BlockFullyOccupiesVoxel(lua_State* tolua_S)
{
int BlockType;
2014-03-02 09:12:29 +00:00
#ifndef TOLUA_RELEASE
{
tolua_Error tolua_err;
2014-07-19 12:53:41 +00:00
if (!tolua_isnumber(tolua_S, 2, 0, &tolua_err))
{
2014-07-19 12:53:41 +00:00
tolua_error(tolua_S, "#vinvalid type in array indexing.", &tolua_err);
}
2014-03-02 09:12:29 +00:00
}
#endif
BlockType = (int)tolua_tonumber(tolua_S, 2, 0);
if ((BlockType < 0) || (BlockType > E_BLOCK_MAX_TYPE_ID))
2014-03-02 09:12:29 +00:00
{
2014-10-20 20:55:07 +00:00
tolua_error(tolua_S, "array indexing out of range.", nullptr);
2014-03-02 09:12:29 +00:00
}
tolua_pushboolean(tolua_S, (bool)cBlockInfo::FullyOccupiesVoxel((BLOCKTYPE)BlockType));
return 1;
2014-03-02 09:12:29 +00:00
}
#endif // #ifndef TOLUA_DISABLE
2014-03-02 09:12:29 +00:00
/* function: StringToMobType */
static int tolua_AllToLua_StringToMobType00(lua_State* tolua_S)
{
cLuaState LuaState(tolua_S);
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
2014-12-03 08:26:15 +00:00
!tolua_iscppstring(tolua_S, 1, 0, &tolua_err) ||
!tolua_isnoobj(tolua_S, 2, &tolua_err)
)
goto tolua_lerror;
else
#endif
{
const AString a_MobString = tolua_tocppstring(LuaState, 1, 0);
eMonsterType MobType = cMonster::StringToMobType(a_MobString);
tolua_pushnumber(LuaState, (lua_Number) MobType);
tolua_pushcppstring(LuaState, (const char *) a_MobString);
}
LOGWARNING("Warning in function call 'StringToMobType': StringToMobType() is deprecated. Please use cMonster:StringToMobType()");
LuaState.LogStackTrace(0);
return 2;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(LuaState, "#ferror in function 'StringToMobType'.", &tolua_err);
return 0;
#endif
}
/** function: cWorld:SetSignLines */
static int tolua_cWorld_SetSignLines(lua_State * tolua_S)
{
2014-11-17 17:01:56 +00:00
cLuaState LuaState(tolua_S);
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
2014-11-17 17:01:56 +00:00
!tolua_isusertype (LuaState, 1, "cWorld", 0, &tolua_err) ||
!tolua_isnumber (LuaState, 2, 0, &tolua_err) ||
!tolua_isnumber (LuaState, 3, 0, &tolua_err) ||
!tolua_isnumber (LuaState, 4, 0, &tolua_err) ||
!tolua_iscppstring(LuaState, 5, 0, &tolua_err) ||
!tolua_iscppstring(LuaState, 6, 0, &tolua_err) ||
!tolua_iscppstring(LuaState, 7, 0, &tolua_err) ||
!tolua_iscppstring(LuaState, 8, 0, &tolua_err) ||
!tolua_isusertype (LuaState, 9, "cPlayer", 1, &tolua_err) ||
!tolua_isnoobj (LuaState, 10, &tolua_err)
)
goto tolua_lerror;
else
#endif
{
2014-11-17 17:01:56 +00:00
cWorld * self = (cWorld *) tolua_tousertype (LuaState, 1, nullptr);
int BlockX = (int) tolua_tonumber (LuaState, 2, 0);
int BlockY = (int) tolua_tonumber (LuaState, 3, 0);
int BlockZ = (int) tolua_tonumber (LuaState, 4, 0);
const AString Line1 = tolua_tocppstring(LuaState, 5, 0);
const AString Line2 = tolua_tocppstring(LuaState, 6, 0);
const AString Line3 = tolua_tocppstring(LuaState, 7, 0);
const AString Line4 = tolua_tocppstring(LuaState, 8, 0);
cPlayer * Player = (cPlayer *)tolua_tousertype (LuaState, 9, nullptr);
#ifndef TOLUA_RELEASE
if (self == nullptr)
{
2014-11-17 17:01:56 +00:00
tolua_error(LuaState, "invalid 'self' in function 'UpdateSign'", nullptr);
}
#endif
{
bool res = self->SetSignLines(BlockX, BlockY, BlockZ, Line1, Line2, Line3, Line4, Player);
2014-11-17 17:01:56 +00:00
tolua_pushboolean(LuaState, res ? 1 : 0);
}
}
2014-11-17 17:01:56 +00:00
LOGWARNING("Warning in function call 'UpdateSign': UpdateSign() is deprecated. Please use SetSignLines()");
LuaState.LogStackTrace(0);
return 1;
#ifndef TOLUA_RELEASE
tolua_lerror:
2014-11-17 17:01:56 +00:00
tolua_error(LuaState, "#ferror in function 'UpdateSign'.", &tolua_err);
return 0;
#endif
}
2014-03-02 09:12:29 +00:00
void DeprecatedBindings::Bind(lua_State * tolua_S)
{
2014-10-20 20:55:07 +00:00
tolua_beginmodule(tolua_S, nullptr);
tolua_array(tolua_S, "g_BlockLightValue", tolua_get_AllToLua_g_BlockLightValue, nullptr);
tolua_array(tolua_S, "g_BlockSpreadLightFalloff", tolua_get_AllToLua_g_BlockSpreadLightFalloff, nullptr);
tolua_array(tolua_S, "g_BlockTransparent", tolua_get_AllToLua_g_BlockTransparent, nullptr);
tolua_array(tolua_S, "g_BlockOneHitDig", tolua_get_AllToLua_g_BlockOneHitDig, nullptr);
tolua_array(tolua_S, "g_BlockPistonBreakable", tolua_get_AllToLua_g_BlockPistonBreakable, nullptr);
tolua_array(tolua_S, "g_BlockIsSnowable", tolua_get_AllToLua_g_BlockIsSnowable, nullptr);
tolua_array(tolua_S, "g_BlockIsSolid", tolua_get_AllToLua_g_BlockIsSolid, nullptr);
tolua_array(tolua_S, "g_BlockFullyOccupiesVoxel", tolua_get_AllToLua_g_BlockFullyOccupiesVoxel, nullptr);
2014-03-02 09:30:20 +00:00
tolua_function(tolua_S, "StringToMobType", tolua_AllToLua_StringToMobType00);
tolua_beginmodule(tolua_S, "cWorld");
tolua_function(tolua_S, "UpdateSign", tolua_cWorld_SetSignLines);
tolua_endmodule(tolua_S);
2014-03-02 09:30:20 +00:00
tolua_endmodule(tolua_S);
2014-03-02 09:12:29 +00:00
}