diff options
author | Mattes D <github@xoft.cz> | 2014-12-01 15:59:57 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-12-01 15:59:57 +0100 |
commit | a13c75085e755d9456e395edd14543e983a0601d (patch) | |
tree | 5a2c61db0c715774fbc8a55918cdcd57c405c1aa /src/BlockEntities/MobSpawnerEntity.h | |
parent | Merge pull request #1624 from mc-server/LuaDeprecating (diff) | |
parent | MobSpawner fixes. (diff) | |
download | cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar.gz cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar.bz2 cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar.lz cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar.xz cuberite-a13c75085e755d9456e395edd14543e983a0601d.tar.zst cuberite-a13c75085e755d9456e395edd14543e983a0601d.zip |
Diffstat (limited to 'src/BlockEntities/MobSpawnerEntity.h')
-rw-r--r-- | src/BlockEntities/MobSpawnerEntity.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/BlockEntities/MobSpawnerEntity.h b/src/BlockEntities/MobSpawnerEntity.h new file mode 100644 index 000000000..594b5301e --- /dev/null +++ b/src/BlockEntities/MobSpawnerEntity.h @@ -0,0 +1,78 @@ +// MobSpawnerEntity.h + +// Declares the cMobSpawnerEntity class representing a single mob spawner in the world + + + + + +#pragma once + +#include "BlockEntity.h" +#include "../Entities/Player.h" + + + + + +// tolua_begin + +class cMobSpawnerEntity : + public cBlockEntity +{ + typedef cBlockEntity super; +public: + + // tolua_end + + cMobSpawnerEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World); + + virtual void SendTo(cClientHandle & a_Client) override; + virtual void UsedBy(cPlayer * a_Player) override; + virtual bool Tick(float a_Dt, cChunk & a_Chunk) override; + + // tolua_begin + + /** Upate the active flag from the mob spawner. This function will called every 5 seconds from the Tick() function. */ + void UpdateActiveState(void); + + /** Sets the spawn delay to a new random value. */ + void ResetTimer(void); + + /** Spawns the entity. This function automaticly change the spawn delay! */ + void SpawnEntity(void); + + /** Returns the entity type that will be spawn by this mob spawner. */ + eMonsterType GetEntity(void) const { return m_Entity; } + + /** Sets the entity type who will be spawn by this mob spawner. */ + void SetEntity(eMonsterType a_EntityType) { m_Entity = a_EntityType; } + + /** Returns the spawn delay. This is the tick delay that is needed to spawn new monsters. */ + short GetSpawnDelay(void) const { return m_SpawnDelay; } + + /** Sets the spawn delay. */ + void SetSpawnDelay(short a_Delay) { m_SpawnDelay = a_Delay; } + + /** Returns the amount of the nearby players in a 16-block radius. */ + int GetNearbyPlayersNum(void); + + /** Returns the amount of this monster type in a 8-block radius (Y: 4-block radius). */ + int GetNearbyMonsterNum(eMonsterType a_EntityType); + + // tolua_end + + static const char * GetClassStatic(void) { return "cMobSpawnerEntity"; } + +private: + /** The entity to spawn. */ + eMonsterType m_Entity; + + short m_SpawnDelay; + + bool m_IsActive; +} ; // tolua_end + + + + |