From 85164fab8e5298ce1c0582b2aebb7e6a283d4a0c Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 1 Oct 2012 21:08:15 +0000 Subject: Slight refactoring of BlockHandlers - dropping unneeded virtual functions ( http://forum.mc-server.org/showthread.php?tid=434&pid=4734#pid4734 ) git-svn-id: http://mc-server.googlecode.com/svn/trunk@917 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Blocks/BlockTorch.h | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'source/Blocks/BlockTorch.h') diff --git a/source/Blocks/BlockTorch.h b/source/Blocks/BlockTorch.h index 450b5ecab..e65a973d2 100644 --- a/source/Blocks/BlockTorch.h +++ b/source/Blocks/BlockTorch.h @@ -1,5 +1,6 @@ #pragma once + #include "BlockHandler.h" #include "../Torch.h" #include "../World.h" @@ -8,7 +9,8 @@ -class cBlockTorchHandler : public cBlockHandler +class cBlockTorchHandler : + public cBlockHandler { public: cBlockTorchHandler(BLOCKTYPE a_BlockID) @@ -19,12 +21,14 @@ public: virtual void PlaceBlock(cWorld * a_World, cPlayer * a_Player, NIBBLETYPE a_BlockMeta, int a_X, int a_Y, int a_Z, char a_Dir) override { - if(!TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, a_Dir)) + if (!TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, a_Dir)) { a_Dir = FindSuitableDirection(a_World, a_X, a_Y, a_Z); - if(a_Dir == BLOCK_FACE_BOTTOM) + if (a_Dir == BLOCK_FACE_BOTTOM) + { return; + } } a_World->SetBlock(a_X, a_Y, a_Z, m_BlockID, cTorch::DirectionToMetaData(a_Dir)); @@ -32,7 +36,7 @@ public: } - virtual bool AllowBlockOnTop(void) override + virtual bool DoesAllowBlockOnTop(void) override { return false; } @@ -116,25 +120,31 @@ public: // How to propagate that change up? // Simon: The easiest way is to calculate the position two times, shouldn´t cost much cpu power :) - if(a_Dir == BLOCK_FACE_BOTTOM) + if (a_Dir == BLOCK_FACE_BOTTOM) + { return false; + } AddDirection( a_X, a_Y, a_Z, a_Dir, true ); return CanBePlacedOn(a_World->GetBlock( a_X, a_Y, a_Z ), a_Dir); } - // Finds a suitable Direction for the Torch. Returns BLOCK_FACE_BOTTOM on failure + + /// Finds a suitable Direction for the Torch. Returns BLOCK_FACE_BOTTOM on failure static char FindSuitableDirection(cWorld * a_World, int a_X, int a_Y, int a_Z) { - for(int i = 1; i <= 5; i++) + for (int i = 1; i <= 5; i++) { - if(TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, i)) + if (TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, i)) + { return i; + } } return BLOCK_FACE_BOTTOM; } + virtual bool CanBePlacedAt(cWorld * a_World, int a_X, int a_Y, int a_Z, char a_Dir) override { if(TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, a_Dir)) @@ -150,16 +160,19 @@ public: return TorchCanBePlacedAt(a_World, a_X, a_Y, a_Z, Dir); } - virtual NIBBLETYPE GetDropMeta(NIBBLETYPE a_BlockMeta) override + + virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override { - return 0; + // Always drop meta = 0 + a_Pickups.push_back(cItem(m_BlockID, 1, 0)); } - virtual AString GetStepSound(void) override + + virtual const char * GetStepSound(void) override { return "step.wood"; } -}; +} ; -- cgit v1.2.3