1234567891011121314151617181920212223242526272829303132333435 |
- #pragma once
- #include <Vec3.h>
- #include <Array.h>
- #include <Writer.h>
- #include "StaticRegistry.h"
- class Game;
- class Item;
- class Block;
- class BlockType : public virtual Framework::ReferenceCounter
- {
- private:
- const int id;
- protected:
- BlockType( int id );
- virtual void loadSuperBlock( Block *zBlock, Framework::StreamReader *zReader );
- virtual void saveSuperBlock( Block *zBlock, Framework::StreamWriter *zWriter );
- virtual void createSuperBlock( Block *zBlock, Item *zItem );
- virtual void createSuperItem( Block *zBlock, Item *zItem );
- virtual Block *createBlock( Framework::Vec3<int> position, Game *zTarget ) = 0;
- virtual Item *createItem( Game *zTarget ) = 0;
- public:
- virtual Block *loadBlock( Framework::Vec3<int> position, Game *zTarget, Framework::StreamReader *zReader );
- virtual void saveBlock( Block *zBlock, Framework::StreamWriter *zWriter );
- virtual Item *getItemFromBlock( Block *zBlock, Game *zTarget );
- virtual Block *createBlockAt( Framework::Vec3<int> position, Game *zTarget, Item *zUsedItem );
- int getId() const;
- };
|