#include "NoBlock.h"

NoBlock::NoBlock()
    : Block( NoBlockBlockType::INSTANCE, 0, { 0,0,0 }, false )
{
    transparent = 0;
    passable = 0;
    hp = 0;
    maxHP = 0;
    hardness = 0;
}

const NoBlock NoBlock::INSTANCE;


NoBlockBlockType::NoBlockBlockType()
    : BlockType( ID )
{}

NoBlockBlockType::NoBlockBlockType( int id )
    : BlockType( id )
{}

Block* NoBlockBlockType::createBlock( Framework::Vec3<int> position )
{
    assert( false );
    return 0;
}

Block* NoBlockBlockType::loadBlock( Framework::Vec3<int> position, Framework::StreamReader* zReader )
{
    return 0;
}

void NoBlockBlockType::initializeSuperBlock( Block* zBlock )
{}

const Block* NoBlockBlockType::zDefault()
{
    return &NoBlock::INSTANCE;
}

bool NoBlockBlockType::needsInstance() const
{
    return 0;
}


AirBlock::AirBlock()
    : Block( AirBlockBlockType::INSTANCE, 0, { 0,0,0 }, false )
{
    transparent = 1;
    passable = 1;
    hp = 0;
    maxHP = 0;
    hardness = 0;
}

const AirBlock AirBlock::INSTANCE;


AirBlockBlockType::AirBlockBlockType()
    : NoBlockBlockType( ID )
{}

const Block* AirBlockBlockType::zDefault()
{
    return &AirBlock::INSTANCE;
}