diff options
author | Jude Melton-Houghton <jwmhjwmh@gmail.com> | 2022-10-04 08:31:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-04 08:31:36 -0400 |
commit | 7632af3c73fc4e4ae3ad4c98c90c39b47c3b8379 (patch) | |
tree | 08b974d6ecafb6c20de565f96e329748030c1519 /src/script/lua_api/l_object.cpp | |
parent | b21fb1837955e6385137184cac906245821b20e4 (diff) | |
download | minetest-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.cpp | 247 |
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 ¶ms) 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"; |