51 lines
1.8 KiB
C++
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
|
|
}
|
|
|
|
}
|