summaryrefslogtreecommitdiffstats
path: root/source/ChunkMap.cpp
diff options
context:
space:
mode:
authormgueydan <gueydan.mathieuÃ@gmail.com>2013-09-08 00:11:38 +0200
committermgueydan <gueydan.mathieuÃ@gmail.com>2013-09-08 00:11:38 +0200
commitbf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f (patch)
tree9c47274f2e308991d15422dcf515710c28fc5ab7 /source/ChunkMap.cpp
parentAdding mob census (sorry this is a big commit as work was done before git integration i couldn't split it more) (diff)
downloadcuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar.gz
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar.bz2
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar.lz
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar.xz
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.tar.zst
cuberite-bf1fb0aa3dbd5b6b793d920c4e301e4782fe0f0f.zip
Diffstat (limited to 'source/ChunkMap.cpp')
-rw-r--r--source/ChunkMap.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/source/ChunkMap.cpp b/source/ChunkMap.cpp
index 610b293b5..f5cbacdc7 100644
--- a/source/ChunkMap.cpp
+++ b/source/ChunkMap.cpp
@@ -13,6 +13,7 @@
#include "PluginManager.h"
#include "Entities/TNTEntity.h"
#include "MobCensus.h"
+#include "MobSpawner.h"
#ifndef _WIN32
#include <cstdlib> // abs
@@ -2167,6 +2168,19 @@ void cChunkMap::CollectMobCensus(cMobCensus& a_ToFill)
+void cChunkMap::SpawnMobs(cMobSpawner& a_MobSpawner)
+{
+ cCSLock Lock(m_CSLayers);
+ for (cChunkLayerList::iterator itr = m_Layers.begin(); itr != m_Layers.end(); ++itr)
+ {
+ (*itr)->SpawnMobs(a_MobSpawner);
+ } // for itr - m_Layers
+}
+
+
+
+
+
void cChunkMap::Tick(float a_Dt)
{
cCSLock Lock(m_CSLayers);
@@ -2343,6 +2357,20 @@ void cChunkMap::cChunkLayer::CollectMobCensus(cMobCensus& a_ToFill)
+void cChunkMap::cChunkLayer::SpawnMobs(cMobSpawner& a_MobSpawner)
+{
+ for (int i = 0; i < ARRAYCOUNT(m_Chunks); i++)
+ {
+ // We only spawn close to players
+ if ((m_Chunks[i] != NULL) && m_Chunks[i]->IsValid() && m_Chunks[i]->HasAnyClients())
+ {
+ m_Chunks[i]->SpawnMobs(a_MobSpawner);
+ }
+ } // for i - m_Chunks[]
+}
+
+
+
void cChunkMap::cChunkLayer::Tick(float a_Dt)
{
for (int i = 0; i < ARRAYCOUNT(m_Chunks); i++)