From 1b4b905f75c984c3bd9bc9dc553dbc86a8c5276e Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 19 Oct 2012 18:30:46 +0000 Subject: 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 --- source/Mobs/Blaze.cpp | 49 +++++++++++++++++++++++++++++++++++++++++ source/Mobs/Blaze.h | 14 ++++++++++++ source/Mobs/Magmacube.cpp | 49 +++++++++++++++++++++++++++++++++++++++++ source/Mobs/Magmacube.h | 14 ++++++++++++ source/Mobs/Mooshroom.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++++++ source/Mobs/Mooshroom.h | 14 ++++++++++++ source/Mobs/Ocelot.cpp | 45 +++++++++++++++++++++++++++++++++++++ source/Mobs/Ocelot.h | 14 ++++++++++++ source/Mobs/Villager.cpp | 45 +++++++++++++++++++++++++++++++++++++ source/Mobs/Villager.h | 14 ++++++++++++ 10 files changed, 314 insertions(+) create mode 100644 source/Mobs/Blaze.cpp create mode 100644 source/Mobs/Blaze.h create mode 100644 source/Mobs/Magmacube.cpp create mode 100644 source/Mobs/Magmacube.h create mode 100644 source/Mobs/Mooshroom.cpp create mode 100644 source/Mobs/Mooshroom.h create mode 100644 source/Mobs/Ocelot.cpp create mode 100644 source/Mobs/Ocelot.h create mode 100644 source/Mobs/Villager.cpp create mode 100644 source/Mobs/Villager.h (limited to 'source/Mobs') diff --git a/source/Mobs/Blaze.cpp b/source/Mobs/Blaze.cpp new file mode 100644 index 000000000..c3e68518f --- /dev/null +++ b/source/Mobs/Blaze.cpp @@ -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 ); +} + + + + diff --git a/source/Mobs/Blaze.h b/source/Mobs/Blaze.h new file mode 100644 index 000000000..bd722d529 --- /dev/null +++ b/source/Mobs/Blaze.h @@ -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 ); +}; diff --git a/source/Mobs/Magmacube.cpp b/source/Mobs/Magmacube.cpp new file mode 100644 index 000000000..d73041baf --- /dev/null +++ b/source/Mobs/Magmacube.cpp @@ -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 ); +} + + + + diff --git a/source/Mobs/Magmacube.h b/source/Mobs/Magmacube.h new file mode 100644 index 000000000..1a36ef2c1 --- /dev/null +++ b/source/Mobs/Magmacube.h @@ -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 ); +}; diff --git a/source/Mobs/Mooshroom.cpp b/source/Mobs/Mooshroom.cpp new file mode 100644 index 000000000..f70349e97 --- /dev/null +++ b/source/Mobs/Mooshroom.cpp @@ -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 ); +} + + + + diff --git a/source/Mobs/Mooshroom.h b/source/Mobs/Mooshroom.h new file mode 100644 index 000000000..ea8ed5b08 --- /dev/null +++ b/source/Mobs/Mooshroom.h @@ -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 ); +}; diff --git a/source/Mobs/Ocelot.cpp b/source/Mobs/Ocelot.cpp new file mode 100644 index 000000000..ec50a9656 --- /dev/null +++ b/source/Mobs/Ocelot.cpp @@ -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 ); +} + + + + diff --git a/source/Mobs/Ocelot.h b/source/Mobs/Ocelot.h new file mode 100644 index 000000000..87571022f --- /dev/null +++ b/source/Mobs/Ocelot.h @@ -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 ); +}; diff --git a/source/Mobs/Villager.cpp b/source/Mobs/Villager.cpp new file mode 100644 index 000000000..65b2ac5b5 --- /dev/null +++ b/source/Mobs/Villager.cpp @@ -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 ); +} + + + + diff --git a/source/Mobs/Villager.h b/source/Mobs/Villager.h new file mode 100644 index 000000000..02272378b --- /dev/null +++ b/source/Mobs/Villager.h @@ -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 ); +}; -- cgit v1.2.3