BasicBlock.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "BasicBlocks.h"
  2. BasicBlock::BasicBlock( BlockType *zType, ItemType *zTool, Framework::Vec3<int> pos )
  3. : Block( zType, zTool, pos, false )
  4. {}
  5. bool BasicBlock::onTick( TickQueue *zQueue, int numTicks, bool &blocked )
  6. {
  7. return 0;
  8. }
  9. void BasicBlock::onPostTick()
  10. {}
  11. DirtBlockType::DirtBlockType()
  12. : BlockType( ID )
  13. {}
  14. void DirtBlockType::loadSuperBlock( Block *zBlock, Framework::StreamReader *zReader )
  15. {
  16. BlockType::loadSuperBlock( zBlock, zReader );
  17. }
  18. void DirtBlockType::saveSuperBlock( Block *zBlock, Framework::StreamWriter *zWriter )
  19. {
  20. BlockType::saveSuperBlock( zBlock, zWriter );
  21. }
  22. void DirtBlockType::createSuperBlock( Block *zBlock, Item *zItem )
  23. {
  24. if( zItem )
  25. BlockType::createSuperBlock( zBlock, zItem );
  26. else
  27. {
  28. BasicBlock *block = dynamic_cast<BasicBlock *>( zBlock );
  29. if( !block )
  30. throw "DirtBlockType::createSuperBlock was called with a block witch is not an instance of BasicBlock";
  31. block->transparent = 0;
  32. block->passable = 0;
  33. block->hp = 100;
  34. block->maxHP = 100;
  35. block->hardness = 1;
  36. block->zTool = 0;
  37. block->speedModifier = 1;
  38. }
  39. }
  40. void DirtBlockType::createSuperItem( Block *zBlock, Item *zItem )
  41. {
  42. BlockType::createSuperItem( zBlock, zItem );
  43. }
  44. Block *DirtBlockType::createBlock( Framework::Vec3<int> position, Game *zTarget )
  45. {
  46. return new BasicBlock( this, 0, position ); // TODO: add efective tool
  47. }
  48. Item *DirtBlockType::createItem( Game *zTarget )
  49. {
  50. return StaticRegistry<ItemType>::INSTANCE.zElement( DirtBlockItemType::ID )->createItem();
  51. }
  52. DirtBlockItemType::DirtBlockItemType()
  53. : BasicBlockItemType( ID, 0, 0 )
  54. {}
  55. Item *DirtBlockItemType::createItem() const
  56. {
  57. BasicBlockItem *item = new BasicBlockItem( (ItemType *)this, "Dirt" );
  58. initializeItem( item, 0, 0, 100, 100, 1, 0, 1 );
  59. return item;
  60. }