#pragma once #include "Block.h" #include "BlockType.h" #include "Item.h" class BasicBlockType; class BasicBlock : public Block { private: friend BasicBlockType; }; class BasicBlockType : public BlockType { REGISTRABLE( BasicBlockType ) protected: virtual void loadSuperBlock( Block *zBlock, Framework::Reader *zReader ) override; virtual void createSuperBlock( Block *zBlock, Framework::Reader *zReader ) override; virtual void createSuperItem( Block *zBlock, Item *zItem ) override; public: BasicBlockType(); virtual Block *loadBlock( Framework::Vec3 position, Game *zTarget, Framework::Reader *zReader ) override; virtual void saveBlock( Block *zBlock, Framework::Writer *zWriter ) override; virtual Item *getItemFromBlock( Block *zBlock, Game *zTarget ) override; virtual Block *createBlockAt( Framework::Vec3 position, Game *zTarget, Item *zUsedItem ) override; }; #ifdef REGISTER REGISTER( BasicBlockType ) #endif