#include "BasicBlocks.h" BasicBlock::BasicBlock( const BlockType* zType, ItemType* zTool, Framework::Vec3 pos ) : Block( zType, zTool, pos, false ) {} bool BasicBlock::onTick( TickQueue* zQueue, int numTicks, bool& blocked ) { return 0; } void BasicBlock::onPostTick() {} DirtBlockType::DirtBlockType() : BlockType( ID, 0 ) { defaultBlock = createBlockAt( { 0, 0, 0 }, 0 ); } void DirtBlockType::loadSuperBlock( Block* zBlock, Framework::StreamReader* zReader ) const { BlockType::loadSuperBlock( zBlock, zReader ); } void DirtBlockType::saveSuperBlock( Block* zBlock, Framework::StreamWriter* zWriter ) const { BlockType::saveSuperBlock( zBlock, zWriter ); } void DirtBlockType::createSuperBlock( Block* zBlock, Item* zItem ) const { if( zItem ) BlockType::createSuperBlock( zBlock, zItem ); else { BasicBlock* block = dynamic_cast(zBlock); if( !block ) throw "DirtBlockType::createSuperBlock was called with a block witch is not an instance of BasicBlock"; block->transparent = 0; block->passable = 0; block->hp = 100; block->maxHP = 100; block->hardness = 1; block->zTool = 0; block->speedModifier = 1; block->interactable = 1; } } void DirtBlockType::createSuperItem( Block* zBlock, Item* zItem ) const { BlockType::createSuperItem( zBlock, zItem ); } Block* DirtBlockType::createBlock( Framework::Vec3 position ) const { return new BasicBlock( this, 0, position ); // TODO: add efective tool } Item* DirtBlockType::createItem() const { return StaticRegistry::INSTANCE.zElement( DirtBlockItemType::ID )->createItem(); } DirtBlockItemType::DirtBlockItemType() : BasicBlockItemType( ID, 0, 0 ) {} Item* DirtBlockItemType::createItem() const { BasicBlockItem* item = new BasicBlockItem( (ItemType*)this, DirtBlockType::INSTANCE, "Dirt" ); initializeItem( item, 0, 0, 100, 100, 1, 0, 1 ); return item; }