Grass.cpp 2.3 KB

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