57 lines
898 B
C++
57 lines
898 B
C++
|
|
#pragma once
|
|
|
|
#include "PassiveMonster.h"
|
|
|
|
|
|
|
|
|
|
|
|
class cVillager :
|
|
public cPassiveMonster
|
|
{
|
|
typedef cPassiveMonster super;
|
|
|
|
public:
|
|
|
|
enum eVillagerType
|
|
{
|
|
vtFarmer = 0,
|
|
vtLibrarian = 1,
|
|
vtPriest = 2,
|
|
vtBlacksmith = 3,
|
|
vtButcher = 4,
|
|
vtGeneric = 5,
|
|
vtMax
|
|
} ;
|
|
|
|
cVillager(eVillagerType VillagerType);
|
|
|
|
CLASS_PROTODEF(cVillager);
|
|
|
|
// Override functions
|
|
virtual void DoTakeDamage(TakeDamageInfo & a_TDI) override;
|
|
virtual void Tick (float a_Dt, cChunk & a_Chunk) override;
|
|
|
|
// cVillager functions
|
|
void HandleFarmer();
|
|
bool IsBlockFarmable(BLOCKTYPE a_BlockType);
|
|
|
|
// Get and set functions.
|
|
int GetVilType(void) const { return m_Type; }
|
|
Vector3i GetCropsPos(void) const { return m_CropsPos; }
|
|
bool DidFindCrops(void) const { return m_DidFindCrops; }
|
|
|
|
private:
|
|
|
|
int m_ActionCountDown;
|
|
int m_Type;
|
|
bool m_DidFindCrops;
|
|
Vector3i m_CropsPos;
|
|
|
|
} ;
|
|
|
|
|
|
|
|
|