#pragma once #include "PathfinderMob.h" class AgableMob : public PathfinderMob { private: static const int DATA_AGE_ID = 12; public: static const int BABY_START_AGE = -20 * 60 * 20; private: float registeredBBWidth; float registeredBBHeight; public: AgableMob(Level *level); virtual bool mobInteract(shared_ptr player); protected: virtual void defineSynchedData(); public: virtual shared_ptr getBreedOffspring(shared_ptr target) = 0; virtual int getAge(); virtual void ageUp(int seconds); virtual void setAge(int age); virtual void addAdditonalSaveData(CompoundTag *tag); virtual void readAdditionalSaveData(CompoundTag *tag); virtual void aiStep(); virtual bool isBaby(); virtual void updateSize(bool isBaby); protected: virtual void setSize(float w, float h); void internalSetSize(float scale); };