Grass.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #include "Grass.h"
  2. GrassBlock::GrassBlock(int typeId, Framework::Vec3<int> pos, int dimensionId)
  3. : BasicBlock(typeId, pos, dimensionId)
  4. {
  5. transparent = 1;
  6. }
  7. bool GrassBlock::onTick(TickQueue* zQueue, int numTicks, bool& blocked)
  8. {
  9. // TODO: spread to neighbor blocks if light level is hight enought
  10. return 0;
  11. }
  12. void GrassBlock::onPostTick() {}
  13. void GrassBlock::filterPassingLight(unsigned char rgb[3]) const
  14. {
  15. rgb[0] = (unsigned char)(rgb[0] * 0.7);
  16. rgb[1] = (unsigned char)(rgb[1] * 0.9);
  17. rgb[2] = (unsigned char)(rgb[2] * 0.7);
  18. }
  19. TickSourceType GrassBlock::isTickSource() const
  20. {
  21. return TickSourceType::EACH_TICK;
  22. }
  23. GrassBlockType::GrassBlockType()
  24. : BasicBlockType()
  25. {}
  26. ItemType* GrassBlockType::createItemType() const
  27. {
  28. return 0;
  29. }
  30. void GrassBlockType::createSuperBlock(Block* zBlock, Item* zItem) const
  31. {
  32. BasicBlockType::createSuperBlock(zBlock, zItem);
  33. }
  34. void GrassBlockType::loadSuperBlock(
  35. Block* zBlock, Framework::StreamReader* zReader, int dimensionId) const
  36. {
  37. BasicBlockType::loadSuperBlock(zBlock, zReader, dimensionId);
  38. }
  39. void GrassBlockType::saveSuperBlock(
  40. Block* zBlock, Framework::StreamWriter* zWriter) const
  41. {
  42. BasicBlockType::saveSuperBlock(zBlock, zWriter);
  43. }
  44. Item* GrassBlockType::createItem() const
  45. {
  46. return 0;
  47. }
  48. Block* GrassBlockType::createBlock(
  49. Framework::Vec3<int> position, int dimensionId) const
  50. {
  51. return new GrassBlock(getId(), position, dimensionId);
  52. }
  53. GrassBlockTypeFactory::GrassBlockTypeFactory()
  54. : BasicBlockTypeFactory()
  55. {}
  56. GrassBlockType* GrassBlockTypeFactory::createValue(
  57. Framework::JSON::JSONObject* zJson) const
  58. {
  59. return new GrassBlockType();
  60. }
  61. GrassBlockType* GrassBlockTypeFactory::fromJson(
  62. Framework::JSON::JSONObject* zJson) const
  63. {
  64. return BasicBlockTypeFactory::fromJson(zJson);
  65. }
  66. Framework::JSON::JSONObject* GrassBlockTypeFactory::toJsonObject(
  67. GrassBlockType* zObject) const
  68. {
  69. return BasicBlockTypeFactory::toJsonObject(zObject);
  70. }
  71. JSONObjectValidationBuilder* GrassBlockTypeFactory::addToValidator(
  72. JSONObjectValidationBuilder* builder) const
  73. {
  74. return BasicBlockTypeFactory::addToValidator(builder);
  75. }
  76. const char* GrassBlockTypeFactory::getTypeToken() const
  77. {
  78. return "grass";
  79. }
  80. const char* GrassBlockTypeFactory::getTypeName() const
  81. {
  82. return typeid(GrassBlockType).name();
  83. }