blocks.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "blocks.h"
  2. #include <algorithm>
  3. bool isBlockMesh(BlockType type)
  4. {
  5. return !isCrossMesh(type);
  6. }
  7. bool isCrossMesh(BlockType type)
  8. {
  9. return isGrassMesh(type);
  10. }
  11. bool isControlBlock(BlockType type)
  12. {
  13. return
  14. type == BlockTypes::control1 ||
  15. type == BlockTypes::control2 ||
  16. type == BlockTypes::control3 ||
  17. type == BlockTypes::control4;
  18. }
  19. bool isOpaque(BlockType type)
  20. {
  21. //todo all leaves ?
  22. return
  23. type != BlockTypes::air
  24. && type != BlockTypes::leaves
  25. && type != BlockTypes::jungle_leaves
  26. && type != BlockTypes::palm_leaves
  27. && type != BlockTypes::birch_leaves
  28. && type != BlockTypes::spruce_leaves
  29. && type != BlockTypes::spruce_leaves_red
  30. && !(isTransparentGeometry(type))
  31. && !(isGrassMesh(type));
  32. }
  33. bool isTransparentGeometry(BlockType type)
  34. {
  35. return type == BlockTypes::ice || type == BlockTypes::water;
  36. }
  37. bool isGrassMesh(BlockType type)
  38. {
  39. return type == BlockTypes::grass
  40. || type == BlockTypes::rose
  41. || type == BlockTypes::cactus_bud
  42. || type == BlockTypes::dead_bush
  43. ;
  44. }