Added spawn eggs with mobs (patch committed by Luksor)
git-svn-id: http://mc-server.googlecode.com/svn/trunk@979 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
2a197705ac
commit
1b4b905f75
@ -726,6 +726,14 @@
|
||||
RelativePath="..\source\Mobs\AggressiveMonster.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Blaze.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Blaze.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Cavespider.cpp"
|
||||
>
|
||||
@ -774,6 +782,14 @@
|
||||
RelativePath="..\source\Mobs\Ghast.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Magmacube.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Magmacube.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Monster.cpp"
|
||||
>
|
||||
@ -782,6 +798,22 @@
|
||||
RelativePath="..\source\Mobs\Monster.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Mooshroom.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Mooshroom.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Ocelot.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Ocelot.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\PassiveAggressiveMonster.cpp"
|
||||
>
|
||||
@ -854,6 +886,14 @@
|
||||
RelativePath="..\source\Mobs\Squid.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Villager.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Villager.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\source\Mobs\Wolf.cpp"
|
||||
>
|
||||
|
@ -22,6 +22,11 @@
|
||||
#include "../Mobs/Cavespider.h"
|
||||
#include "../Mobs/Ghast.h"
|
||||
#include "../Mobs/Zombiepigman.h"
|
||||
#include "../Mobs/Villager.h"
|
||||
#include "../Mobs/Ocelot.h"
|
||||
#include "../Mobs/Mooshroom.h"
|
||||
#include "../Mobs/Magmacube.h"
|
||||
#include "../Mobs/Blaze.h"
|
||||
|
||||
|
||||
|
||||
@ -53,8 +58,118 @@ public:
|
||||
|
||||
cMonster * Monster = NULL;
|
||||
|
||||
Monster = new cZombie();
|
||||
|
||||
switch (a_Item->m_ItemDamage)
|
||||
{
|
||||
case E_META_SPAWN_EGG_BLAZE:
|
||||
{
|
||||
Monster = new cBlaze();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_CAVE_SPIDER:
|
||||
{
|
||||
Monster = new cCavespider();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_CHICKEN:
|
||||
{
|
||||
Monster = new cChicken();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_COW:
|
||||
{
|
||||
Monster = new cCow();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_CREEPER:
|
||||
{
|
||||
Monster = new cCreeper();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_ENDERMAN:
|
||||
{
|
||||
Monster = new cEnderman();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_GHAST:
|
||||
{
|
||||
Monster = new cGhast();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_MAGMA_CUBE:
|
||||
{
|
||||
Monster = new cMagmacube();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_MOOSHROOM:
|
||||
{
|
||||
Monster = new cMooshroom();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_OCELOT:
|
||||
{
|
||||
Monster = new cOcelot();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_PIG:
|
||||
{
|
||||
Monster = new cPig();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SHEEP:
|
||||
{
|
||||
Monster = new cSheep();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SILVERFISH:
|
||||
{
|
||||
Monster = new cSilverfish();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SKELETON:
|
||||
{
|
||||
Monster = new cSkeleton();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SLIME:
|
||||
{
|
||||
Monster = new cSlime();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SPIDER:
|
||||
{
|
||||
Monster = new cSpider();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_SQUID:
|
||||
{
|
||||
Monster = new cSquid();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_VILLAGER:
|
||||
{
|
||||
Monster = new cVillager();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_WOLF:
|
||||
{
|
||||
Monster = new cWolf();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_ZOMBIE:
|
||||
{
|
||||
Monster = new cZombie();
|
||||
break;
|
||||
}
|
||||
case E_META_SPAWN_EGG_ZOMBIE_PIGMAN:
|
||||
{
|
||||
Monster = new cZombiepigman();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Monster->Initialize(a_World);
|
||||
Monster->TeleportTo(a_BlockX + 0.5, a_BlockY, a_BlockZ + 0.5);
|
||||
a_World->BroadcastSpawn(*Monster);
|
||||
|
49
source/Mobs/Blaze.cpp
Normal file
49
source/Mobs/Blaze.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "Blaze.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cBlaze::cBlaze()
|
||||
{
|
||||
m_MobType = 61;
|
||||
GetMonsterConfig("Blaze");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cBlaze::~cBlaze()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cBlaze::IsA( const char* a_EntityType )
|
||||
{
|
||||
if( strcmp( a_EntityType, "cBlaze" ) == 0 ) return true;
|
||||
return cMonster::IsA( a_EntityType );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cBlaze::KilledBy( cEntity* a_Killer )
|
||||
{
|
||||
cItems Drops;
|
||||
AddRandomDropItem(Drops, 0, 1, E_ITEM_BLAZE_ROD);
|
||||
m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
|
||||
|
||||
cMonster::KilledBy( a_Killer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
14
source/Mobs/Blaze.h
Normal file
14
source/Mobs/Blaze.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "AggressiveMonster.h"
|
||||
|
||||
class cBlaze : public cAggressiveMonster
|
||||
{
|
||||
public:
|
||||
cBlaze();
|
||||
~cBlaze();
|
||||
|
||||
virtual bool IsA( const char* a_EntityType );
|
||||
|
||||
virtual void KilledBy( cEntity* a_Killer );
|
||||
};
|
49
source/Mobs/Magmacube.cpp
Normal file
49
source/Mobs/Magmacube.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "Magmacube.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cMagmacube::cMagmacube()
|
||||
{
|
||||
m_MobType = 62;
|
||||
GetMonsterConfig("Magmacube");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cMagmacube::~cMagmacube()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cMagmacube::IsA( const char* a_EntityType )
|
||||
{
|
||||
if( strcmp( a_EntityType, "cMagmacube" ) == 0 ) return true;
|
||||
return cMonster::IsA( a_EntityType );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cMagmacube::KilledBy( cEntity* a_Killer )
|
||||
{
|
||||
cItems Drops;
|
||||
AddRandomDropItem(Drops, 0, 1, E_ITEM_MAGMA_CREAM);
|
||||
m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
|
||||
|
||||
cMonster::KilledBy( a_Killer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
14
source/Mobs/Magmacube.h
Normal file
14
source/Mobs/Magmacube.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "AggressiveMonster.h"
|
||||
|
||||
class cMagmacube : public cAggressiveMonster
|
||||
{
|
||||
public:
|
||||
cMagmacube();
|
||||
~cMagmacube();
|
||||
|
||||
virtual bool IsA( const char* a_EntityType );
|
||||
|
||||
virtual void KilledBy( cEntity* a_Killer );
|
||||
};
|
56
source/Mobs/Mooshroom.cpp
Normal file
56
source/Mobs/Mooshroom.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "Mooshroom.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// TODO: Milk Cow
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cMooshroom::cMooshroom()
|
||||
{
|
||||
m_MobType = 96;
|
||||
GetMonsterConfig("Mooshroom");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cMooshroom::~cMooshroom()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cMooshroom::IsA( const char* a_EntityType )
|
||||
{
|
||||
if( strcmp( a_EntityType, "cMooshroom" ) == 0 ) return true;
|
||||
return cMonster::IsA( a_EntityType );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cMooshroom::KilledBy( cEntity* a_Killer )
|
||||
{
|
||||
cItems Drops;
|
||||
AddRandomDropItem(Drops, 0, 2, E_ITEM_LEATHER);
|
||||
AddRandomDropItem(Drops, 1, 3, (GetMetaData() == BURNING) ? E_ITEM_STEAK : E_ITEM_RAW_BEEF);
|
||||
m_World->SpawnItemPickups(Drops, m_Pos.x, m_Pos.y, m_Pos.z);
|
||||
|
||||
cMonster::KilledBy( a_Killer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
14
source/Mobs/Mooshroom.h
Normal file
14
source/Mobs/Mooshroom.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "PassiveMonster.h"
|
||||
|
||||
class cMooshroom : public cPassiveMonster
|
||||
{
|
||||
public:
|
||||
cMooshroom();
|
||||
~cMooshroom();
|
||||
|
||||
virtual bool IsA( const char* a_EntityType );
|
||||
|
||||
virtual void KilledBy( cEntity* a_Killer );
|
||||
};
|
45
source/Mobs/Ocelot.cpp
Normal file
45
source/Mobs/Ocelot.cpp
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "Ocelot.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cOcelot::cOcelot()
|
||||
{
|
||||
m_MobType = 98;
|
||||
GetMonsterConfig("Ocelot");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cOcelot::~cOcelot()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cOcelot::IsA( const char* a_EntityType )
|
||||
{
|
||||
if( strcmp( a_EntityType, "cOcelot" ) == 0 ) return true;
|
||||
return cMonster::IsA( a_EntityType );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cOcelot::KilledBy( cEntity* a_Killer )
|
||||
{
|
||||
cMonster::KilledBy( a_Killer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
14
source/Mobs/Ocelot.h
Normal file
14
source/Mobs/Ocelot.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "PassiveMonster.h"
|
||||
|
||||
class cOcelot : public cPassiveMonster
|
||||
{
|
||||
public:
|
||||
cOcelot();
|
||||
~cOcelot();
|
||||
|
||||
virtual bool IsA( const char* a_EntityType );
|
||||
|
||||
virtual void KilledBy( cEntity* a_Killer );
|
||||
};
|
45
source/Mobs/Villager.cpp
Normal file
45
source/Mobs/Villager.cpp
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
||||
|
||||
#include "Villager.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cVillager::cVillager()
|
||||
{
|
||||
m_MobType = 120;
|
||||
GetMonsterConfig("Villager");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cVillager::~cVillager()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cVillager::IsA( const char* a_EntityType )
|
||||
{
|
||||
if( strcmp( a_EntityType, "cVillager" ) == 0 ) return true;
|
||||
return cMonster::IsA( a_EntityType );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cVillager::KilledBy( cEntity* a_Killer )
|
||||
{
|
||||
cMonster::KilledBy( a_Killer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
14
source/Mobs/Villager.h
Normal file
14
source/Mobs/Villager.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "PassiveMonster.h"
|
||||
|
||||
class cVillager : public cPassiveMonster
|
||||
{
|
||||
public:
|
||||
cVillager();
|
||||
~cVillager();
|
||||
|
||||
virtual bool IsA( const char* a_EntityType );
|
||||
|
||||
virtual void KilledBy( cEntity* a_Killer );
|
||||
};
|
Loading…
Reference in New Issue
Block a user