aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_object.cpp
diff options
context:
space:
mode:
authorJude Melton-Houghton <jwmhjwmh@gmail.com>2022-10-04 08:31:36 -0400
committerGitHub <noreply@github.com>2022-10-04 08:31:36 -0400
commit7632af3c73fc4e4ae3ad4c98c90c39b47c3b8379 (patch)
tree08b974d6ecafb6c20de565f96e329748030c1519 /src/script/lua_api/l_object.cpp
parentb21fb1837955e6385137184cac906245821b20e4 (diff)
downloadminetest-7632af3c73fc4e4ae3ad4c98c90c39b47c3b8379.tar.xz
Consolidate API object code (#12728)
Co-authored-by: sfan5 <sfan5@live.de>
Diffstat (limited to 'src/script/lua_api/l_object.cpp')
-rw-r--r--src/script/lua_api/l_object.cpp247
1 files changed, 111 insertions, 136 deletions
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index a9d4920de..ae96803b7 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -40,15 +40,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
-ObjectRef* ObjectRef::checkobject(lua_State *L, int narg)
-{
- luaL_checktype(L, narg, LUA_TUSERDATA);
- void *ud = luaL_checkudata(L, narg, className);
- if (ud == nullptr)
- luaL_typerror(L, narg, className);
- return *(ObjectRef**)ud; // unbox pointer
-}
-
ServerActiveObject* ObjectRef::getobject(ObjectRef *ref)
{
ServerActiveObject *sao = ref->m_object;
@@ -99,7 +90,7 @@ int ObjectRef::l_remove(lua_State *L)
{
GET_ENV_PTR;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -118,7 +109,7 @@ int ObjectRef::l_remove(lua_State *L)
int ObjectRef::l_get_pos(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -131,7 +122,7 @@ int ObjectRef::l_get_pos(lua_State *L)
int ObjectRef::l_set_pos(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -146,7 +137,7 @@ int ObjectRef::l_set_pos(lua_State *L)
int ObjectRef::l_move_to(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -162,8 +153,8 @@ int ObjectRef::l_move_to(lua_State *L)
int ObjectRef::l_punch(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- ObjectRef *puncher_ref = checkobject(L, 2);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
+ ObjectRef *puncher_ref = checkObject<ObjectRef>(L, 2);
ServerActiveObject *sao = getobject(ref);
ServerActiveObject *puncher = getobject(puncher_ref);
if (sao == nullptr || puncher == nullptr)
@@ -184,8 +175,8 @@ int ObjectRef::l_punch(lua_State *L)
int ObjectRef::l_right_click(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- ObjectRef *ref2 = checkobject(L, 2);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
+ ObjectRef *ref2 = checkObject<ObjectRef>(L, 2);
ServerActiveObject *sao = getobject(ref);
ServerActiveObject *sao2 = getobject(ref2);
if (sao == nullptr || sao2 == nullptr)
@@ -199,7 +190,7 @@ int ObjectRef::l_right_click(lua_State *L)
int ObjectRef::l_set_hp(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -231,7 +222,7 @@ int ObjectRef::l_set_hp(lua_State *L)
int ObjectRef::l_get_hp(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr) {
// Default hp is 1
@@ -249,7 +240,7 @@ int ObjectRef::l_get_hp(lua_State *L)
int ObjectRef::l_get_inventory(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -266,7 +257,7 @@ int ObjectRef::l_get_inventory(lua_State *L)
int ObjectRef::l_get_wield_list(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -279,7 +270,7 @@ int ObjectRef::l_get_wield_list(lua_State *L)
int ObjectRef::l_get_wield_index(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -292,7 +283,7 @@ int ObjectRef::l_get_wield_index(lua_State *L)
int ObjectRef::l_get_wielded_item(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr) {
// Empty ItemStack
@@ -310,7 +301,7 @@ int ObjectRef::l_get_wielded_item(lua_State *L)
int ObjectRef::l_set_wielded_item(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -329,7 +320,7 @@ int ObjectRef::l_set_wielded_item(lua_State *L)
int ObjectRef::l_set_armor_groups(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -354,7 +345,7 @@ int ObjectRef::l_set_armor_groups(lua_State *L)
int ObjectRef::l_get_armor_groups(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -367,7 +358,7 @@ int ObjectRef::l_get_armor_groups(lua_State *L)
int ObjectRef::l_set_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -385,7 +376,7 @@ int ObjectRef::l_set_animation(lua_State *L)
int ObjectRef::l_get_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -407,7 +398,7 @@ int ObjectRef::l_get_animation(lua_State *L)
int ObjectRef::l_set_local_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -427,7 +418,7 @@ int ObjectRef::l_set_local_animation(lua_State *L)
int ObjectRef::l_get_local_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -448,7 +439,7 @@ int ObjectRef::l_get_local_animation(lua_State *L)
int ObjectRef::l_set_eye_offset(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -470,7 +461,7 @@ int ObjectRef::l_set_eye_offset(lua_State *L)
int ObjectRef::l_get_eye_offset(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -484,7 +475,7 @@ int ObjectRef::l_get_eye_offset(lua_State *L)
int ObjectRef::l_send_mapblock(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -502,7 +493,7 @@ int ObjectRef::l_send_mapblock(lua_State *L)
int ObjectRef::l_set_animation_frame_speed(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -521,7 +512,7 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L)
int ObjectRef::l_set_bone_position(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -538,7 +529,7 @@ int ObjectRef::l_set_bone_position(lua_State *L)
int ObjectRef::l_get_bone_position(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -558,8 +549,8 @@ int ObjectRef::l_get_bone_position(lua_State *L)
int ObjectRef::l_set_attach(lua_State *L)
{
GET_ENV_PTR;
- ObjectRef *ref = checkobject(L, 1);
- ObjectRef *parent_ref = checkobject(L, 2);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
+ ObjectRef *parent_ref = checkObject<ObjectRef>(L, 2);
ServerActiveObject *sao = getobject(ref);
ServerActiveObject *parent = getobject(parent_ref);
if (sao == nullptr || parent == nullptr)
@@ -593,7 +584,7 @@ int ObjectRef::l_set_attach(lua_State *L)
int ObjectRef::l_get_attach(lua_State *L)
{
GET_ENV_PTR;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -621,7 +612,7 @@ int ObjectRef::l_get_attach(lua_State *L)
int ObjectRef::l_get_children(lua_State *L)
{
GET_ENV_PTR;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -642,7 +633,7 @@ int ObjectRef::l_get_children(lua_State *L)
int ObjectRef::l_set_detach(lua_State *L)
{
GET_ENV_PTR;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -655,7 +646,7 @@ int ObjectRef::l_set_detach(lua_State *L)
int ObjectRef::l_set_properties(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -674,7 +665,7 @@ int ObjectRef::l_set_properties(lua_State *L)
int ObjectRef::l_get_properties(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -691,7 +682,7 @@ int ObjectRef::l_get_properties(lua_State *L)
int ObjectRef::l_is_player(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
lua_pushboolean(L, (player != nullptr));
return 1;
@@ -701,7 +692,7 @@ int ObjectRef::l_is_player(lua_State *L)
int ObjectRef::l_set_nametag_attributes(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -742,7 +733,7 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L)
int ObjectRef::l_get_nametag_attributes(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -778,7 +769,7 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L)
int ObjectRef::l_set_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *sao = getluaobject(ref);
if (sao == nullptr)
return 0;
@@ -793,7 +784,7 @@ int ObjectRef::l_set_velocity(lua_State *L)
int ObjectRef::l_add_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -816,7 +807,7 @@ int ObjectRef::l_add_velocity(lua_State *L)
int ObjectRef::l_get_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
ServerActiveObject *sao = getobject(ref);
if (sao == nullptr)
return 0;
@@ -840,7 +831,7 @@ int ObjectRef::l_get_velocity(lua_State *L)
int ObjectRef::l_set_acceleration(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -855,7 +846,7 @@ int ObjectRef::l_set_acceleration(lua_State *L)
int ObjectRef::l_get_acceleration(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -869,7 +860,7 @@ int ObjectRef::l_get_acceleration(lua_State *L)
int ObjectRef::l_set_rotation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -884,7 +875,7 @@ int ObjectRef::l_set_rotation(lua_State *L)
int ObjectRef::l_get_rotation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -900,7 +891,7 @@ int ObjectRef::l_get_rotation(lua_State *L)
int ObjectRef::l_set_yaw(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -915,7 +906,7 @@ int ObjectRef::l_set_yaw(lua_State *L)
int ObjectRef::l_get_yaw(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -930,7 +921,7 @@ int ObjectRef::l_get_yaw(lua_State *L)
int ObjectRef::l_set_texture_mod(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -945,7 +936,7 @@ int ObjectRef::l_set_texture_mod(lua_State *L)
int ObjectRef::l_get_texture_mod(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -960,7 +951,7 @@ int ObjectRef::l_get_texture_mod(lua_State *L)
int ObjectRef::l_set_sprite(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -979,7 +970,7 @@ int ObjectRef::l_set_sprite(lua_State *L)
int ObjectRef::l_get_entity_name(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
log_deprecated(L,"Deprecated call to \"get_entity_name");
if (entitysao == nullptr)
@@ -995,7 +986,7 @@ int ObjectRef::l_get_entity_name(lua_State *L)
int ObjectRef::l_get_luaentity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
LuaEntitySAO *entitysao = getluaobject(ref);
if (entitysao == nullptr)
return 0;
@@ -1010,7 +1001,7 @@ int ObjectRef::l_get_luaentity(lua_State *L)
int ObjectRef::l_get_player_name(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr) {
lua_pushlstring(L, "", 0);
@@ -1025,7 +1016,7 @@ int ObjectRef::l_get_player_name(lua_State *L)
int ObjectRef::l_get_look_dir(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1048,7 +1039,7 @@ int ObjectRef::l_get_look_pitch(lua_State *L)
log_deprecated(L,
"Deprecated call to get_look_pitch, use get_look_vertical instead");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1066,7 +1057,7 @@ int ObjectRef::l_get_look_yaw(lua_State *L)
log_deprecated(L,
"Deprecated call to get_look_yaw, use get_look_horizontal instead");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1079,7 +1070,7 @@ int ObjectRef::l_get_look_yaw(lua_State *L)
int ObjectRef::l_get_look_vertical(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1092,7 +1083,7 @@ int ObjectRef::l_get_look_vertical(lua_State *L)
int ObjectRef::l_get_look_horizontal(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1105,7 +1096,7 @@ int ObjectRef::l_get_look_horizontal(lua_State *L)
int ObjectRef::l_set_look_vertical(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1120,7 +1111,7 @@ int ObjectRef::l_set_look_vertical(lua_State *L)
int ObjectRef::l_set_look_horizontal(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1140,7 +1131,7 @@ int ObjectRef::l_set_look_pitch(lua_State *L)
log_deprecated(L,
"Deprecated call to set_look_pitch, use set_look_vertical instead.");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1160,7 +1151,7 @@ int ObjectRef::l_set_look_yaw(lua_State *L)
log_deprecated(L,
"Deprecated call to set_look_yaw, use set_look_horizontal instead.");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1175,7 +1166,7 @@ int ObjectRef::l_set_look_yaw(lua_State *L)
int ObjectRef::l_set_fov(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1194,7 +1185,7 @@ int ObjectRef::l_set_fov(lua_State *L)
int ObjectRef::l_get_fov(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1211,7 +1202,7 @@ int ObjectRef::l_get_fov(lua_State *L)
int ObjectRef::l_set_breath(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1226,7 +1217,7 @@ int ObjectRef::l_set_breath(lua_State *L)
int ObjectRef::l_get_breath(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1243,7 +1234,7 @@ int ObjectRef::l_set_attribute(lua_State *L)
log_deprecated(L,
"Deprecated call to set_attribute, use MetaDataRef methods instead.");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1264,7 +1255,7 @@ int ObjectRef::l_get_attribute(lua_State *L)
log_deprecated(L,
"Deprecated call to get_attribute, use MetaDataRef methods instead.");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO* playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1284,7 +1275,7 @@ int ObjectRef::l_get_attribute(lua_State *L)
// get_meta(self, attribute)
int ObjectRef::l_get_meta(lua_State *L)
{
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO *playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1298,7 +1289,7 @@ int ObjectRef::l_get_meta(lua_State *L)
int ObjectRef::l_set_inventory_formspec(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1314,7 +1305,7 @@ int ObjectRef::l_set_inventory_formspec(lua_State *L)
int ObjectRef::l_get_inventory_formspec(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1329,7 +1320,7 @@ int ObjectRef::l_get_inventory_formspec(lua_State *L)
int ObjectRef::l_set_formspec_prepend(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1345,7 +1336,7 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L)
int ObjectRef::l_get_formspec_prepend(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1360,7 +1351,7 @@ int ObjectRef::l_get_formspec_prepend(lua_State *L)
int ObjectRef::l_get_player_control(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
lua_newtable(L);
@@ -1400,7 +1391,7 @@ int ObjectRef::l_get_player_control(lua_State *L)
int ObjectRef::l_get_player_control_bits(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr) {
lua_pushinteger(L, 0);
@@ -1429,7 +1420,7 @@ int ObjectRef::l_get_player_control_bits(lua_State *L)
int ObjectRef::l_set_physics_override(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
PlayerSAO *playersao = getplayersao(ref);
if (playersao == nullptr)
return 0;
@@ -1472,7 +1463,7 @@ int ObjectRef::l_set_physics_override(lua_State *L)
int ObjectRef::l_get_physics_override(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1498,7 +1489,7 @@ int ObjectRef::l_get_physics_override(lua_State *L)
int ObjectRef::l_hud_add(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1520,7 +1511,7 @@ int ObjectRef::l_hud_add(lua_State *L)
int ObjectRef::l_hud_remove(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1538,7 +1529,7 @@ int ObjectRef::l_hud_remove(lua_State *L)
int ObjectRef::l_hud_change(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1564,7 +1555,7 @@ int ObjectRef::l_hud_change(lua_State *L)
int ObjectRef::l_hud_get(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1583,7 +1574,7 @@ int ObjectRef::l_hud_get(lua_State *L)
int ObjectRef::l_hud_set_flags(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1609,7 +1600,7 @@ int ObjectRef::l_hud_set_flags(lua_State *L)
int ObjectRef::l_hud_get_flags(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1627,7 +1618,7 @@ int ObjectRef::l_hud_get_flags(lua_State *L)
int ObjectRef::l_hud_set_hotbar_itemcount(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1645,7 +1636,7 @@ int ObjectRef::l_hud_set_hotbar_itemcount(lua_State *L)
int ObjectRef::l_hud_get_hotbar_itemcount(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1658,7 +1649,7 @@ int ObjectRef::l_hud_get_hotbar_itemcount(lua_State *L)
int ObjectRef::l_hud_set_hotbar_image(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1673,7 +1664,7 @@ int ObjectRef::l_hud_set_hotbar_image(lua_State *L)
int ObjectRef::l_hud_get_hotbar_image(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1688,7 +1679,7 @@ int ObjectRef::l_hud_get_hotbar_image(lua_State *L)
int ObjectRef::l_hud_set_hotbar_selected_image(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1703,7 +1694,7 @@ int ObjectRef::l_hud_set_hotbar_selected_image(lua_State *L)
int ObjectRef::l_hud_get_hotbar_selected_image(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1718,7 +1709,7 @@ int ObjectRef::l_hud_get_hotbar_selected_image(lua_State *L)
int ObjectRef::l_set_sky(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1893,7 +1884,7 @@ static void push_sky_color(lua_State *L, const SkyboxParams &params)
int ObjectRef::l_get_sky(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1946,7 +1937,7 @@ int ObjectRef::l_get_sky_color(lua_State *L)
log_deprecated(L, "Deprecated call to get_sky_color, use get_sky instead");
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1960,7 +1951,7 @@ int ObjectRef::l_get_sky_color(lua_State *L)
int ObjectRef::l_set_sun(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -1988,7 +1979,7 @@ int ObjectRef::l_set_sun(lua_State *L)
int ObjectRef::l_get_sun(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2015,7 +2006,7 @@ int ObjectRef::l_get_sun(lua_State *L)
int ObjectRef::l_set_moon(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2041,7 +2032,7 @@ int ObjectRef::l_set_moon(lua_State *L)
int ObjectRef::l_get_moon(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2064,7 +2055,7 @@ int ObjectRef::l_get_moon(lua_State *L)
int ObjectRef::l_set_stars(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2098,7 +2089,7 @@ int ObjectRef::l_set_stars(lua_State *L)
int ObjectRef::l_get_stars(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2123,7 +2114,7 @@ int ObjectRef::l_get_stars(lua_State *L)
int ObjectRef::l_set_clouds(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2166,7 +2157,7 @@ int ObjectRef::l_set_clouds(lua_State *L)
int ObjectRef::l_get_clouds(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2198,7 +2189,7 @@ int ObjectRef::l_get_clouds(lua_State *L)
int ObjectRef::l_override_day_night_ratio(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2221,7 +2212,7 @@ int ObjectRef::l_override_day_night_ratio(lua_State *L)
int ObjectRef::l_get_day_night_ratio(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2242,7 +2233,7 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L)
int ObjectRef::l_set_minimap_modes(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2295,7 +2286,7 @@ int ObjectRef::l_set_minimap_modes(lua_State *L)
int ObjectRef::l_set_lighting(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2316,7 +2307,7 @@ int ObjectRef::l_set_lighting(lua_State *L)
int ObjectRef::l_get_lighting(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2335,7 +2326,7 @@ int ObjectRef::l_get_lighting(lua_State *L)
int ObjectRef::l_respawn(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
+ ObjectRef *ref = checkObject<ObjectRef>(L, 1);
RemotePlayer *player = getplayer(ref);
if (player == nullptr)
return 0;
@@ -2362,33 +2353,17 @@ void ObjectRef::create(lua_State *L, ServerActiveObject *object)
void ObjectRef::set_null(lua_State *L)
{
- ObjectRef *obj = checkobject(L, -1);
+ ObjectRef *obj = checkObject<ObjectRef>(L, -1);
obj->m_object = nullptr;
}
void ObjectRef::Register(lua_State *L)
{
- lua_newtable(L);
- int methodtable = lua_gettop(L);
- luaL_newmetatable(L, className);
- int metatable = lua_gettop(L);
-
- lua_pushliteral(L, "__metatable");
- lua_pushvalue(L, methodtable);
- lua_settable(L, metatable); // hide metatable from Lua getmetatable()
-
- lua_pushliteral(L, "__index");
- lua_pushvalue(L, methodtable);
- lua_settable(L, metatable);
-
- lua_pushliteral(L, "__gc");
- lua_pushcfunction(L, gc_object);
- lua_settable(L, metatable);
-
- lua_pop(L, 1); // drop metatable
-
- luaL_register(L, nullptr, methods); // fill methodtable
- lua_pop(L, 1); // drop methodtable
+ static const luaL_Reg metamethods[] = {
+ {"__gc", gc_object},
+ {0, 0}
+ };
+ registerClass(L, className, methods, metamethods);
}
const char ObjectRef::className[] = "ObjectRef";