BasicBlock.cpp 1.8 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. }