NoBlock.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "BlockType.h"
  3. #include "Block.h"
  4. class NoBlockBlockType;
  5. class NoBlock : public Block
  6. {
  7. public:
  8. static const NoBlock INSTANCE;
  9. protected:
  10. NoBlock();
  11. virtual bool onTick( TickQueue* zQueue, int numTicks, bool& blocked ) override;
  12. virtual void onPostTick() override;
  13. friend NoBlockBlockType;
  14. };
  15. class NoBlockBlockType : public BlockType
  16. {
  17. REGISTRABLE( NoBlockBlockType )
  18. protected:
  19. virtual Block* createBlock( Framework::Vec3<int> position, Game* zTarget ) override;
  20. virtual Item* createItem( Game* zTarget ) override;
  21. virtual Block* loadBlock( Framework::Vec3<int> position, Game* zTarget, Framework::StreamReader* zReader ) override;
  22. virtual void saveBlock( Block* zBlock, Framework::StreamWriter* zWriter ) override;
  23. virtual Item* getItemFromBlock( Block* zBlock, Game* zTarget ) override;
  24. virtual Block* createBlockAt( Framework::Vec3<int> position, Game* zTarget, Item* zUsedItem ) override;
  25. virtual const Block* zDefault() override;
  26. NoBlockBlockType();
  27. NoBlockBlockType( int id );
  28. };
  29. REGISTER( NoBlockBlockType, BlockType )
  30. class AirBlockBlockType : public NoBlockBlockType
  31. {
  32. REGISTRABLE( AirBlockBlockType )
  33. protected:
  34. AirBlockBlockType();
  35. };
  36. REGISTER( AirBlockBlockType, BlockType )