Cuberite
A lightweight, fast and extensible game server for Minecraft
Private Types | Private Member Functions | Static Private Member Functions | Static Private Attributes | List of all members
cBlockVinesHandler Class Referencefinal

#include <BlockVines.h>

Inheritance diagram for cBlockVinesHandler:
Inheritance graph
[legend]
Collaboration diagram for cBlockVinesHandler:
Collaboration graph
[legend]

Private Types

using Super = cBlockHandler
 

Private Member Functions

virtual bool CanBeAt (const cChunk &a_Chunk, const Vector3i a_Position, const NIBBLETYPE a_Meta) const override
 Checks if the block can stay at the specified relative coords in the chunk. More...
 
virtual cItems ConvertToPickups (const NIBBLETYPE a_BlockMeta, const cItem *const a_Tool) const override
 Returns the pickups that would result if the block was mined by a_Digger using a_Tool. More...
 
virtual bool DoesIgnoreBuildCollision (const cWorld &a_World, const cItem &a_HeldItem, const Vector3i a_Position, const NIBBLETYPE a_Meta, const eBlockFace a_ClickedBlockFace, const bool a_ClickedDirectly) const override
 Checks if the player can build "inside" this block. More...
 
virtual ColourID GetMapBaseColourID (NIBBLETYPE a_Meta) const override
 Returns the base colour ID of the block, as will be represented on a map, as per documentation: https://minecraft.wiki/w/Map_item_format. More...
 
virtual NIBBLETYPE MetaMirrorXY (NIBBLETYPE a_Meta) const override
 Mirrors a given block meta around the XY plane. More...
 
virtual NIBBLETYPE MetaMirrorYZ (NIBBLETYPE a_Meta) const override
 Mirros a given block meta around the YZ plane. More...
 
virtual NIBBLETYPE MetaRotateCCW (NIBBLETYPE a_Meta) const override
 Rotates a given block meta counter-clockwise. More...
 
virtual NIBBLETYPE MetaRotateCW (NIBBLETYPE a_Meta) const override
 Rotates a given block meta clockwise. More...
 
virtual void OnNeighborChanged (cChunkInterface &a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor) const override
 Called when a direct neighbor of this block has been changed. More...
 
virtual void OnUpdate (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cBlockPluginInterface &a_PluginInterface, cChunk &a_Chunk, const Vector3i a_RelPos) const override
 Called when the block gets ticked either by a random tick or by a queued tick. More...
 

Static Private Member Functions

static NIBBLETYPE GetMaxMeta (const cChunk &a_Chunk, const Vector3i a_Position, const NIBBLETYPE a_CurrentMeta)
 Returns the meta that has the maximum allowable sides of the vine, given the surroundings and current vine meta. More...
 
static bool IsBlockAttachable (BLOCKTYPE a_BlockType)
 Returns true if the specified block type is good for vines to attach to. More...
 
static char MetaDataToDirection (NIBBLETYPE a_MetaData)
 

Static Private Attributes

static const NIBBLETYPE VINE_LOST_SUPPORT = 16
 
static const NIBBLETYPE VINE_UNCHANGED = 17
 

Additional Inherited Members

- Public Member Functions inherited from cBlockHandler
virtual bool CanSustainPlant (BLOCKTYPE a_Plant) const
 Checks whether the block has an effect on growing the plant. More...
 
constexpr cBlockHandler (BLOCKTYPE a_BlockType)
 
void Check (cChunkInterface &ChunkInterface, cBlockPluginInterface &a_PluginInterface, Vector3i a_RelPos, cChunk &a_Chunk) const
 Called when one of the neighbors gets set; equivalent to MC block update. More...
 
virtual cBoundingBox GetPlacementCollisionBox (BLOCKTYPE a_XM, BLOCKTYPE a_XP, BLOCKTYPE a_YM, BLOCKTYPE a_YP, BLOCKTYPE a_ZM, BLOCKTYPE a_ZP) const
 Returns the relative bounding box that must be entity-free in order for the block to be placed. More...
 
virtual int Grow (cChunk &a_Chunk, Vector3i a_RelPos, int a_NumStages=1) const
 Grows this block, if it supports growing, by the specified amount of stages (at most). More...
 
virtual bool IsInsideBlock (const Vector3d a_RelPosition, const NIBBLETYPE a_BlockMeta) const
 Tests if a_RelPosition is inside the block, where a_RelPosition is relative to the origin of the block. More...
 
virtual bool IsUseable (void) const
 Called to check whether this block supports a rclk action. More...
 
virtual NIBBLETYPE MetaMirrorXZ (NIBBLETYPE a_Meta) const
 Mirros a given block meta around the XZ plane. More...
 
virtual void OnBroken (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_OldBlockType, NIBBLETYPE a_OldBlockMeta, const cEntity *a_Digger) const
 Called after a block gets broken (replaced with air), by natural means. More...
 
virtual void OnCancelRightClick (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const Vector3i a_BlockPos, eBlockFace a_BlockFace) const
 Called when a right click to this block is cancelled. More...
 
virtual void OnDigging (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const Vector3i a_BlockPos) const
 Called when the player starts digging the block. More...
 
virtual void OnPlaced (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) const
 Called by cWorld::SetBlock() after the block has been set. More...
 
virtual bool OnUse (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const Vector3i a_BlockPos, eBlockFace a_BlockFace, const Vector3i a_CursorPos) const
 Called when the user right clicks the block and the block is useable. More...
 
- Static Public Member Functions inherited from cBlockHandler
static const cBlockHandlerFor (BLOCKTYPE a_BlockType)
 
static char FortuneDiscreteRandom (char a_MinDrop, char a_DefaultMax, unsigned char a_BonusMax, char a_DropCap=25)
 Returns a random number of drops taking into account fortune. More...
 
static void NeighborChanged (cChunkInterface &a_ChunkInterface, Vector3i a_NeighborPos, eBlockFace a_WhichNeighbor)
 Notifies the specified neighbor that the current block has changed. More...
 
static unsigned char ToolFortuneLevel (const cItem *a_Tool)
 Returns the fortune level of a tool, if it is a valid tool. More...
 
static bool ToolHasSilkTouch (const cItem *a_Tool)
 Returns true if the specified tool is valid and has a non-zero silk-touch enchantment. More...
 
- Protected Member Functions inherited from cBlockHandler
 ~cBlockHandler ()=default
 
- Protected Attributes inherited from cBlockHandler
const BLOCKTYPE m_BlockType
 

Detailed Description

Definition at line 9 of file BlockVines.h.

Member Typedef Documentation

◆ Super

Definition at line 12 of file BlockVines.h.

Member Function Documentation

◆ CanBeAt()

virtual bool cBlockVinesHandler::CanBeAt ( const cChunk a_Chunk,
const Vector3i  a_Position,
const NIBBLETYPE  a_Meta 
) const
inlineoverrideprivatevirtual

Checks if the block can stay at the specified relative coords in the chunk.

Reimplemented from cBlockHandler.

Definition at line 24 of file BlockVines.h.

◆ ConvertToPickups()

virtual cItems cBlockVinesHandler::ConvertToPickups ( const NIBBLETYPE  a_BlockMeta,
const cItem *const  a_Tool 
) const
inlineoverrideprivatevirtual

Returns the pickups that would result if the block was mined by a_Digger using a_Tool.

Doesn't do any actual block change / mining, only calculates the pickups. a_Digger is the entity that caused the conversion, usually the player digging. a_Tool is the tool used for the digging. The default implementation drops a single item created from m_BlockType and the current meta.

Reimplemented from cBlockHandler.

Definition at line 30 of file BlockVines.h.

◆ DoesIgnoreBuildCollision()

virtual bool cBlockVinesHandler::DoesIgnoreBuildCollision ( const cWorld a_World,
const cItem a_HeldItem,
const Vector3i  a_Position,
const NIBBLETYPE  a_Meta,
const eBlockFace  a_ClickedBlockFace,
const bool  a_ClickedDirectly 
) const
inlineoverrideprivatevirtual

Checks if the player can build "inside" this block.

For example blocks placed "on" snow will be placed at the same position. So: Snow ignores Build collision

Parameters
a_PosPosition of the block
a_PlayerPlayer trying to build on the block
a_MetaMeta value of the block currently at a_Pos

Reimplemented from cBlockHandler.

Definition at line 180 of file BlockVines.h.

◆ GetMapBaseColourID()

virtual ColourID cBlockVinesHandler::GetMapBaseColourID ( NIBBLETYPE  a_Meta) const
inlineoverrideprivatevirtual

Returns the base colour ID of the block, as will be represented on a map, as per documentation: https://minecraft.wiki/w/Map_item_format.

Reimplemented from cBlockHandler.

Definition at line 262 of file BlockVines.h.

◆ GetMaxMeta()

static NIBBLETYPE cBlockVinesHandler::GetMaxMeta ( const cChunk a_Chunk,
const Vector3i  a_Position,
const NIBBLETYPE  a_CurrentMeta 
)
inlinestaticprivate

Returns the meta that has the maximum allowable sides of the vine, given the surroundings and current vine meta.

Returns special values for a vine that can continue to exist unchanged, or must die completely.

Definition at line 92 of file BlockVines.h.

◆ IsBlockAttachable()

static bool cBlockVinesHandler::IsBlockAttachable ( BLOCKTYPE  a_BlockType)
inlinestaticprivate

Returns true if the specified block type is good for vines to attach to.

Definition at line 61 of file BlockVines.h.

◆ MetaDataToDirection()

static char cBlockVinesHandler::MetaDataToDirection ( NIBBLETYPE  a_MetaData)
inlinestaticprivate

Definition at line 44 of file BlockVines.h.

◆ MetaMirrorXY()

virtual NIBBLETYPE cBlockVinesHandler::MetaMirrorXY ( NIBBLETYPE  a_Meta) const
inlineoverrideprivatevirtual

Mirrors a given block meta around the XY plane.

Default: no change Returns block meta following rotation

Reimplemented from cBlockHandler.

Definition at line 242 of file BlockVines.h.

◆ MetaMirrorYZ()

virtual NIBBLETYPE cBlockVinesHandler::MetaMirrorYZ ( NIBBLETYPE  a_Meta) const
inlineoverrideprivatevirtual

Mirros a given block meta around the YZ plane.

Default: no change Returns block meta following rotation

Reimplemented from cBlockHandler.

Definition at line 252 of file BlockVines.h.

◆ MetaRotateCCW()

virtual NIBBLETYPE cBlockVinesHandler::MetaRotateCCW ( NIBBLETYPE  a_Meta) const
inlineoverrideprivatevirtual

Rotates a given block meta counter-clockwise.

Default: no change Returns block meta following rotation

Reimplemented from cBlockHandler.

Definition at line 224 of file BlockVines.h.

◆ MetaRotateCW()

virtual NIBBLETYPE cBlockVinesHandler::MetaRotateCW ( NIBBLETYPE  a_Meta) const
inlineoverrideprivatevirtual

Rotates a given block meta clockwise.

Default: no change Returns block meta following rotation

Reimplemented from cBlockHandler.

Definition at line 233 of file BlockVines.h.

◆ OnNeighborChanged()

virtual void cBlockVinesHandler::OnNeighborChanged ( cChunkInterface a_ChunkInterface,
Vector3i  a_BlockPos,
eBlockFace  a_WhichNeighbor 
) const
inlineoverrideprivatevirtual

Called when a direct neighbor of this block has been changed.

The position is the block's own position, NOT the changed neighbor's position. a_WhichNeighbor indicates which neighbor has changed. For example, BLOCK_FACE_YP meant the neighbor above has changed. BLOCK_FACE_NONE means that it is a neighbor not directly adjacent (diagonal, etc.)

Reimplemented from cBlockHandler.

Definition at line 146 of file BlockVines.h.

◆ OnUpdate()

virtual void cBlockVinesHandler::OnUpdate ( cChunkInterface a_ChunkInterface,
cWorldInterface a_WorldInterface,
cBlockPluginInterface a_BlockPluginInterface,
cChunk a_Chunk,
const Vector3i  a_RelPos 
) const
inlineoverrideprivatevirtual

Called when the block gets ticked either by a random tick or by a queued tick.

Note that the coords in a_RelPos are chunk-relative!

Reimplemented from cBlockHandler.

Definition at line 189 of file BlockVines.h.

Member Data Documentation

◆ VINE_LOST_SUPPORT

const NIBBLETYPE cBlockVinesHandler::VINE_LOST_SUPPORT = 16
staticprivate

Definition at line 20 of file BlockVines.h.

◆ VINE_UNCHANGED

const NIBBLETYPE cBlockVinesHandler::VINE_UNCHANGED = 17
staticprivate

Definition at line 21 of file BlockVines.h.


The documentation for this class was generated from the following file: