diff options
| author | void_17 <61356189+void2012@users.noreply.github.com> | 2026-03-06 02:11:18 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-06 02:11:18 +0700 |
| commit | 55231bb8d3e1a4e2752ac3d444c4287eb0ca4e8b (patch) | |
| tree | 953c537a5c66e328e9f4ab29626cf738112d53c0 /Minecraft.World/TakeFlowerGoal.cpp | |
| parent | 7d6658fe5b3095f35093701b5ab669ffc291e875 (diff) | |
Remove AUTO_VAR macro and _toString function (#592)
Diffstat (limited to 'Minecraft.World/TakeFlowerGoal.cpp')
| -rw-r--r-- | Minecraft.World/TakeFlowerGoal.cpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/Minecraft.World/TakeFlowerGoal.cpp b/Minecraft.World/TakeFlowerGoal.cpp index feb87093..48db34d3 100644 --- a/Minecraft.World/TakeFlowerGoal.cpp +++ b/Minecraft.World/TakeFlowerGoal.cpp @@ -24,24 +24,31 @@ bool TakeFlowerGoal::canUse() if (!villager->level->isDay()) return false; vector<shared_ptr<Entity> > *golems = villager->level->getEntitiesOfClass(typeid(VillagerGolem), villager->bb->grow(6, 2, 6)); - if (golems->size() == 0) + if ( golems == nullptr ) + return false; + + if ( golems->size() == 0) { delete golems; return false; } - //for (Entity e : golems) - for(AUTO_VAR(it,golems->begin()); it != golems->end(); ++it) - { - shared_ptr<VillagerGolem> vg = dynamic_pointer_cast<VillagerGolem>(*it); - if (vg->getOfferFlowerTick() > 0) + for (auto entity : *golems ) + { + if ( entity == nullptr ) + continue; + + // safe to call std::static_pointer_cast because of getEntitiesOfClass(typeid(VillagerGolem), ...) makes sure we do not have entities of any other type. + auto vg = std::static_pointer_cast<VillagerGolem>(entity); + if ( vg && vg->getOfferFlowerTick() > 0) { - golem = weak_ptr<VillagerGolem>(vg); - break; + golem = vg; + delete golems; + return true; } } delete golems; - return golem.lock() != NULL; + return false; } bool TakeFlowerGoal::canContinueToUse() |
