summaryrefslogtreecommitdiffstats
path: root/src/BlockEntities/BannerEntity.cpp
diff options
context:
space:
mode:
author12xx12 <44411062+12xx12@users.noreply.github.com>2021-03-15 03:47:55 +0100
committerGitHub <noreply@github.com>2021-03-15 03:47:55 +0100
commit243083e01a4b6b496ca4c0ed0a4a33499cd41936 (patch)
tree49f7149f1b765cad90cc1192dceca35e30530c8e /src/BlockEntities/BannerEntity.cpp
parentDerive HugeMushroom from the base handler (diff)
downloadcuberite-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.cpp78
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;
+}