Grass.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "Block.h"
  3. class GrassBlockType;
  4. class GrassBlock : public Block
  5. {
  6. public:
  7. GrassBlock(int typeId, const ItemType* zTool, Framework::Vec3<int> pos);
  8. virtual bool onTick(
  9. TickQueue* zQueue, int numTicks, bool& blocked) override;
  10. virtual void onPostTick() override;
  11. virtual void onDestroy() override;
  12. friend GrassBlockType;
  13. };
  14. class GrassBlockType : public BlockType
  15. {
  16. private:
  17. int itemType;
  18. bool transparent;
  19. bool passable;
  20. float hardness;
  21. const ItemType* zTool;
  22. float speedModifier;
  23. bool interactable;
  24. protected:
  25. virtual void createSuperBlock(Block* zBlock, Item* zItem) const override;
  26. virtual void loadSuperBlock(Block* zBlock,
  27. Framework::StreamReader* zReader,
  28. int dimensionId) const override;
  29. virtual void saveSuperBlock(
  30. Block* zBlock, Framework::StreamWriter* zWriter) const override;
  31. virtual Item* createItem() const override;
  32. virtual Block* createBlock(Framework::Vec3<int> position) const override;
  33. public:
  34. GrassBlockType(int typeId,
  35. int itemTypeId,
  36. ModelInfo model,
  37. const char* name,
  38. int mapColor);
  39. };