From 68cced73afe546328cf94ed07c57deee47bfadec Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sun, 20 Sep 2020 14:50:52 +0100 Subject: BlockHandler initialisation is a constant expression (#4891) * BlockHandler initialisation is a constant expression If we can't make it all namespaces, this is the next best I guess. + Tag handlers constexpr, const as needed + Inherit constructors * Privatise handler functions * More constexpr Co-authored-by: Alexander Harkness --- src/Blocks/BlockEntity.h | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'src/Blocks/BlockEntity.h') diff --git a/src/Blocks/BlockEntity.h b/src/Blocks/BlockEntity.h index 9fbb77a1f..b1aee7526 100644 --- a/src/Blocks/BlockEntity.h +++ b/src/Blocks/BlockEntity.h @@ -19,14 +19,9 @@ class cBlockEntityHandler: public: - cBlockEntityHandler(BLOCKTYPE a_BlockType): - Super(a_BlockType) - { - } - - - + using Super::Super; +private: virtual bool OnUse( cChunkInterface & a_ChunkInterface, @@ -35,7 +30,7 @@ public: const Vector3i a_BlockPos, eBlockFace a_BlockFace, const Vector3i a_CursorPos - ) override + ) const override { return a_ChunkInterface.UseBlockEntity(&a_Player, a_BlockPos.x, a_BlockPos.y, a_BlockPos.z); } @@ -44,7 +39,7 @@ public: - virtual bool IsUseable() override + virtual bool IsUseable() const override { return true; } @@ -62,16 +57,14 @@ class cContainerEntityHandler: { public: - cContainerEntityHandler(BLOCKTYPE a_BlockType): + constexpr cContainerEntityHandler(BLOCKTYPE a_BlockType): Base(a_BlockType) { } +private: - - - - virtual cItems ConvertToPickups(NIBBLETYPE a_BlockMeta, cBlockEntity * a_BlockEntity, const cEntity * a_Digger, const cItem * a_Tool) override + virtual cItems ConvertToPickups(NIBBLETYPE a_BlockMeta, cBlockEntity * a_BlockEntity, const cEntity * a_Digger, const cItem * a_Tool) const override { // Reset meta to 0 cItems res(cItem(Base::m_BlockType, 1, 0)); -- cgit v1.2.3