Cuberite
A lightweight, fast and extensible game server for Minecraft
|
#include <BlockGrass.h>
Public Member Functions | |
constexpr | cBlockHandler (BLOCKTYPE a_BlockType) |
Public Member Functions inherited from cBlockHandler | |
virtual bool | CanBeAt (const cChunk &a_Chunk, Vector3i a_Position, NIBBLETYPE a_Meta) const |
Checks if the block can stay at the specified relative coords in the chunk. More... | |
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 bool | DoesIgnoreBuildCollision (const cWorld &a_World, const cItem &a_HeldItem, Vector3i a_Position, NIBBLETYPE a_Meta, eBlockFace a_ClickedBlockFace, bool a_ClickedDirectly) const |
Checks if the player can build "inside" this block. 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 | MetaMirrorXY (NIBBLETYPE a_Meta) const |
Mirrors a given block meta around the XY plane. More... | |
virtual NIBBLETYPE | MetaMirrorXZ (NIBBLETYPE a_Meta) const |
Mirros a given block meta around the XZ plane. More... | |
virtual NIBBLETYPE | MetaMirrorYZ (NIBBLETYPE a_Meta) const |
Mirros a given block meta around the YZ plane. More... | |
virtual NIBBLETYPE | MetaRotateCCW (NIBBLETYPE a_Meta) const |
Rotates a given block meta counter-clockwise. More... | |
virtual NIBBLETYPE | MetaRotateCW (NIBBLETYPE a_Meta) const |
Rotates a given block meta clockwise. 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 | OnNeighborChanged (cChunkInterface &a_ChunkInterface, Vector3i a_BlockPos, eBlockFace a_WhichNeighbor) const |
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) 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... | |
Private Types | |
enum class | Survivability { CanSpread , DoNothing , DieInDarkness } |
Private Member Functions | |
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 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 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 Survivability | DetermineSurvivability (cChunk &a_Chunk, const Vector3i a_RelPos) |
Check if conditions are favourable to a grass block at the given position. More... | |
static void | TrySpreadTo (cChunk &a_Chunk, Vector3i a_RelPos) |
Attempt to spread grass to a block at the given position. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from cBlockHandler | |
static const cBlockHandler & | For (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 |
Definition at line 13 of file BlockGrass.h.
|
strongprivate |
Enumerator | |
---|---|
CanSpread | |
DoNothing | |
DieInDarkness |
Definition at line 22 of file BlockGrass.h.
|
inlineconstexpr |
Definition at line 29 of file BlockHandler.h.
|
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 34 of file BlockGrass.h.
|
inlinestaticprivate |
Check if conditions are favourable to a grass block at the given position.
If they are not, the grass dies and is turned to dirt. Returns whether conditions are so good that the grass can try to spread to neighbours.
Definition at line 99 of file BlockGrass.h.
|
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 88 of file BlockGrass.h.
|
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 47 of file BlockGrass.h.
|
inlinestaticprivate |
Attempt to spread grass to a block at the given position.
Definition at line 127 of file BlockGrass.h.