aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/AgableMob.h
blob: 0020e87611048ba3d87903e720f7dddbbe7fc0e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include "PathfinderMob.h"

class AgableMob : public PathfinderMob
{
private:
	static const int DATA_AGE_ID = 12;

	float registeredBBWidth;
	float registeredBBHeight;

public:
	AgableMob(Level *level);

	virtual bool interact(shared_ptr<Player> player);

protected:
	virtual void defineSynchedData();

public:
	virtual shared_ptr<AgableMob> getBreedOffspring(shared_ptr<AgableMob> target) = 0;
	virtual int getAge();
	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);
};