1
0

Moved the random code to a function (cSheep::GenerateNaturalRandomColor())

This commit is contained in:
Howaner 2014-06-30 20:23:17 +02:00
parent 20b32fc44e
commit c3cde6232f
2 changed files with 47 additions and 36 deletions

View File

@ -20,39 +20,12 @@ cSheep::cSheep(int a_Color) :
// Generate random wool color. // Generate random wool color.
if (m_WoolColor == -1) if (m_WoolColor == -1)
{ {
cFastRandom Random; m_WoolColor = GenerateNaturalRandomColor();
int Chance = Random.NextInt(101); }
if (Chance <= 81) if ((m_WoolColor < 0) || (m_WoolColor > 15))
{ {
// White m_WoolColor = 0;
m_WoolColor = 0;
}
else if (Chance <= 86)
{
// Black
m_WoolColor = 15;
}
else if (Chance <= 91)
{
// Grey
m_WoolColor = 7;
}
else if (Chance <= 96)
{
// Light grey
m_WoolColor = 8;
}
else if (Chance <= 99)
{
// Brown
m_WoolColor = 12;
}
else
{
// Pink
m_WoolColor = 6;
}
} }
} }
@ -148,3 +121,38 @@ void cSheep::Tick(float a_Dt, cChunk & a_Chunk)
} }
} }
NIBBLETYPE cSheep::GenerateNaturalRandomColor(void)
{
cFastRandom Random;
int Chance = Random.NextInt(101);
if (Chance <= 81)
{
return E_META_WOOL_WHITE;
}
else if (Chance <= 86)
{
return E_META_WOOL_BLACK;
}
else if (Chance <= 91)
{
return E_META_WOOL_GRAY;
}
else if (Chance <= 96)
{
return E_META_WOOL_LIGHTGRAY;
}
else if (Chance <= 99)
{
return E_META_WOOL_BROWN;
}
else
{
return E_META_WOOL_PINK;
}
}

View File

@ -13,24 +13,27 @@ class cSheep :
typedef cPassiveMonster super; typedef cPassiveMonster super;
public: public:
/** Use -1 for random color. */
cSheep(int a_Color = -1); cSheep(int a_Color = -1);
CLASS_PROTODEF(cSheep); CLASS_PROTODEF(cSheep);
virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override; virtual void GetDrops(cItems & a_Drops, cEntity * a_Killer = NULL) override;
virtual void OnRightClicked(cPlayer & a_Player) override; virtual void OnRightClicked(cPlayer & a_Player) override;
virtual void Tick(float a_Dt, cChunk & a_Chunk) override; virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
virtual const cItem GetFollowedItem(void) const override { return cItem(E_ITEM_WHEAT); } virtual const cItem GetFollowedItem(void) const override { return cItem(E_ITEM_WHEAT); }
static NIBBLETYPE GenerateNaturalRandomColor(void);
bool IsSheared(void) const { return m_IsSheared; } bool IsSheared(void) const { return m_IsSheared; }
void SetSheared(bool a_IsSheared) { m_IsSheared = a_IsSheared; } void SetSheared(bool a_IsSheared) { m_IsSheared = a_IsSheared; }
int GetFurColor(void) const { return m_WoolColor; } int GetFurColor(void) const { return m_WoolColor; }
void SetFurColor(bool a_WoolColor) { m_WoolColor = a_WoolColor; } void SetFurColor(int a_WoolColor) { m_WoolColor = a_WoolColor; }
private: private:
bool m_IsSheared; bool m_IsSheared;
int m_WoolColor; int m_WoolColor;
int m_TimeToStopEating; int m_TimeToStopEating;