diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-02-23 11:10:09 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-02-23 11:10:09 +0200 |
commit | be32adc872a085f6ced03000362b352b121fa103 (patch) | |
tree | 9d3dfd06322829759dcb364be2b19becccb34c79 /src/environment.cpp | |
parent | 9778347c7f118f6b74153f1d2c8070920352eb68 (diff) | |
download | minetest-be32adc872a085f6ced03000362b352b121fa103.tar.xz |
updated scripting api a bit
--HG--
rename : data/luaobjects/test/client.lua => data/scripts/objects/test/client.lua
rename : data/luaobjects/test/server.lua => data/scripts/objects/test/server.lua
Diffstat (limited to 'src/environment.cpp')
-rw-r--r-- | src/environment.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index ef973fb1e..2c9f4d68f 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -115,6 +115,26 @@ Player * Environment::getRandomConnectedPlayer() return NULL; } +Player * Environment::getNearestConnectedPlayer(v3f pos) +{ + core::list<Player*> connected_players = getPlayers(true); + f32 nearest_d = 0; + Player *nearest_player = NULL; + for(core::list<Player*>::Iterator + i = connected_players.begin(); + i != connected_players.end(); i++) + { + Player *player = *i; + f32 d = player->getPosition().getDistanceFrom(pos); + if(d < nearest_d || nearest_player == NULL) + { + nearest_d = d; + nearest_player = player; + } + } + return nearest_player; +} + core::list<Player*> Environment::getPlayers() { return m_players; @@ -480,9 +500,9 @@ void ServerEnvironment::step(float dtime) if(player) pos = player->getPosition(); pos += v3f( - myrand_range(-5,5)*BS, + myrand_range(-3,3)*BS, 0, - myrand_range(-5,5)*BS + myrand_range(-3,3)*BS ); /* @@ -494,7 +514,7 @@ void ServerEnvironment::step(float dtime) /* Select a random type for it */ - std::string objectdir = porting::getDataPath("luaobjects"); + std::string objectdir = porting::getDataPath("scripts/objects"); std::vector<fs::DirListNode> dirlist = fs::GetDirListing(objectdir); if(dirlist.size() > 0) { |