diff options
Diffstat (limited to 'Minecraft.World/BreedGoal.h')
| -rw-r--r-- | Minecraft.World/BreedGoal.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Minecraft.World/BreedGoal.h b/Minecraft.World/BreedGoal.h new file mode 100644 index 00000000..d2b47e7d --- /dev/null +++ b/Minecraft.World/BreedGoal.h @@ -0,0 +1,32 @@ +#pragma once + +#include "Goal.h" + +class Animal; +class Level; + +class BreedGoal : public Goal +{ +private: + Animal *animal; // Owner of this goal + Level *level; + weak_ptr<Animal> partner; + int loveTime; + float speed; + +public: + BreedGoal(Animal *animal, float speed); + + virtual bool canUse(); + virtual bool canContinueToUse(); + virtual void stop(); + virtual void tick(); + +private: + shared_ptr<Animal> getFreePartner(); + void breed(); + +public: + // 4J Added override to update ai elements when loading entity from schematics + virtual void setLevel(Level *level) { this->level = level; } +};
\ No newline at end of file |
