diff options
Diffstat (limited to 'Minecraft.World/MakeLoveGoal.cpp')
| -rw-r--r-- | Minecraft.World/MakeLoveGoal.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Minecraft.World/MakeLoveGoal.cpp b/Minecraft.World/MakeLoveGoal.cpp index 89f09f1d..c399d632 100644 --- a/Minecraft.World/MakeLoveGoal.cpp +++ b/Minecraft.World/MakeLoveGoal.cpp @@ -78,6 +78,11 @@ bool MakeLoveGoal::villageNeedsMoreVillagers() shared_ptr<Village> _village = village.lock(); if( _village == NULL ) return false; + if (!_village->isBreedTimerOk()) + { + return false; + } + int idealSize = (int) ((float) _village->getDoorCount() * 0.35); // System.out.println("idealSize: " + idealSize + " pop: " + // village.getPopulationSize()); @@ -93,9 +98,8 @@ void MakeLoveGoal::breed() // 4J - added limit to number of animals that can be bred if(level->canCreateMore( eTYPE_VILLAGER, Level::eSpawnType_Breed) ) { - shared_ptr<Villager> child = shared_ptr<Villager>( new Villager(level) ); + shared_ptr<Villager> child = dynamic_pointer_cast<Villager>( villager->getBreedOffspring(partner.lock()) ); child->setAge(-20 * 60 * 20); - child->setProfession(villager->getRandom()->nextInt(Villager::PROFESSION_MAX)); child->moveTo(villager->x, villager->y, villager->z, 0, 0); level->addEntity(child); level->broadcastEntityEvent(child, EntityEvent::LOVE_HEARTS); |
