1234567891011121314151617181920212223242526272829303132 |
- #pragma once
- #include <Reader.h>
- #include <ReferenceCounter.h>
- #include <Vec3.h>
- #include "StaticRegistry.h"
- class Block;
- class BlockType : public virtual Framework::ReferenceCounter
- {
- private:
- const int id;
- Block* defaultBlock;
- protected:
- BlockType( int id );
- virtual ~BlockType();
- virtual void loadSuperBlock( Block* zBlock, Framework::StreamReader* zReader );
- virtual void initializeSuperBlock( Block* zBlock ) = 0;
- public:
- virtual Block* createBlock( Framework::Vec3<int> position ) = 0;
- virtual Block* loadBlock( Framework::Vec3<int> position, Framework::StreamReader* zReader );
- virtual void updateBlock( Block* zBlock, Framework::StreamReader* zReader );
- virtual const Block* zDefault();
- virtual bool needsInstance() const = 0;
- int getId() const;
- };
|