diff options
author | 12xx12 <44411062+12xx12@users.noreply.github.com> | 2021-03-15 03:47:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-15 03:47:55 +0100 |
commit | 243083e01a4b6b496ca4c0ed0a4a33499cd41936 (patch) | |
tree | 49f7149f1b765cad90cc1192dceca35e30530c8e /src/BlockEntities/BannerEntity.cpp | |
parent | Derive HugeMushroom from the base handler (diff) | |
download | cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar.gz cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar.bz2 cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar.lz cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar.xz cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.tar.zst cuberite-243083e01a4b6b496ca4c0ed0a4a33499cd41936.zip |
Diffstat (limited to 'src/BlockEntities/BannerEntity.cpp')
-rw-r--r-- | src/BlockEntities/BannerEntity.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/BlockEntities/BannerEntity.cpp b/src/BlockEntities/BannerEntity.cpp new file mode 100644 index 000000000..d7fda3cf7 --- /dev/null +++ b/src/BlockEntities/BannerEntity.cpp @@ -0,0 +1,78 @@ + +// BannerEntity.cpp + +// Implements the cBannerEntity class representing a banner block in the world + +#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules +#include "BannerEntity.h" + +#include "../World.h" +#include "../ClientHandle.h" + + + + + +cBannerEntity::cBannerEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World) : + cBannerEntity(a_BlockType, a_BlockMeta, a_Pos, a_World, 1) +{ +} + + + + + +cBannerEntity::cBannerEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World, unsigned char a_BaseColor): + Super(a_BlockType, a_BlockMeta, a_Pos, a_World), + m_BaseColor(a_BaseColor) +{ + ASSERT((a_BlockType == E_BLOCK_WALL_BANNER) || (a_BlockType == E_BLOCK_STANDING_BANNER)); +} + + + + + +void cBannerEntity::CopyFrom(const cBlockEntity & a_Src) +{ + Super::CopyFrom(a_Src); + auto & src = static_cast<const cBannerEntity &>(a_Src); + m_BaseColor = src.m_BaseColor; +} + + + + + +void cBannerEntity::SendTo(cClientHandle & a_Client) +{ + a_Client.SendBlockChange(m_Pos.x, m_Pos.y, m_Pos.z, m_BlockType, m_BlockMeta); + a_Client.SendUpdateBlockEntity(*this); +} + + + + + +cItems cBannerEntity::ConvertToPickups() const +{ + return cItem(E_ITEM_BANNER, 1, static_cast<NIBBLETYPE>(GetBaseColor())); +} + + + + + +unsigned char cBannerEntity::GetBaseColor() const +{ + return m_BaseColor; +} + + + + + +void cBannerEntity::SetBaseColor(const unsigned char a_Color) +{ + m_BaseColor = a_Color; +} |