#include "Block.h" #include "Inventory.h" #include "Globals.h" Block::Block( const BlockType* zType, ItemType* zTool, Framework::Vec3 pos, bool hasInventory ) : Inventory( pos, hasInventory ), Model3D(), zType( zType ) { transparent = false; passable = false; hp = 1; maxHP = 1; hardness = 1; this->zTool = zTool; speedModifier = 1; Model3D::setPosition( (Framework::Vec3)pos + Framework::Vec3{0.5f, 0.5f, 0.5f} ); } Block::~Block() {} bool Block::isTransparent() const { return transparent; } const BlockType* Block::zBlockType() const { return zType; } BasicBlockItem::BasicBlockItem( const ItemType* zType, const char* name ) : Item( zType, name ) { placeable = 1; transparent = 0; passable = 0; hp = 0; maxHP = 0; hardness = 0; toolId = 0; speedModifier = 0; } BasicBlockItemType::BasicBlockItemType( int id ) : ItemType( id ) {} void BasicBlockItemType::loadSuperItem( Item* zItem, Framework::StreamReader* zReader ) const { ItemType::loadSuperItem( zItem, zReader ); BasicBlockItem* item = dynamic_cast(zItem); if( !item ) throw "BasicBlockItemType::loadSuperItem was called with an invalid item"; zReader->lese( (char*)&item->transparent, 1 ); zReader->lese( (char*)&item->passable, 1 ); zReader->lese( (char*)&item->hp, 4 ); zReader->lese( (char*)&item->maxHP, 4 ); zReader->lese( (char*)&item->hardness, 4 ); zReader->lese( (char*)&item->toolId, 4 ); zReader->lese( (char*)&item->speedModifier, 4 ); }