17 public cYawRotator<cBlockHandler, 0x03, 0x00, 0x01, 0x02, 0x03>
41 LOGWARNING(
"%s: Unknown metadata: %d", __FUNCTION__, a_Meta);
42 ASSERT(!
"Unknown metadata while determining orientation of repeater!");
58 LOGWARNING(
"%s: Unknown metadata: %d", __FUNCTION__, a_Meta);
59 ASSERT(!
"Unknown metadata while determining orientation of repeater!");
112 if (a_Position.
y <= 0)
@ E_META_REDSTONE_REPEATER_FACING_XP
@ E_META_WOODEN_SLAB_UPSIDE_DOWN
@ E_BLOCK_STAIRS_UPSIDE_DOWN
@ E_META_REDSTONE_REPEATER_FACING_ZP
@ E_META_REDSTONE_REPEATER_FACING_MASK
@ E_META_REDSTONE_REPEATER_FACING_ZM
@ E_META_REDSTONE_REPEATER_FACING_XM
@ E_ITEM_REDSTONE_REPEATER
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
unsigned char BLOCKTYPE
The datatype used by blockdata.
eBlockFace
Block face constants, used in PlayerDigging and PlayerBlockPlacement packets and bbox collision calc.
void LOGWARNING(std::string_view a_Format, const Args &... args)
static bool FullyOccupiesVoxel(BLOCKTYPE Block)
Does this block fully occupy its voxel - is it a 'full' block?
virtual bool CanBeAt(const cChunk &a_Chunk, const Vector3i a_Position, const NIBBLETYPE a_Meta) const override
virtual void OnCancelRightClick(cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const Vector3i a_BlockPos, eBlockFace a_BlockFace) const override
static Vector3i GetLeftCoordinateOffset(NIBBLETYPE a_Meta)
virtual ColourID GetMapBaseColourID(NIBBLETYPE a_Meta) const override
virtual bool OnUse(cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const Vector3i a_BlockPos, eBlockFace a_BlockFace, const Vector3i a_CursorPos) const override
virtual bool IsUseable(void) const override
static Vector3i GetFrontCoordinateOffset(NIBBLETYPE a_Meta)
static Vector3i GetRearCoordinateOffset(NIBBLETYPE a_Meta)
virtual cItems ConvertToPickups(const NIBBLETYPE a_BlockMeta, const cItem *const a_Tool) const override
static bool IsAnySlabType(BLOCKTYPE a_BlockType)
Returns true if the specified blocktype is one of the slabs handled by this handler.
static bool IsAnyStairType(BLOCKTYPE a_Block)
void SetBlockMeta(Vector3i a_BlockPos, NIBBLETYPE a_MetaData)
Sets the meta for the specified block, while keeping the blocktype.
NIBBLETYPE GetBlockMeta(Vector3i a_Pos)
Mixin for blocks whose meta on placement depends on the yaw of the player placing the block.
cMetaRotator< cBlockHandler, BitMask, North, East, South, West, false > Super
virtual void SendBlockTo(int a_BlockX, int a_BlockY, int a_BlockZ, const cPlayer &a_Player)=0
Sends the block on those coords to the player.
void GetBlockTypeMeta(Vector3i a_RelPos, BLOCKTYPE &a_BlockType, NIBBLETYPE &a_BlockMeta) const
This class bridges a vector of cItem for safe access via Lua.
Vector3< T > addedY(T a_AddY) const
Returns a copy of this vector moved by the specified amount on the y axis.