diff options
| author | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
|---|---|---|
| committer | Loki Rautio <lokirautio@gmail.com> | 2026-03-04 03:56:03 -0600 |
| commit | 42aec6dac53dffa6afe072560a7e1d4986112538 (patch) | |
| tree | 0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.World/TamableAnimal.cpp | |
| parent | c9d58eeac7c72f0b3038e084667b4d89a6249fce (diff) | |
| parent | ef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff) | |
Merge branch 'main' into pr/win64-world-saves
# Conflicts:
# Minecraft.Client/MinecraftServer.cpp
# README.md
Diffstat (limited to 'Minecraft.World/TamableAnimal.cpp')
| -rw-r--r-- | Minecraft.World/TamableAnimal.cpp | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/Minecraft.World/TamableAnimal.cpp b/Minecraft.World/TamableAnimal.cpp index b065d7bd..2a3ea037 100644 --- a/Minecraft.World/TamableAnimal.cpp +++ b/Minecraft.World/TamableAnimal.cpp @@ -68,6 +68,7 @@ void TamableAnimal::readAdditionalSaveData(CompoundTag *tag) setTame(true); } sitGoal->wantToSit(tag->getBoolean(L"Sitting")); + setSitting(tag->getBoolean(L"Sitting")); } void TamableAnimal::spawnTamingParticles(bool success) @@ -148,7 +149,7 @@ void TamableAnimal::setOwnerUUID(const wstring &name) entityData->set(DATA_OWNERUUID_ID, name); } -shared_ptr<Mob> TamableAnimal::getOwner() +shared_ptr<Entity> TamableAnimal::getOwner() { return level->getPlayerByUUID(getOwnerUUID()); } @@ -156,4 +157,39 @@ shared_ptr<Mob> TamableAnimal::getOwner() SitGoal *TamableAnimal::getSitGoal() { return sitGoal; +} + +bool TamableAnimal::wantsToAttack(shared_ptr<LivingEntity> target, shared_ptr<LivingEntity> owner) +{ + return true; +} + +Team *TamableAnimal::getTeam() +{ + if (isTame()) + { + shared_ptr<LivingEntity> owner = dynamic_pointer_cast<LivingEntity>(getOwner()); + if (owner != NULL) + { + return owner->getTeam(); + } + } + return Animal::getTeam(); +} + +bool TamableAnimal::isAlliedTo(shared_ptr<LivingEntity> other) +{ + if (isTame()) + { + shared_ptr<LivingEntity> owner = dynamic_pointer_cast<LivingEntity>(getOwner()); + if (other == owner) + { + return true; + } + if (owner != NULL) + { + return owner->isAlliedTo(other); + } + } + return Animal::isAlliedTo(other); }
\ No newline at end of file |
