#include "stdafx.h" #include "BossMob.h" #include "MultiEntityMob.h" #include "MultiEntityMobPart.h" MultiEntityMobPart::MultiEntityMobPart(shared_ptrparentMob, const wstring &id, float w, float h) : Entity(parentMob->getLevel()), parentMob( parentMob ), id( id ) { // 4J Stu - This function call had to be moved here from the Entity ctor to ensure that // the derived version of the function is called this->defineSynchedData(); setSize(w, h); } void MultiEntityMobPart::defineSynchedData() { } void MultiEntityMobPart::readAdditionalSaveData(CompoundTag *tag) { } void MultiEntityMobPart::addAdditonalSaveData(CompoundTag *tag) { } bool MultiEntityMobPart::isPickable() { return true; } bool MultiEntityMobPart::hurt(DamageSource *source, float damage) { if (auto parent = parentMob.lock()) { return parent->hurt(dynamic_pointer_cast(shared_from_this()), source, damage); } // If the parent doesn't exist, safely ignore the damage to avoid the Crashing return false; } bool MultiEntityMobPart::is(shared_ptr other) { return shared_from_this() == other || parentMob.lock() == dynamic_pointer_cast(other); }