1
0

Item-dropping code rewritten and centralized - now there's only one place to modify if we want to split or merge same-item drops: cWorld:SpawnItemPickups(). Also, mined blocks can now drop more items, and they recognize if they're being mined by the correct tool.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@561 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-06-06 20:18:50 +00:00
parent 116bd7ce34
commit 1cca9b13b3
36 changed files with 1057 additions and 327 deletions

View File

@@ -3,7 +3,14 @@
#include "cChicken.h"
//TODO Drop egg every 5-10 minutes
// TODO Drop egg every 5-10 minutes
cChicken::cChicken()
@@ -12,28 +19,38 @@ cChicken::cChicken()
GetMonsterConfig("Chicken");
}
cChicken::~cChicken()
{
}
bool cChicken::IsA( const char* a_EntityType )
{
if( strcmp( a_EntityType, "cChicken" ) == 0 ) return true;
return cMonster::IsA( a_EntityType );
}
void cChicken::KilledBy( cEntity* a_Killer )
{
//Drops 0-2 Feathers
cMonster::RandomDropItem(E_ITEM_FEATHER, 0, 2);
// Raw Chicken
if(GetMetaData() == BURNING)
{
cMonster::DropItem(E_ITEM_COOKED_CHICKEN, 1);
}else{
cMonster::DropItem(E_ITEM_RAW_CHICKEN, 1);
}
cItems Drops;
AddRandomDropItem(Drops, 0, 2, E_ITEM_FEATHER);
Drops.push_back(cItem((GetMetaData() == BURNING) ? E_ITEM_COOKED_CHICKEN : E_ITEM_RAW_CHICKEN, 1));
m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
cMonster::KilledBy( a_Killer );
}
}