s_env.{cpp, h} cleanups

* Replace string by-val passing with const reference
* Fix code style
* Remove redundant `int table` definition and indentation level
This commit is contained in:
est31 2016-03-07 19:34:48 +01:00
parent d494733839
commit 725cb4eb07
2 changed files with 65 additions and 66 deletions

View File

@ -44,7 +44,7 @@ void ScriptApiEnv::environment_OnGenerated(v3s16 minp, v3s16 maxp,
void ScriptApiEnv::environment_Step(float dtime) void ScriptApiEnv::environment_Step(float dtime)
{ {
SCRIPTAPI_PRECHECKHEADER SCRIPTAPI_PRECHECKHEADER
//infostream<<"scriptapi_environment_step"<<std::endl; //infostream << "scriptapi_environment_step" << std::endl;
// Get core.registered_globalsteps // Get core.registered_globalsteps
lua_getglobal(L, "core"); lua_getglobal(L, "core");
@ -58,7 +58,7 @@ void ScriptApiEnv::environment_Step(float dtime)
} }
} }
void ScriptApiEnv::player_event(ServerActiveObject* player, std::string type) void ScriptApiEnv::player_event(ServerActiveObject *player, const std::string &type)
{ {
SCRIPTAPI_PRECHECKHEADER SCRIPTAPI_PRECHECKHEADER
@ -82,7 +82,7 @@ void ScriptApiEnv::player_event(ServerActiveObject* player, std::string type)
void ScriptApiEnv::initializeEnvironment(ServerEnvironment *env) void ScriptApiEnv::initializeEnvironment(ServerEnvironment *env)
{ {
SCRIPTAPI_PRECHECKHEADER SCRIPTAPI_PRECHECKHEADER
verbosestream<<"scriptapi_add_environment"<<std::endl; verbosestream << "scriptapi_add_environment" << std::endl;
setEnv(env); setEnv(env);
/* /*
@ -94,44 +94,46 @@ void ScriptApiEnv::initializeEnvironment(ServerEnvironment *env)
lua_getfield(L, -1, "registered_abms"); lua_getfield(L, -1, "registered_abms");
int registered_abms = lua_gettop(L); int registered_abms = lua_gettop(L);
if(lua_istable(L, registered_abms)){ if (!lua_istable(L, registered_abms)) {
int table = lua_gettop(L); lua_pop(L, 1);
throw LuaError("core.registered_abms was not a lua table, as expected.");
}
lua_pushnil(L); lua_pushnil(L);
while(lua_next(L, table) != 0){ while (lua_next(L, registered_abms)) {
// key at index -2 and value at index -1 // key at index -2 and value at index -1
int id = lua_tonumber(L, -2); int id = lua_tonumber(L, -2);
int current_abm = lua_gettop(L); int current_abm = lua_gettop(L);
std::set<std::string> trigger_contents; std::set<std::string> trigger_contents;
lua_getfield(L, current_abm, "nodenames"); lua_getfield(L, current_abm, "nodenames");
if(lua_istable(L, -1)){ if (lua_istable(L, -1)) {
int table = lua_gettop(L); int table = lua_gettop(L);
lua_pushnil(L); lua_pushnil(L);
while(lua_next(L, table) != 0){ while (lua_next(L, table)) {
// key at index -2 and value at index -1 // key at index -2 and value at index -1
luaL_checktype(L, -1, LUA_TSTRING); luaL_checktype(L, -1, LUA_TSTRING);
trigger_contents.insert(lua_tostring(L, -1)); trigger_contents.insert(lua_tostring(L, -1));
// removes value, keeps key for next iteration // removes value, keeps key for next iteration
lua_pop(L, 1); lua_pop(L, 1);
} }
} else if(lua_isstring(L, -1)){ } else if (lua_isstring(L, -1)) {
trigger_contents.insert(lua_tostring(L, -1)); trigger_contents.insert(lua_tostring(L, -1));
} }
lua_pop(L, 1); lua_pop(L, 1);
std::set<std::string> required_neighbors; std::set<std::string> required_neighbors;
lua_getfield(L, current_abm, "neighbors"); lua_getfield(L, current_abm, "neighbors");
if(lua_istable(L, -1)){ if (lua_istable(L, -1)) {
int table = lua_gettop(L); int table = lua_gettop(L);
lua_pushnil(L); lua_pushnil(L);
while(lua_next(L, table) != 0){ while (lua_next(L, table)) {
// key at index -2 and value at index -1 // key at index -2 and value at index -1
luaL_checktype(L, -1, LUA_TSTRING); luaL_checktype(L, -1, LUA_TSTRING);
required_neighbors.insert(lua_tostring(L, -1)); required_neighbors.insert(lua_tostring(L, -1));
// removes value, keeps key for next iteration // removes value, keeps key for next iteration
lua_pop(L, 1); lua_pop(L, 1);
} }
} else if(lua_isstring(L, -1)){ } else if (lua_isstring(L, -1)) {
required_neighbors.insert(lua_tostring(L, -1)); required_neighbors.insert(lua_tostring(L, -1));
} }
lua_pop(L, 1); lua_pop(L, 1);
@ -153,10 +155,6 @@ void ScriptApiEnv::initializeEnvironment(ServerEnvironment *env)
// removes value, keeps key for next iteration // removes value, keeps key for next iteration
lua_pop(L, 1); lua_pop(L, 1);
} }
} else {
lua_pop(L, 1);
throw LuaError("core.registered_abms was not a lua table, as expected.");
}
lua_pop(L, 1); lua_pop(L, 1);
// Get core.registered_lbms // Get core.registered_lbms

View File

@ -26,7 +26,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class ServerEnvironment; class ServerEnvironment;
struct ScriptCallbackState; struct ScriptCallbackState;
class ScriptApiEnv : virtual public ScriptApiBase { class ScriptApiEnv : virtual public ScriptApiBase
{
public: public:
// Called on environment step // Called on environment step
void environment_Step(float dtime); void environment_Step(float dtime);
@ -35,7 +36,7 @@ public:
void environment_OnGenerated(v3s16 minp, v3s16 maxp, u32 blockseed); void environment_OnGenerated(v3s16 minp, v3s16 maxp, u32 blockseed);
// Called on player event // Called on player event
void player_event(ServerActiveObject *player, std::string type); void player_event(ServerActiveObject *player, const std::string &type);
// Called after emerge of a block queued from core.emerge_area() // Called after emerge of a block queued from core.emerge_area()
void on_emerge_area_completion(v3s16 blockpos, int action, void on_emerge_area_completion(v3s16 blockpos, int action,