1
0
cuberite-2a/source/cPiston.cpp
2011-11-05 18:28:19 +00:00

51 lines
1.8 KiB
C++

#include "cPiston.h"
#include "cRoot.h"
#include "cWorld.h"
#include "BlockID.h"
cPiston::cPiston( cWorld* a_World )
:m_World ( a_World )
{
}
//Todo: All piston stuff below.
void cPiston::ExtendPiston( int pistx, int pisty, int pistz )
{
cWorld* World = cRoot::Get()->GetWorld();
char metadata = World->GetBlockMeta( pistx, pisty, pistz);
if ( ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_STICKY_PISTON ) || ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_PISTON ) ) {
//find direction piston is facing base on meta.
//verify piston is not already extended.
//check all 16 blocks in front of it for the first airblock
//if there's and air block move those found blocks by 1 and insert E_BLOCK_PISTON_EXTENSION in the spot infront of the piston facing right direction
}
}
void cPiston::RetractPiston( int pistx, int pisty, int pistz )
{
cWorld* World = cRoot::Get()->GetWorld();
char metadata = World->GetBlockMeta( pistx, pisty, pistz);
if ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_PISTON ) {
//find direction piston is facing base on meta.
//verify piston is extended.
//check block in front to see if it's an E_BLOCK_PISTON_EXTENSION
//delete that block
//set piston meta to unextended
}
if ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_STICKY_PISTON ) {
//find direction piston is facing base on meta.
//verify piston is extended.
//check block in front to see if it's an E_BLOCK_PISTON_EXTENSION
//delete that block
//move block one more in front of it to postion E_BLOCK_PISTON_EXTENSION was facing.
//set piston meta to unextended
}
}