BlockType.h 564 B

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