summaryrefslogtreecommitdiffstats
path: root/source/MobProximityCounter.h
diff options
context:
space:
mode:
authorAlexander Harkness <bearbin@gmail.com>2013-11-24 15:19:41 +0100
committerAlexander Harkness <bearbin@gmail.com>2013-11-24 15:19:41 +0100
commit675b4aa878f16291ce33fced48a2bc7425f635ae (patch)
tree409914df27a98f65adf866da669429c4de141b6f /source/MobProximityCounter.h
parentLineBlockTracer: Using the coord-based block faces. (diff)
downloadcuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar.gz
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar.bz2
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar.lz
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar.xz
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.tar.zst
cuberite-675b4aa878f16291ce33fced48a2bc7425f635ae.zip
Diffstat (limited to 'source/MobProximityCounter.h')
-rw-r--r--source/MobProximityCounter.h65
1 files changed, 0 insertions, 65 deletions
diff --git a/source/MobProximityCounter.h b/source/MobProximityCounter.h
deleted file mode 100644
index 8a67139aa..000000000
--- a/source/MobProximityCounter.h
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#pragma once
-
-#include <set>
-
-class cChunk;
-class cEntity;
-
-
-// This class is used to collect, for each Mob, what is the distance of the closest player
-// it was first being designed in order to make mobs spawn / despawn / act
-// as the behaviour and even life of mobs depends on the distance to closest player
-class cMobProximityCounter
-{
-protected :
- // structs used for later maps (see m_MonsterToDistance and m_DistanceToMonster)
- struct sDistanceAndChunk
- {
- sDistanceAndChunk(double a_Distance, cChunk& a_Chunk) : m_Distance(a_Distance), m_Chunk(a_Chunk) {}
- double m_Distance;
- cChunk& m_Chunk;
- };
- struct sMonsterAndChunk
- {
- sMonsterAndChunk(cEntity& a_Monster, cChunk& a_Chunk) : m_Monster(a_Monster), m_Chunk(a_Chunk) {}
- cEntity& m_Monster;
- cChunk& m_Chunk;
- };
-
-public :
- typedef std::map<cEntity*,sDistanceAndChunk> tMonsterToDistance;
- typedef std::multimap<double,sMonsterAndChunk> tDistanceToMonster;
-
-protected :
- // this map is filled during collection phase, it will be later transformed into DistanceToMonster
- tMonsterToDistance m_MonsterToDistance;
-
- // this map is generated after collection phase, in order to access monster by distance to player
- tDistanceToMonster m_DistanceToMonster;
-
- // this are the collected chunks. Used to determinate the number of elligible chunk for spawning.
- std::set<cChunk*> m_EligibleForSpawnChunks;
-
-protected :
- // transform monsterToDistance map (that was usefull for collecting) into distanceToMonster
- // that will be usefull for picking up.
- void convertMaps();
-
-public :
- // count a mob on a specified chunk with specified distance to an unkown player
- // if the distance is shortest than the one collected, this become the new closest
- // distance and the chunk become the "hosting" chunk (that is the one that will perform the action)
- void CollectMob(cEntity& a_Monster, cChunk& a_Chunk, double a_Distance);
-
- // return the mobs that are within the range of distance of the closest player they are
- // that means that if a mob is 30 m from a player and 150 m from another one. It will be
- // in the range [0..50] but not in [100..200]
- struct sIterablePair{
- tDistanceToMonster::const_iterator m_Begin;
- tDistanceToMonster::const_iterator m_End;
- int m_Count;
- };
- sIterablePair getMobWithinThosesDistances(double a_DistanceMin, double a_DistanceMax);
-
-};