NoBlock.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "Block.h"
  3. #include "BlockType.h"
  4. class NoBlockBlockType : public BlockType
  5. {
  6. protected:
  7. virtual Block* createBlock(
  8. Framework::Vec3<int> position, int dimensionId) const override;
  9. virtual Item* createItem() const override;
  10. virtual Block* loadBlock(Framework::Vec3<int> position,
  11. Framework::StreamReader* zReader,
  12. int dimensionId) const override;
  13. virtual void saveBlock(
  14. Block* zBlock, Framework::StreamWriter* zWriter) const override;
  15. virtual Item* getItemFromBlock(Block* zBlock) const override;
  16. virtual Block* createBlockAt(Framework::Vec3<int> position,
  17. int dimensionId,
  18. Item* zUsedItem) const override;
  19. public:
  20. NoBlockBlockType(Block* defaultB, Framework::Text name);
  21. virtual ItemType* createItemType() const override;
  22. };
  23. class NoBlock : public Block
  24. {
  25. public:
  26. static NoBlock INSTANCE;
  27. protected:
  28. NoBlock();
  29. virtual bool onTick(
  30. TickQueue* zQueue, int numTicks, bool& blocked) override;
  31. virtual void onPostTick() override;
  32. };
  33. class AirBlock : public Block
  34. {
  35. public:
  36. static AirBlock INSTANCE;
  37. protected:
  38. AirBlock();
  39. virtual bool onTick(
  40. TickQueue* zQueue, int numTicks, bool& blocked) override;
  41. virtual void onPostTick() override;
  42. };