BlockType.h 607 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <Reader.h>
  3. #include <ReferenceCounter.h>
  4. #include <Vec3.h>
  5. #include "StaticRegistry.h"
  6. class Game;
  7. class Block;
  8. class BlockType : public virtual Framework::ReferenceCounter
  9. {
  10. private:
  11. const int id;
  12. protected:
  13. BlockType( int id );
  14. virtual void loadSuperBlock( Block *zBlock, Framework::StreamReader *zReader );
  15. virtual Block *createBlock( Framework::Vec3<int> position, Game *zTarget ) = 0;
  16. public:
  17. virtual Block *loadBlock( Framework::Vec3<int> position, Game *zTarget, Framework::StreamReader *zReader );
  18. int getId() const;
  19. };