From d67e8dcca5dda496480f3e983a0cf72c1d047bf7 Mon Sep 17 00:00:00 2001 From: mgueydan Date: Sun, 8 Sep 2013 03:30:09 +0200 Subject: Adding mobtype filter inside world.ini --- source/MobSpawner.cpp | 3 ++- source/World.cpp | 21 +++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) (limited to 'source') diff --git a/source/MobSpawner.cpp b/source/MobSpawner.cpp index 19e3739cd..38234ae67 100644 --- a/source/MobSpawner.cpp +++ b/source/MobSpawner.cpp @@ -6,6 +6,7 @@ #include "Mobs/Monster.h" #include "Mobs/IncludeAllMonsters.h" +#include cMobSpawner::tMobTypes& cMobSpawner::m_MobTypes() { @@ -178,7 +179,7 @@ bool cMobSpawner::CanSpawnHere(cMonster::eType a_MobType, BLOCKTYPE a_BlockType, { if (a_MobType == cMonster::mtChicken || a_MobType == cMonster::mtPig || a_MobType == cMonster::mtCow || a_MobType == cMonster::mtSheep) { - LOGD("Trying to spawn an animal"); + LOGD(oss.str().c_str()); toReturn = ( a_BlockType_below == E_BLOCK_GRASS /*&& // MG TODO a_LightLevel >= 9 */ diff --git a/source/World.cpp b/source/World.cpp index 2e8f30840..9ca432f50 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -491,14 +491,19 @@ void cWorld::Start(void) m_GameMode = (eGameMode)IniFile.GetValueSetI("GameMode", "GameMode", m_GameMode); - m_bAnimals = true; - - m_AllowedMobs.insert(cMonster::mtCow); // MG TODO : temporary - m_AllowedMobs.insert(cMonster::mtZombie); - m_AllowedMobs.insert(cMonster::mtZombiePigman); - m_AllowedMobs.insert(cMonster::mtBat); - m_AllowedMobs.insert(cMonster::mtSpider); - m_AllowedMobs.insert(cMonster::mtGhast); + m_bAnimals = IniFile.GetValueB("Monsters", "AnimalsOn", true); + AString sAllMonsters = IniFile.GetValue("Monsters", "Types"); + AStringVector SplitList = StringSplit(sAllMonsters, ","); + for (unsigned int i = 0; i < SplitList.size(); ++i) + { + cMonster::eType ToAdd = cMobTypesManager::fromStringToMobType(SplitList[i]); + if (ToAdd != cMonster::mtInvalidType) + { + m_AllowedMobs.insert(ToAdd); + LOGD("Allowed mob: %s",cMobTypesManager::fromMobTypeToString(ToAdd).c_str()); // a bit reverse working, but very few ressources wasted + } + }; + m_ChunkMap = new cChunkMap(this); -- cgit v1.2.3