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 <me@bearbin.net>
This commit is contained in:
co-authored by
Alexander Harkness
parent
6a0669fb98
commit
68cced73af
+22
-31
@@ -15,16 +15,30 @@ class cBlockWallSignHandler:
|
||||
|
||||
public:
|
||||
|
||||
cBlockWallSignHandler(BLOCKTYPE a_BlockType):
|
||||
Super(a_BlockType)
|
||||
using Super::Super;
|
||||
|
||||
/** Converts the block face of the neighbor to which the wallsign is attached to the wallsign block's meta. */
|
||||
static NIBBLETYPE BlockFaceToMetaData(eBlockFace a_NeighborBlockFace)
|
||||
{
|
||||
switch (a_NeighborBlockFace)
|
||||
{
|
||||
case BLOCK_FACE_ZM: return 0x02;
|
||||
case BLOCK_FACE_ZP: return 0x03;
|
||||
case BLOCK_FACE_XM: return 0x04;
|
||||
case BLOCK_FACE_XP: return 0x05;
|
||||
case BLOCK_FACE_NONE:
|
||||
case BLOCK_FACE_YP:
|
||||
case BLOCK_FACE_YM:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0x02;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
return cItem(E_ITEM_SIGN, 1, 0);
|
||||
}
|
||||
@@ -33,7 +47,7 @@ public:
|
||||
|
||||
|
||||
|
||||
virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, const Vector3i a_RelPos, const cChunk & a_Chunk) override
|
||||
virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, const Vector3i a_RelPos, const cChunk & a_Chunk) const override
|
||||
{
|
||||
auto NeighborPos = a_RelPos + GetOffsetBehindTheSign(a_Chunk.GetMeta(a_RelPos));
|
||||
BLOCKTYPE NeighborType;
|
||||
@@ -68,30 +82,7 @@ public:
|
||||
|
||||
|
||||
|
||||
/** Converts the block face of the neighbor to which the wallsign is attached to the wallsign block's meta. */
|
||||
static NIBBLETYPE BlockFaceToMetaData(eBlockFace a_NeighborBlockFace)
|
||||
{
|
||||
switch (a_NeighborBlockFace)
|
||||
{
|
||||
case BLOCK_FACE_ZM: return 0x02;
|
||||
case BLOCK_FACE_ZP: return 0x03;
|
||||
case BLOCK_FACE_XM: return 0x04;
|
||||
case BLOCK_FACE_XP: return 0x05;
|
||||
case BLOCK_FACE_NONE:
|
||||
case BLOCK_FACE_YP:
|
||||
case BLOCK_FACE_YM:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0x02;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) override
|
||||
virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
|
||||
{
|
||||
UNUSED(a_Meta);
|
||||
return 13;
|
||||
|
||||
Reference in New Issue
Block a user