aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/AgableMob.h
blob: 49f76f9ed862f444583ffb8fde8b024fcbc07ff9 (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
35
36
37
38
39
#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> player);

protected:
	virtual void defineSynchedData();

public:
	virtual shared_ptr<AgableMob> getBreedOffspring(shared_ptr<AgableMob> 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);
};