summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorobneq <obbneq@gmail.com>2016-04-28 01:58:09 +1000
committerCraig Robbins <kde.psych@gmail.com>2016-04-28 02:09:36 +1000
commit6278da296be13c1229bfce45c476119a1db9477f (patch)
tree3bdb3d3eab6e6829edff36e006198eea184f463a /src/server.cpp
parent26a9a85129db3c769a9deecf905640858dc48ed8 (diff)
downloadminetest-6278da296be13c1229bfce45c476119a1db9477f.tar.gz
minetest-6278da296be13c1229bfce45c476119a1db9477f.tar.bz2
minetest-6278da296be13c1229bfce45c476119a1db9477f.zip
Handle particle spawners in env and delete expired ids
Rebased by Zeno (2016-04-2016)
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 6c008a2a1..0aba2796c 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -3194,19 +3194,7 @@ u32 Server::addParticleSpawner(u16 amount, float spawntime,
peer_id = player->peer_id;
}
- u32 id = 0;
- for(;;) // look for unused particlespawner id
- {
- id++;
- if (std::find(m_particlespawner_ids.begin(),
- m_particlespawner_ids.end(), id)
- == m_particlespawner_ids.end())
- {
- m_particlespawner_ids.push_back(id);
- break;
- }
- }
-
+ u32 id = m_env->addParticleSpawner(spawntime);
SendAddParticleSpawner(peer_id, amount, spawntime,
minpos, maxpos, minvel, maxvel, minacc, maxacc,
minexptime, maxexptime, minsize, maxsize,
@@ -3229,13 +3217,16 @@ void Server::deleteParticleSpawner(const std::string &playername, u32 id)
peer_id = player->peer_id;
}
- m_particlespawner_ids.erase(
- std::remove(m_particlespawner_ids.begin(),
- m_particlespawner_ids.end(), id),
- m_particlespawner_ids.end());
+ m_env->deleteParticleSpawner(id);
SendDeleteParticleSpawner(peer_id, id);
}
+void Server::deleteParticleSpawnerAll(u32 id)
+{
+ m_env->deleteParticleSpawner(id);
+ SendDeleteParticleSpawner(PEER_ID_INEXISTENT, id);
+}
+
Inventory* Server::createDetachedInventory(const std::string &name)
{
if(m_detached_inventories.count(name) > 0){