diff options
Diffstat (limited to 'src/script/lua_api/l_object.cpp')
-rw-r--r-- | src/script/lua_api/l_object.cpp | 514 |
1 files changed, 254 insertions, 260 deletions
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 5d48ee93d..e7394133a 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -39,16 +39,16 @@ with this program; if not, write to the Free Software Foundation, Inc., ObjectRef */ -ObjectRef *ObjectRef::checkobject(lua_State *L, int narg) + +ObjectRef* ObjectRef::checkobject(lua_State *L, int narg) { luaL_checktype(L, narg, LUA_TUSERDATA); void *ud = luaL_checkudata(L, narg, className); - if (!ud) - luaL_typerror(L, narg, className); - return *(ObjectRef **)ud; // unbox pointer + if (!ud) luaL_typerror(L, narg, className); + return *(ObjectRef**)ud; // unbox pointer } -ServerActiveObject *ObjectRef::getobject(ObjectRef *ref) +ServerActiveObject* ObjectRef::getobject(ObjectRef *ref) { ServerActiveObject *co = ref->m_object; if (co && co->isGone()) @@ -56,24 +56,24 @@ ServerActiveObject *ObjectRef::getobject(ObjectRef *ref) return co; } -LuaEntitySAO *ObjectRef::getluaobject(ObjectRef *ref) +LuaEntitySAO* ObjectRef::getluaobject(ObjectRef *ref) { ServerActiveObject *obj = getobject(ref); if (obj == NULL) return NULL; if (obj->getType() != ACTIVEOBJECT_TYPE_LUAENTITY) return NULL; - return (LuaEntitySAO *)obj; + return (LuaEntitySAO*)obj; } -PlayerSAO *ObjectRef::getplayersao(ObjectRef *ref) +PlayerSAO* ObjectRef::getplayersao(ObjectRef *ref) { ServerActiveObject *obj = getobject(ref); if (obj == NULL) return NULL; if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER) return NULL; - return (PlayerSAO *)obj; + return (PlayerSAO*)obj; } RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) @@ -87,10 +87,9 @@ RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) // Exported functions // garbage collector -int ObjectRef::gc_object(lua_State *L) -{ +int ObjectRef::gc_object(lua_State *L) { ObjectRef *o = *(ObjectRef **)(lua_touserdata(L, 1)); - // infostream<<"ObjectRef::gc_object: o="<<o<<std::endl; + //infostream<<"ObjectRef::gc_object: o="<<o<<std::endl; delete o; return 0; } @@ -122,8 +121,7 @@ int ObjectRef::l_get_pos(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; push_v3f(L, co->getBasePosition() / BS); return 1; } @@ -134,8 +132,7 @@ int ObjectRef::l_set_pos(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // pos v3f pos = checkFloatPos(L, 2); // Do it @@ -149,8 +146,7 @@ int ObjectRef::l_move_to(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // pos v3f pos = checkFloatPos(L, 2); // continuous @@ -189,18 +185,17 @@ int ObjectRef::l_punch(lua_State *L) lua_pushnumber(L, wear); // If the punched is a player, and its HP changed - if (src_original_hp != co->getHP() && co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + if (src_original_hp != co->getHP() && + co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, - PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, - puncher)); + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, puncher)); } // If the puncher is a player, and its HP changed if (dst_origin_hp != puncher->getHP() && puncher->getType() == ACTIVEOBJECT_TYPE_PLAYER) { getServer(L)->SendPlayerHPOrDie((PlayerSAO *)puncher, - PlayerHPChangeReason( - PlayerHPChangeReason::PLAYER_PUNCH, co)); + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, co)); } return 1; } @@ -213,10 +208,8 @@ int ObjectRef::l_right_click(lua_State *L) ObjectRef *ref2 = checkobject(L, 2); ServerActiveObject *co = getobject(ref); ServerActiveObject *co2 = getobject(ref2); - if (co == NULL) - return 0; - if (co2 == NULL) - return 0; + if (co == NULL) return 0; + if (co2 == NULL) return 0; // Do it co->rightClick(co2); return 0; @@ -247,8 +240,7 @@ int ObjectRef::l_set_hp(lua_State *L) lua_getfield(L, -1, "type"); if (lua_isstring(L, -1) && - !reason.setTypeFromString( - readParam<std::string>(L, -1))) { + !reason.setTypeFromString(readParam<std::string>(L, -1))) { errorstream << "Bad type given!" << std::endl; } lua_pop(L, 1); @@ -295,8 +287,7 @@ int ObjectRef::l_get_inventory(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it InventoryLocation loc = co->getInventoryLocation(); if (getServerInventoryMgr(L)->getInventory(loc) != NULL) @@ -356,8 +347,7 @@ int ObjectRef::l_set_wielded_item(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it ItemStack item = read_item(L, 2, getServer(L)->idef()); bool success = co->setWieldedItem(item); @@ -374,8 +364,7 @@ int ObjectRef::l_set_armor_groups(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it ItemGroupList groups; read_groups(L, 2, groups); @@ -402,9 +391,8 @@ int ObjectRef::l_set_physics_override(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = (PlayerSAO *)getobject(ref); - if (co == NULL) - return 0; + PlayerSAO *co = (PlayerSAO *) getobject(ref); + if (co == NULL) return 0; // Do it if (lua_istable(L, 2)) { co->m_physics_override_speed = getfloatfield_default( @@ -415,8 +403,8 @@ int ObjectRef::l_set_physics_override(lua_State *L) L, 2, "gravity", co->m_physics_override_gravity); co->m_physics_override_sneak = getboolfield_default( L, 2, "sneak", co->m_physics_override_sneak); - co->m_physics_override_sneak_glitch = getboolfield_default(L, 2, - "sneak_glitch", co->m_physics_override_sneak_glitch); + co->m_physics_override_sneak_glitch = getboolfield_default( + L, 2, "sneak_glitch", co->m_physics_override_sneak_glitch); co->m_physics_override_new_move = getboolfield_default( L, 2, "new_move", co->m_physics_override_new_move); co->m_physics_override_sent = false; @@ -469,8 +457,7 @@ int ObjectRef::l_set_animation(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it v2f frames = v2f(1, 1); if (!lua_isnil(L, 2)) @@ -497,7 +484,7 @@ int ObjectRef::l_get_animation(lua_State *L) if (co == NULL) return 0; // Do it - v2f frames = v2f(1, 1); + v2f frames = v2f(1,1); float frame_speed = 15; float frame_blend = 0; bool frame_loop = true; @@ -520,9 +507,9 @@ int ObjectRef::l_set_local_animation(lua_State *L) return 0; // Do it v2s32 frames[4]; - for (int i = 0; i < 4; i++) { - if (!lua_isnil(L, 2 + 1)) - frames[i] = read_v2s32(L, 2 + i); + for (int i=0;i<4;i++) { + if (!lua_isnil(L, 2+1)) + frames[i] = read_v2s32(L, 2+i); } float frame_speed = 30; if (!lua_isnil(L, 6)) @@ -572,10 +559,10 @@ int ObjectRef::l_set_eye_offset(lua_State *L) offset_third = read_v3f(L, 3); // Prevent abuse of offset values (keep player always visible) - offset_third.X = rangelim(offset_third.X, -10, 10); - offset_third.Z = rangelim(offset_third.Z, -5, 5); + offset_third.X = rangelim(offset_third.X,-10,10); + offset_third.Z = rangelim(offset_third.Z,-5,5); /* TODO: if possible: improve the camera colision detetion to allow Y <= -1.5) */ - offset_third.Y = rangelim(offset_third.Y, -10, 15); // 1.5*BS + offset_third.Y = rangelim(offset_third.Y,-10,15); //1.5*BS getServer(L)->setPlayerEyeOffset(player, offset_first, offset_third); lua_pushboolean(L, true); @@ -640,8 +627,7 @@ int ObjectRef::l_set_bone_position(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ServerActiveObject *co = getobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it std::string bone; if (!lua_isnil(L, 2)) @@ -694,8 +680,7 @@ int ObjectRef::l_set_attach(lua_State *L) return 0; if (co == parent) - throw LuaError("ObjectRef::set_attach: attaching object to itself is not " - "allowed."); + throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed."); // Do it int parent_id = 0; @@ -866,8 +851,7 @@ int ObjectRef::l_set_velocity(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; v3f pos = checkFloatPos(L, 2); // Do it co->setVelocity(pos); @@ -894,8 +878,7 @@ int ObjectRef::l_get_velocity(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it v3f v = co->getVelocity(); pushFloatPos(L, v); @@ -908,8 +891,7 @@ int ObjectRef::l_set_acceleration(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // pos v3f pos = checkFloatPos(L, 2); // Do it @@ -923,8 +905,7 @@ int ObjectRef::l_get_acceleration(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it v3f v = co->getAcceleration(); pushFloatPos(L, v); @@ -970,8 +951,7 @@ int ObjectRef::l_set_yaw(lua_State *L) ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; if (isNaN(L, 2)) throw LuaError("ObjectRef::set_yaw: NaN value is not allowed."); @@ -1000,8 +980,7 @@ int ObjectRef::l_set_texture_mod(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it std::string mod = luaL_checkstring(L, 2); co->setTextureMod(mod); @@ -1014,8 +993,7 @@ int ObjectRef::l_get_texture_mod(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it std::string mod = co->getTextureMod(); lua_pushstring(L, mod.c_str()); @@ -1029,10 +1007,9 @@ int ObjectRef::l_set_sprite(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it - v2s16 p(0, 0); + v2s16 p(0,0); if (!lua_isnil(L, 2)) p = readParam<v2s16>(L, 2); int num_frames = 1; @@ -1055,9 +1032,8 @@ int ObjectRef::l_get_entity_name(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - log_deprecated(L, "Deprecated call to \"get_entity_name"); - if (co == NULL) - return 0; + log_deprecated(L,"Deprecated call to \"get_entity_name"); + if (co == NULL) return 0; // Do it std::string name = co->getName(); lua_pushstring(L, name.c_str()); @@ -1070,8 +1046,7 @@ int ObjectRef::l_get_luaentity(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) - return 0; + if (co == NULL) return 0; // Do it luaentity_get(L, co->getId()); return 1; @@ -1085,7 +1060,7 @@ int ObjectRef::l_is_player_connected(lua_State *L) NO_MAP_LOCK_REQUIRED; // This method was once added for a bugfix, but never documented log_deprecated(L, "is_player_connected is undocumented and " - "will be removed in a future release"); + "will be removed in a future release"); ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); lua_pushboolean(L, (player != NULL && player->getPeerId() != PEER_ID_INEXISTENT)); @@ -1144,14 +1119,13 @@ int ObjectRef::l_get_look_dir(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it float pitch = co->getRadLookPitchDep(); float yaw = co->getRadYawDep(); - v3f v(std::cos(pitch) * std::cos(yaw), std::sin(pitch), - std::cos(pitch) * std::sin(yaw)); + v3f v(std::cos(pitch) * std::cos(yaw), std::sin(pitch), std::cos(pitch) * + std::sin(yaw)); push_v3f(L, v); return 1; } @@ -1162,13 +1136,12 @@ int ObjectRef::l_get_look_pitch(lua_State *L) { NO_MAP_LOCK_REQUIRED; - log_deprecated(L, "Deprecated call to get_look_pitch, use get_look_vertical " - "instead"); + log_deprecated(L, + "Deprecated call to get_look_pitch, use get_look_vertical instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it lua_pushnumber(L, co->getRadLookPitchDep()); return 1; @@ -1180,13 +1153,12 @@ int ObjectRef::l_get_look_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; - log_deprecated(L, "Deprecated call to get_look_yaw, use get_look_horizontal " - "instead"); + log_deprecated(L, + "Deprecated call to get_look_yaw, use get_look_horizontal instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it lua_pushnumber(L, co->getRadYawDep()); return 1; @@ -1197,9 +1169,8 @@ int ObjectRef::l_get_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it lua_pushnumber(L, co->getRadLookPitch()); return 1; @@ -1210,9 +1181,8 @@ int ObjectRef::l_get_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it lua_pushnumber(L, co->getRadRotation().Y); return 1; @@ -1223,9 +1193,8 @@ int ObjectRef::l_set_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; float pitch = readParam<float>(L, 2) * core::RADTODEG; // Do it co->setLookPitchAndSend(pitch); @@ -1237,9 +1206,8 @@ int ObjectRef::l_set_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; float yaw = readParam<float>(L, 2) * core::RADTODEG; // Do it co->setPlayerYawAndSend(yaw); @@ -1252,13 +1220,12 @@ int ObjectRef::l_set_look_pitch(lua_State *L) { NO_MAP_LOCK_REQUIRED; - log_deprecated(L, "Deprecated call to set_look_pitch, use set_look_vertical " - "instead."); + log_deprecated(L, + "Deprecated call to set_look_pitch, use set_look_vertical instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; float pitch = readParam<float>(L, 2) * core::RADTODEG; // Do it co->setLookPitchAndSend(pitch); @@ -1271,13 +1238,12 @@ int ObjectRef::l_set_look_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; - log_deprecated(L, "Deprecated call to set_look_yaw, use set_look_horizontal " - "instead."); + log_deprecated(L, + "Deprecated call to set_look_yaw, use set_look_horizontal instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; float yaw = readParam<float>(L, 2) * core::RADTODEG; // Do it co->setPlayerYawAndSend(yaw); @@ -1293,10 +1259,11 @@ int ObjectRef::l_set_fov(lua_State *L) if (!player) return 0; - player->setFov({static_cast<f32>(luaL_checknumber(L, 2)), - readParam<bool>(L, 3, false), - lua_isnumber(L, 4) ? static_cast<f32>(luaL_checknumber(L, 4)) - : 0.0f}); + player->setFov({ + static_cast<f32>(luaL_checknumber(L, 2)), + readParam<bool>(L, 3, false), + lua_isnumber(L, 4) ? static_cast<f32>(luaL_checknumber(L, 4)) : 0.0f + }); getServer(L)->SendPlayerFov(player->getPeerId()); return 0; @@ -1324,9 +1291,8 @@ int ObjectRef::l_set_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; u16 breath = luaL_checknumber(L, 2); co->setBreath(breath); @@ -1338,23 +1304,22 @@ int ObjectRef::l_get_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) - return 0; + PlayerSAO* co = getplayersao(ref); + if (co == NULL) return 0; // Do it u16 breath = co->getBreath(); - lua_pushinteger(L, breath); + lua_pushinteger (L, breath); return 1; } // set_attribute(self, attribute, value) int ObjectRef::l_set_attribute(lua_State *L) { - log_deprecated(L, "Deprecated call to set_attribute, use MetaDataRef methods " - "instead."); + log_deprecated(L, + "Deprecated call to set_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); + PlayerSAO* co = getplayersao(ref); if (co == NULL) return 0; @@ -1371,11 +1336,11 @@ int ObjectRef::l_set_attribute(lua_State *L) // get_attribute(self, attribute) int ObjectRef::l_get_attribute(lua_State *L) { - log_deprecated(L, "Deprecated call to get_attribute, use MetaDataRef methods " - "instead."); + log_deprecated(L, + "Deprecated call to get_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); + PlayerSAO* co = getplayersao(ref); if (co == NULL) return 0; @@ -1390,6 +1355,7 @@ int ObjectRef::l_get_attribute(lua_State *L) return 0; } + // get_meta(self, attribute) int ObjectRef::l_get_meta(lua_State *L) { @@ -1402,14 +1368,14 @@ int ObjectRef::l_get_meta(lua_State *L) return 1; } + // set_inventory_formspec(self, formspec) int ObjectRef::l_set_inventory_formspec(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) - return 0; + if (player == NULL) return 0; std::string formspec = luaL_checkstring(L, 2); player->inventory_formspec = formspec; @@ -1424,8 +1390,7 @@ int ObjectRef::l_get_inventory_formspec(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) - return 0; + if (player == NULL) return 0; std::string formspec = player->inventory_formspec; lua_pushlstring(L, formspec.c_str(), formspec.size()); @@ -1456,7 +1421,7 @@ int ObjectRef::l_get_formspec_prepend(lua_State *L) ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); if (player == NULL) - return 0; + return 0; std::string formspec = player->formspec_prepend; lua_pushlstring(L, formspec.c_str(), formspec.size()); @@ -1608,14 +1573,14 @@ int ObjectRef::l_hud_set_flags(lua_State *L) return 0; u32 flags = 0; - u32 mask = 0; + u32 mask = 0; bool flag; const EnumString *esp = es_HudBuiltinElement; for (int i = 0; esp[i].str; i++) { if (getboolfield(L, 2, esp[i].str, flag)) { flags |= esp[i].num * flag; - mask |= esp[i].num; + mask |= esp[i].num; } } if (!getServer(L)->hudSetFlags(player, flags, mask)) @@ -1770,8 +1735,7 @@ int ObjectRef::l_set_sky(lua_State *L) lua_pushnil(L); while (lua_next(L, -2) != 0) { // Key is at index -2 and value at index -1 - skybox_params.textures.emplace_back( - readParam<std::string>(L, -1)); + skybox_params.textures.emplace_back(readParam<std::string>(L, -1)); // Removes the value, but keeps the key for iteration lua_pop(L, 1); } @@ -1784,12 +1748,11 @@ int ObjectRef::l_set_sky(lua_State *L) using "regular" or "plain" skybox modes as textures aren't needed. */ - if (skybox_params.textures.size() != 6 && - skybox_params.textures.size() > 0) + if (skybox_params.textures.size() != 6 && skybox_params.textures.size() > 0) throw LuaError("Skybox expects 6 textures!"); - skybox_params.clouds = getboolfield_default( - L, 2, "clouds", skybox_params.clouds); + skybox_params.clouds = getboolfield_default(L, 2, + "clouds", skybox_params.clouds); lua_getfield(L, 2, "sky_color"); if (lua_istable(L, -1)) { @@ -1873,10 +1836,9 @@ int ObjectRef::l_set_sky(lua_State *L) if (lua_istable(L, 4)) { lua_pushnil(L); while (lua_next(L, 4) != 0) { - // Key at index -2, and value at index -1 + // Key at index -2, and value at index -1 if (lua_isstring(L, -1)) - skybox_params.textures.emplace_back( - readParam<std::string>(L, -1)); + skybox_params.textures.emplace_back(readParam<std::string>(L, -1)); else skybox_params.textures.emplace_back(""); // Remove the value, keep the key for the next iteration @@ -1916,7 +1878,7 @@ int ObjectRef::l_get_sky(lua_State *L) lua_newtable(L); s16 i = 1; - for (const std::string &texture : skybox_params.textures) { + for (const std::string& texture : skybox_params.textures) { lua_pushlstring(L, texture.c_str(), texture.size()); lua_rawseti(L, -2, i++); } @@ -1934,7 +1896,7 @@ int ObjectRef::l_get_sky_color(lua_State *L) if (!player) return 0; - const SkyboxParams &skybox_params = player->getSkyParams(); + const SkyboxParams& skybox_params = player->getSkyParams(); lua_newtable(L); if (skybox_params.type == "regular") { @@ -1976,20 +1938,25 @@ int ObjectRef::l_set_sun(lua_State *L) SunParams sun_params = player->getSunParams(); - sun_params.visible = getboolfield_default(L, 2, "visible", sun_params.visible); - sun_params.texture = getstringfield_default(L, 2, "texture", sun_params.texture); - sun_params.tonemap = getstringfield_default(L, 2, "tonemap", sun_params.tonemap); - sun_params.sunrise = getstringfield_default(L, 2, "sunrise", sun_params.sunrise); - sun_params.sunrise_visible = getboolfield_default( - L, 2, "sunrise_visible", sun_params.sunrise_visible); - sun_params.scale = getfloatfield_default(L, 2, "scale", sun_params.scale); + sun_params.visible = getboolfield_default(L, 2, + "visible", sun_params.visible); + sun_params.texture = getstringfield_default(L, 2, + "texture", sun_params.texture); + sun_params.tonemap = getstringfield_default(L, 2, + "tonemap", sun_params.tonemap); + sun_params.sunrise = getstringfield_default(L, 2, + "sunrise", sun_params.sunrise); + sun_params.sunrise_visible = getboolfield_default(L, 2, + "sunrise_visible", sun_params.sunrise_visible); + sun_params.scale = getfloatfield_default(L, 2, + "scale", sun_params.scale); getServer(L)->setSun(player, sun_params); lua_pushboolean(L, true); return 1; } -// get_sun(self) +//get_sun(self) int ObjectRef::l_get_sun(lua_State *L) { NO_MAP_LOCK_REQUIRED; @@ -2029,12 +1996,14 @@ int ObjectRef::l_set_moon(lua_State *L) MoonParams moon_params = player->getMoonParams(); - moon_params.visible = getboolfield_default(L, 2, "visible", moon_params.visible); - moon_params.texture = - getstringfield_default(L, 2, "texture", moon_params.texture); - moon_params.tonemap = - getstringfield_default(L, 2, "tonemap", moon_params.tonemap); - moon_params.scale = getfloatfield_default(L, 2, "scale", moon_params.scale); + moon_params.visible = getboolfield_default(L, 2, + "visible", moon_params.visible); + moon_params.texture = getstringfield_default(L, 2, + "texture", moon_params.texture); + moon_params.tonemap = getstringfield_default(L, 2, + "tonemap", moon_params.tonemap); + moon_params.scale = getfloatfield_default(L, 2, + "scale", moon_params.scale); getServer(L)->setMoon(player, moon_params); lua_pushboolean(L, true); @@ -2077,15 +2046,18 @@ int ObjectRef::l_set_stars(lua_State *L) StarParams star_params = player->getStarParams(); - star_params.visible = getboolfield_default(L, 2, "visible", star_params.visible); - star_params.count = getintfield_default(L, 2, "count", star_params.count); + star_params.visible = getboolfield_default(L, 2, + "visible", star_params.visible); + star_params.count = getintfield_default(L, 2, + "count", star_params.count); lua_getfield(L, 2, "star_color"); if (!lua_isnil(L, -1)) read_color(L, -1, &star_params.starcolor); lua_pop(L, 1); - star_params.scale = getfloatfield_default(L, 2, "scale", star_params.scale); + star_params.scale = getfloatfield_default(L, 2, + "scale", star_params.scale); getServer(L)->setStars(player, star_params); lua_pushboolean(L, true); @@ -2128,8 +2100,7 @@ int ObjectRef::l_set_clouds(lua_State *L) CloudParams cloud_params = player->getCloudParams(); - cloud_params.density = - getfloatfield_default(L, 2, "density", cloud_params.density); + cloud_params.density = getfloatfield_default(L, 2, "density", cloud_params.density); lua_getfield(L, 2, "color"); if (!lua_isnil(L, -1)) @@ -2140,9 +2111,8 @@ int ObjectRef::l_set_clouds(lua_State *L) read_color(L, -1, &cloud_params.color_ambient); lua_pop(L, 1); - cloud_params.height = getfloatfield_default(L, 2, "height", cloud_params.height); - cloud_params.thickness = - getfloatfield_default(L, 2, "thickness", cloud_params.thickness); + cloud_params.height = getfloatfield_default(L, 2, "height", cloud_params.height ); + cloud_params.thickness = getfloatfield_default(L, 2, "thickness", cloud_params.thickness); lua_getfield(L, 2, "speed"); if (lua_istable(L, -1)) { @@ -2188,6 +2158,7 @@ int ObjectRef::l_get_clouds(lua_State *L) return 1; } + // override_day_night_ratio(self, brightness=0...1) int ObjectRef::l_override_day_night_ratio(lua_State *L) { @@ -2230,9 +2201,10 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) return 1; } -ObjectRef::ObjectRef(ServerActiveObject *object) : m_object(object) +ObjectRef::ObjectRef(ServerActiveObject *object): + m_object(object) { - // infostream<<"ObjectRef created for id="<<m_object->getId()<<std::endl; + //infostream<<"ObjectRef created for id="<<m_object->getId()<<std::endl; } // Creates an ObjectRef and leaves it on top of stack @@ -2240,7 +2212,7 @@ ObjectRef::ObjectRef(ServerActiveObject *object) : m_object(object) void ObjectRef::create(lua_State *L, ServerActiveObject *object) { ObjectRef *o = new ObjectRef(object); - // infostream<<"ObjectRef::create: o="<<o<<std::endl; + //infostream<<"ObjectRef::create: o="<<o<<std::endl; *(void **)(lua_newuserdata(L, sizeof(void *))) = o; luaL_getmetatable(L, className); lua_setmetatable(L, -2); @@ -2261,7 +2233,7 @@ void ObjectRef::Register(lua_State *L) lua_pushliteral(L, "__metatable"); lua_pushvalue(L, methodtable); - lua_settable(L, metatable); // hide metatable from Lua getmetatable() + lua_settable(L, metatable); // hide metatable from Lua getmetatable() lua_pushliteral(L, "__index"); lua_pushvalue(L, methodtable); @@ -2271,97 +2243,119 @@ void ObjectRef::Register(lua_State *L) lua_pushcfunction(L, gc_object); lua_settable(L, metatable); - lua_pop(L, 1); // drop metatable + lua_pop(L, 1); // drop metatable markAliasDeprecated(methods); - luaL_openlib(L, 0, methods, 0); // fill methodtable - lua_pop(L, 1); // drop methodtable + luaL_openlib(L, 0, methods, 0); // fill methodtable + lua_pop(L, 1); // drop methodtable // Cannot be created from Lua - // lua_register(L, className, create_object); + //lua_register(L, className, create_object); } const char ObjectRef::className[] = "ObjectRef"; luaL_Reg ObjectRef::methods[] = { - // ServerActiveObject - luamethod(ObjectRef, remove), - luamethod_aliased(ObjectRef, get_pos, getpos), - luamethod_aliased(ObjectRef, set_pos, setpos), - luamethod_aliased(ObjectRef, move_to, moveto), - luamethod(ObjectRef, punch), luamethod(ObjectRef, right_click), - luamethod(ObjectRef, set_hp), luamethod(ObjectRef, get_hp), - luamethod(ObjectRef, get_inventory), luamethod(ObjectRef, get_wield_list), - luamethod(ObjectRef, get_wield_index), - luamethod(ObjectRef, get_wielded_item), - luamethod(ObjectRef, set_wielded_item), - luamethod(ObjectRef, set_armor_groups), - luamethod(ObjectRef, get_armor_groups), - luamethod(ObjectRef, set_animation), luamethod(ObjectRef, get_animation), - luamethod(ObjectRef, set_animation_frame_speed), - luamethod(ObjectRef, set_bone_position), - luamethod(ObjectRef, get_bone_position), luamethod(ObjectRef, set_attach), - luamethod(ObjectRef, get_attach), luamethod(ObjectRef, set_detach), - luamethod(ObjectRef, set_properties), - luamethod(ObjectRef, get_properties), - luamethod(ObjectRef, set_nametag_attributes), - luamethod(ObjectRef, get_nametag_attributes), - // LuaEntitySAO-only - luamethod_aliased(ObjectRef, set_velocity, setvelocity), - luamethod(ObjectRef, add_velocity), - luamethod_aliased(ObjectRef, get_velocity, getvelocity), - luamethod_aliased(ObjectRef, set_acceleration, setacceleration), - luamethod_aliased(ObjectRef, get_acceleration, getacceleration), - luamethod_aliased(ObjectRef, set_yaw, setyaw), - luamethod_aliased(ObjectRef, get_yaw, getyaw), - luamethod(ObjectRef, set_rotation), luamethod(ObjectRef, get_rotation), - luamethod_aliased(ObjectRef, set_texture_mod, settexturemod), - luamethod_aliased(ObjectRef, set_sprite, setsprite), - luamethod(ObjectRef, get_entity_name), - luamethod(ObjectRef, get_luaentity), - // Player-only - luamethod(ObjectRef, is_player), - luamethod(ObjectRef, is_player_connected), - luamethod(ObjectRef, get_player_name), - luamethod(ObjectRef, get_player_velocity), - luamethod(ObjectRef, add_player_velocity), - luamethod(ObjectRef, get_look_dir), luamethod(ObjectRef, get_look_pitch), - luamethod(ObjectRef, get_look_yaw), - luamethod(ObjectRef, get_look_vertical), - luamethod(ObjectRef, get_look_horizontal), - luamethod(ObjectRef, set_look_horizontal), - luamethod(ObjectRef, set_look_vertical), - luamethod(ObjectRef, set_look_yaw), luamethod(ObjectRef, set_look_pitch), - luamethod(ObjectRef, get_fov), luamethod(ObjectRef, set_fov), - luamethod(ObjectRef, get_breath), luamethod(ObjectRef, set_breath), - luamethod(ObjectRef, get_attribute), luamethod(ObjectRef, set_attribute), - luamethod(ObjectRef, get_meta), - luamethod(ObjectRef, set_inventory_formspec), - luamethod(ObjectRef, get_inventory_formspec), - luamethod(ObjectRef, set_formspec_prepend), - luamethod(ObjectRef, get_formspec_prepend), - luamethod(ObjectRef, get_player_control), - luamethod(ObjectRef, get_player_control_bits), - luamethod(ObjectRef, set_physics_override), - luamethod(ObjectRef, get_physics_override), luamethod(ObjectRef, hud_add), - luamethod(ObjectRef, hud_remove), luamethod(ObjectRef, hud_change), - luamethod(ObjectRef, hud_get), luamethod(ObjectRef, hud_set_flags), - luamethod(ObjectRef, hud_get_flags), - luamethod(ObjectRef, hud_set_hotbar_itemcount), - luamethod(ObjectRef, hud_get_hotbar_itemcount), - luamethod(ObjectRef, hud_set_hotbar_image), - luamethod(ObjectRef, hud_get_hotbar_image), - luamethod(ObjectRef, hud_set_hotbar_selected_image), - luamethod(ObjectRef, hud_get_hotbar_selected_image), - luamethod(ObjectRef, set_sky), luamethod(ObjectRef, get_sky), - luamethod(ObjectRef, get_sky_color), luamethod(ObjectRef, set_sun), - luamethod(ObjectRef, get_sun), luamethod(ObjectRef, set_moon), - luamethod(ObjectRef, get_moon), luamethod(ObjectRef, set_stars), - luamethod(ObjectRef, get_stars), luamethod(ObjectRef, set_clouds), - luamethod(ObjectRef, get_clouds), - luamethod(ObjectRef, override_day_night_ratio), - luamethod(ObjectRef, get_day_night_ratio), - luamethod(ObjectRef, set_local_animation), - luamethod(ObjectRef, get_local_animation), - luamethod(ObjectRef, set_eye_offset), - luamethod(ObjectRef, get_eye_offset), luamethod(ObjectRef, send_mapblock), - {0, 0}}; + // ServerActiveObject + luamethod(ObjectRef, remove), + luamethod_aliased(ObjectRef, get_pos, getpos), + luamethod_aliased(ObjectRef, set_pos, setpos), + luamethod_aliased(ObjectRef, move_to, moveto), + luamethod(ObjectRef, punch), + luamethod(ObjectRef, right_click), + luamethod(ObjectRef, set_hp), + luamethod(ObjectRef, get_hp), + luamethod(ObjectRef, get_inventory), + luamethod(ObjectRef, get_wield_list), + luamethod(ObjectRef, get_wield_index), + luamethod(ObjectRef, get_wielded_item), + luamethod(ObjectRef, set_wielded_item), + luamethod(ObjectRef, set_armor_groups), + luamethod(ObjectRef, get_armor_groups), + luamethod(ObjectRef, set_animation), + luamethod(ObjectRef, get_animation), + luamethod(ObjectRef, set_animation_frame_speed), + luamethod(ObjectRef, set_bone_position), + luamethod(ObjectRef, get_bone_position), + luamethod(ObjectRef, set_attach), + luamethod(ObjectRef, get_attach), + luamethod(ObjectRef, set_detach), + luamethod(ObjectRef, set_properties), + luamethod(ObjectRef, get_properties), + luamethod(ObjectRef, set_nametag_attributes), + luamethod(ObjectRef, get_nametag_attributes), + // LuaEntitySAO-only + luamethod_aliased(ObjectRef, set_velocity, setvelocity), + luamethod(ObjectRef, add_velocity), + luamethod_aliased(ObjectRef, get_velocity, getvelocity), + luamethod_aliased(ObjectRef, set_acceleration, setacceleration), + luamethod_aliased(ObjectRef, get_acceleration, getacceleration), + luamethod_aliased(ObjectRef, set_yaw, setyaw), + luamethod_aliased(ObjectRef, get_yaw, getyaw), + luamethod(ObjectRef, set_rotation), + luamethod(ObjectRef, get_rotation), + luamethod_aliased(ObjectRef, set_texture_mod, settexturemod), + luamethod_aliased(ObjectRef, set_sprite, setsprite), + luamethod(ObjectRef, get_entity_name), + luamethod(ObjectRef, get_luaentity), + // Player-only + luamethod(ObjectRef, is_player), + luamethod(ObjectRef, is_player_connected), + luamethod(ObjectRef, get_player_name), + luamethod(ObjectRef, get_player_velocity), + luamethod(ObjectRef, add_player_velocity), + luamethod(ObjectRef, get_look_dir), + luamethod(ObjectRef, get_look_pitch), + luamethod(ObjectRef, get_look_yaw), + luamethod(ObjectRef, get_look_vertical), + luamethod(ObjectRef, get_look_horizontal), + luamethod(ObjectRef, set_look_horizontal), + luamethod(ObjectRef, set_look_vertical), + luamethod(ObjectRef, set_look_yaw), + luamethod(ObjectRef, set_look_pitch), + luamethod(ObjectRef, get_fov), + luamethod(ObjectRef, set_fov), + luamethod(ObjectRef, get_breath), + luamethod(ObjectRef, set_breath), + luamethod(ObjectRef, get_attribute), + luamethod(ObjectRef, set_attribute), + luamethod(ObjectRef, get_meta), + luamethod(ObjectRef, set_inventory_formspec), + luamethod(ObjectRef, get_inventory_formspec), + luamethod(ObjectRef, set_formspec_prepend), + luamethod(ObjectRef, get_formspec_prepend), + luamethod(ObjectRef, get_player_control), + luamethod(ObjectRef, get_player_control_bits), + luamethod(ObjectRef, set_physics_override), + luamethod(ObjectRef, get_physics_override), + luamethod(ObjectRef, hud_add), + luamethod(ObjectRef, hud_remove), + luamethod(ObjectRef, hud_change), + luamethod(ObjectRef, hud_get), + luamethod(ObjectRef, hud_set_flags), + luamethod(ObjectRef, hud_get_flags), + luamethod(ObjectRef, hud_set_hotbar_itemcount), + luamethod(ObjectRef, hud_get_hotbar_itemcount), + luamethod(ObjectRef, hud_set_hotbar_image), + luamethod(ObjectRef, hud_get_hotbar_image), + luamethod(ObjectRef, hud_set_hotbar_selected_image), + luamethod(ObjectRef, hud_get_hotbar_selected_image), + luamethod(ObjectRef, set_sky), + luamethod(ObjectRef, get_sky), + luamethod(ObjectRef, get_sky_color), + luamethod(ObjectRef, set_sun), + luamethod(ObjectRef, get_sun), + luamethod(ObjectRef, set_moon), + luamethod(ObjectRef, get_moon), + luamethod(ObjectRef, set_stars), + luamethod(ObjectRef, get_stars), + luamethod(ObjectRef, set_clouds), + luamethod(ObjectRef, get_clouds), + luamethod(ObjectRef, override_day_night_ratio), + luamethod(ObjectRef, get_day_night_ratio), + luamethod(ObjectRef, set_local_animation), + luamethod(ObjectRef, get_local_animation), + luamethod(ObjectRef, set_eye_offset), + luamethod(ObjectRef, get_eye_offset), + luamethod(ObjectRef, send_mapblock), + {0,0} +}; |