BlockType.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "BlockType.h"
  2. #include "Block.h"
  3. using namespace Framework;
  4. BlockType::BlockType( int id )
  5. : ReferenceCounter(),
  6. id( id )
  7. {
  8. StaticRegistry<BlockType>::INSTANCE.registerT( this, id );
  9. }
  10. void BlockType::loadSuperBlock( Block *zBlock, Framework::StreamReader *zReader )
  11. {
  12. zBlock->loadInventory( zReader );
  13. zReader->lese( (char *)&zBlock->transparent, 1 );
  14. zReader->lese( (char *)&zBlock->passable, 1 );
  15. zReader->lese( (char *)&zBlock->hp, 4 );
  16. zReader->lese( (char *)&zBlock->maxHP, 4 );
  17. zReader->lese( (char *)&zBlock->hardness, 4 );
  18. zReader->lese( (char *)&zBlock->speedModifier, 4 );
  19. int effectiveToolId;
  20. zReader->lese( (char *)&effectiveToolId, 4 );
  21. zBlock->zTool = StaticRegistry<ItemType>::INSTANCE.zElement( effectiveToolId );
  22. }
  23. Block *BlockType::loadBlock( Framework::Vec3<int> position, Game *zTarget, Framework::StreamReader *zReader )
  24. {
  25. Block *result = createBlock( position, zTarget );
  26. loadSuperBlock( result, zReader );
  27. return result;
  28. }
  29. int BlockType::getId() const
  30. {
  31. return id;
  32. }