BasicBlocks.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include <Textur.h>
  3. #include "Block.h"
  4. #include "BlockType.h"
  5. #include "Item.h"
  6. class BlockType;
  7. class ItemType;
  8. class DirtBlockType;
  9. class DirtBlockItemType;
  10. class BasicBlock : public Block
  11. {
  12. Framework::Textur* breakTextur;
  13. public:
  14. BasicBlock( const BlockType* zType, const char* texture, ItemType* zTool, Framework::Vec3<int> pos, Framework::Textur* t );
  15. ~BasicBlock();
  16. bool needRenderPolygon( int index ) override;
  17. virtual Textur* zEffectTextur() override;
  18. virtual float getEffectPercentage() override;
  19. friend DirtBlockType;
  20. };
  21. class DirtBlockType : public BlockType
  22. {
  23. REGISTRABLE( DirtBlockType )
  24. protected:
  25. DirtBlockType();
  26. virtual void loadSuperBlock( Block* zBlock, Framework::StreamReader* zReader ) override;
  27. public:
  28. virtual Block* createBlock( Framework::Vec3<int> position ) override;
  29. virtual void initializeSuperBlock( Block* zBlock ) override;
  30. virtual bool needsInstance() const override;
  31. };
  32. REGISTER( DirtBlockType, BlockType )
  33. class DirtBlockItemType : public BasicBlockItemType
  34. {
  35. REGISTRABLE( DirtBlockItemType )
  36. protected:
  37. DirtBlockItemType();
  38. public:
  39. virtual Item* createItem() const override;
  40. };
  41. REGISTER( DirtBlockItemType, ItemType )