Cuberite
A lightweight, fast and extensible game server for Minecraft
Public Member Functions | Private Types | List of all members
cBlockTallGrassHandler Class Reference

Handles the grass that is 1 block tall. More...

#include <BlockTallGrass.h>

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

Public Member Functions

virtual bool CanBeAt (cChunkInterface &a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk &a_Chunk) override
 Checks if the block can stay at the specified relative coords in the chunk. More...
 
 cBlockTallGrassHandler (BLOCKTYPE a_BlockType)
 
virtual cItems ConvertToPickups (NIBBLETYPE a_BlockMeta, cBlockEntity *a_BlockEntity, const cEntity *a_Digger, const cItem *a_Tool) override
 Returns the pickups that would result if the block was mined by a_Digger using a_Tool. More...
 
virtual bool DoesIgnoreBuildCollision (cChunkInterface &a_ChunkInterface, Vector3i a_Pos, cPlayer &a_Player, NIBBLETYPE a_Meta) override
 Checks if the player can build "inside" this block. More...
 
virtual ColourID GetMapBaseColourID (NIBBLETYPE a_Meta) override
 Returns the base colour ID of the block, as will be represented on a map, as per documentation: https://minecraft.gamepedia.com/Map_item_format. More...
 
virtual int Grow (cChunk &a_Chunk, Vector3i a_RelPos, int a_NumStages=1) override
 Growing a tall grass produces a big flower (2-block high fern or double-tall grass). More...
 
- Public Member Functions inherited from cBlockHandler
virtual bool CanSustainPlant (BLOCKTYPE a_Plant)
 Checks whether the block has an effect on growing the plant. More...
 
 cBlockHandler (BLOCKTYPE a_BlockType)
 
virtual void Check (cChunkInterface &ChunkInterface, cBlockPluginInterface &a_PluginInterface, Vector3i a_RelPos, cChunk &a_Chunk)
 Called when one of the neighbors gets set; equivalent to MC block update. More...
 
virtual bool DoesDropOnUnsuitable (void)
 Returns if this block drops if it gets destroyed by an unsuitable situation. More...
 
virtual bool GetPlacementBlockTypeMeta (cChunkInterface &a_ChunkInterface, cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE &a_BlockType, NIBBLETYPE &a_BlockMeta)
 Called before a block is placed into a world. More...
 
virtual cBoundingBox GetPlacementCollisionBox (BLOCKTYPE a_XM, BLOCKTYPE a_XP, BLOCKTYPE a_YM, BLOCKTYPE a_YP, BLOCKTYPE a_ZM, BLOCKTYPE a_ZP)
 Returns the relative bounding box that must be entity-free in order for the block to be placed. More...
 
virtual bool IsClickedThrough (void)
 Indicates whether the client will click through this block. More...
 
virtual bool IsInsideBlock (Vector3d a_Position, const BLOCKTYPE a_BlockType, const NIBBLETYPE a_BlockMeta)
 Tests if a_Position is inside the block where a_Position is relative to the origin of the block Note that this is considered from a "top-down" perspective i.e. More...
 
virtual bool IsUseable (void)
 Checks if the block can be placed at this point. More...
 
virtual NIBBLETYPE MetaMirrorXY (NIBBLETYPE a_Meta)
 Mirrors a given block meta around the XY plane. More...
 
virtual NIBBLETYPE MetaMirrorXZ (NIBBLETYPE a_Meta)
 Mirros a given block meta around the XZ plane. More...
 
virtual NIBBLETYPE MetaMirrorYZ (NIBBLETYPE a_Meta)
 Mirros a given block meta around the YZ plane. More...
 
virtual NIBBLETYPE MetaRotateCCW (NIBBLETYPE a_Meta)
 Rotates a given block meta counter-clockwise. More...
 
virtual NIBBLETYPE MetaRotateCW (NIBBLETYPE a_Meta)
 Rotates a given block meta clockwise. More...
 
virtual void OnBreaking (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, Vector3i a_BlockPos)
 Called before a block gets broken (replaced with air), either by player or by natural means. More...
 
virtual void OnBroken (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_OldBlockType, NIBBLETYPE a_OldBlockMeta)
 Called after a block gets broken (replaced with air), either by player or by natural means. More...
 
virtual void OnCancelRightClick (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace)
 Called when a right click to this block is cancelled. More...
 
virtual void OnDigging (cChunkInterface &cChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ)
 Called when the player starts digging the block. More...
 
virtual void OnNeighborChanged (cChunkInterface &a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor)
 Called when a direct neighbor of this block has been changed. More...
 
virtual void OnPlaced (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
 Called by cWorld::SetBlock() after the block has been set. More...
 
virtual void OnPlacedByPlayer (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, const sSetBlock &a_BlockChange)
 Called by cPlayer::PlaceBlocks() for each block after it has been set to the world. More...
 
virtual void OnPlayerBreakingBlock (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, Vector3i a_BlockPos)
 Called just before the player breaks the block. More...
 
virtual void OnPlayerBrokeBlock (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, Vector3i a_BlockPos, BLOCKTYPE a_OldBlockType, NIBBLETYPE a_OldBlockMeta)
 Called just after the player breaks the block. More...
 
virtual void OnUpdate (cChunkInterface &cChunkInterface, cWorldInterface &a_WorldInterface, cBlockPluginInterface &a_BlockPluginInterface, cChunk &a_Chunk, int a_RelX, int a_RelY, int a_RelZ)
 Called when the block gets ticked either by a random tick or by a queued tick. More...
 
virtual bool OnUse (cChunkInterface &a_ChunkInterface, cWorldInterface &a_WorldInterface, cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ)
 Called if the user right clicks the block and the block is useable returns true if the use was successful, return false to use the block as a "normal" block. More...
 
virtual ~cBlockHandler ()
 

Private Types

using super = cBlockHandler
 

Additional Inherited Members

- Static Public Member Functions inherited from cBlockHandler
static void NeighborChanged (cChunkInterface &a_ChunkInterface, Vector3i a_NeighborPos, eBlockFace a_WhichNeighbor)
 Notifies the specified neighbor that the current block has changed. 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...
 
- Static Protected Member Functions inherited from cBlockHandler
static cBlockHandlerCreateBlockHandler (BLOCKTYPE a_BlockType)
 
- Protected Attributes inherited from cBlockHandler
BLOCKTYPE m_BlockType
 

Detailed Description

Handles the grass that is 1 block tall.

Definition at line 12 of file BlockTallGrass.h.

Member Typedef Documentation

Definition at line 15 of file BlockTallGrass.h.

Constructor & Destructor Documentation

cBlockTallGrassHandler::cBlockTallGrassHandler ( BLOCKTYPE  a_BlockType)
inline

Definition at line 19 of file BlockTallGrass.h.

Member Function Documentation

virtual bool cBlockTallGrassHandler::CanBeAt ( cChunkInterface a_ChunkInterface,
int  a_RelX,
int  a_RelY,
int  a_RelZ,
const cChunk a_Chunk 
)
inlineoverridevirtual

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

Reimplemented from cBlockHandler.

Definition at line 57 of file BlockTallGrass.h.

virtual cItems cBlockTallGrassHandler::ConvertToPickups ( NIBBLETYPE  a_BlockMeta,
cBlockEntity a_BlockEntity,
const cEntity a_Digger,
const cItem a_Tool 
)
inlineoverridevirtual

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_BlockEntity is the block entity present at the block, if any, nullptr if none. 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 37 of file BlockTallGrass.h.

virtual bool cBlockTallGrassHandler::DoesIgnoreBuildCollision ( cChunkInterface ChunkInterface,
Vector3i  a_Pos,
cPlayer a_Player,
NIBBLETYPE  a_Meta 
)
inlineoverridevirtual

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 28 of file BlockTallGrass.h.

virtual ColourID cBlockTallGrassHandler::GetMapBaseColourID ( NIBBLETYPE  a_Meta)
inlineoverridevirtual

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

Reimplemented from cBlockHandler.

Definition at line 96 of file BlockTallGrass.h.

virtual int cBlockTallGrassHandler::Grow ( cChunk a_Chunk,
Vector3i  a_RelPos,
int  a_NumStages = 1 
)
inlineoverridevirtual

Growing a tall grass produces a big flower (2-block high fern or double-tall grass).

Reimplemented from cBlockHandler.

Definition at line 73 of file BlockTallGrass.h.


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