aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/TakeFlowerGoal.cpp
diff options
context:
space:
mode:
authorvoid_17 <61356189+void2012@users.noreply.github.com>2026-03-06 02:11:18 +0700
committerGitHub <noreply@github.com>2026-03-06 02:11:18 +0700
commit55231bb8d3e1a4e2752ac3d444c4287eb0ca4e8b (patch)
tree953c537a5c66e328e9f4ab29626cf738112d53c0 /Minecraft.World/TakeFlowerGoal.cpp
parent7d6658fe5b3095f35093701b5ab669ffc291e875 (diff)
Remove AUTO_VAR macro and _toString function (#592)
Diffstat (limited to 'Minecraft.World/TakeFlowerGoal.cpp')
-rw-r--r--Minecraft.World/TakeFlowerGoal.cpp25
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()