4 #include "../../Blocks/BlockPiston.h"
27 const bool ShouldBeExtended =
Power != 0;
58 if (Offset != FrontOffset)
60 Callback(a_Position + Offset);
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
unsigned char BLOCKTYPE
The datatype used by blockdata.
void AddFaceDirection(int &a_BlockX, int &a_BlockY, int &a_BlockZ, eBlockFace a_BlockFace, bool a_bInverse)
Modifies the specified coords so that they point to the block adjacent to the one specified through i...
constexpr std::array< Vector3i, 6 > RelativeAdjacents
unsigned char Power(const BlockState Block)
static void Update(cChunk &a_Chunk, cChunk &, Vector3i a_Position, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta, const PowerLevel Power)
static PowerLevel GetPowerDeliveredToPosition(const cChunk &a_Chunk, Vector3i a_Position, BLOCKTYPE a_BlockType, Vector3i a_QueryPosition, BLOCKTYPE a_QueryBlockType, bool IsLinked)
static void ForValidSourcePositions(const cChunk &a_Chunk, Vector3i a_Position, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta, ForEachSourceCallback &Callback)
static void RetractPiston(Vector3i a_BlockPos, cWorld &a_World)
static void ExtendPiston(Vector3i a_BlockPos, cWorld &a_World)
static eBlockFace MetaDataToDirection(NIBBLETYPE a_MetaData)
static bool IsExtended(NIBBLETYPE a_PistonMeta)
Returns true if the piston (with the specified meta) is extended.
cChunkCoords GetPos() const
cWorld * GetWorld(void) const
static Vector3i RelativeToAbsolute(Vector3i a_RelBlockPosition, cChunkCoords a_ChunkCoords)
Converts relative block coordinates into absolute coordinates with a known chunk location.
void CheckIndirectPower()
Callback invoked for blocks supporting quasiconnectivity.