Chunk.h 971 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <Punkt.h>
  3. #include <ReferenceCounter.h>
  4. #include <Reader.h>
  5. #include "Area.h"
  6. class Block;
  7. class Chunk : public virtual Framework::ReferenceCounter
  8. {
  9. private:
  10. int dimensionId;
  11. Framework::Punkt location;
  12. Block **blocks;
  13. Chunk *zNeighbours[ 4 ];
  14. public:
  15. Chunk( Framework::Punkt location, int dimensionId );
  16. Chunk( Framework::Punkt location, int dimensionId, Framework::StreamReader *zReader );
  17. ~Chunk();
  18. bool updateVisibility();
  19. Block *getBlockAt( Framework::Vec3<int> cLocation ) const;
  20. Block *zBlockAt( Framework::Vec3<int> cLocation ) const;
  21. void putBlockAt( Framework::Vec3<int> location, Block *block );
  22. void setNeighbor( Direction dir, Chunk *zChunk );
  23. void load( Framework::StreamReader *zReader );
  24. int getDimensionId() const;
  25. Framework::Punkt getCenter() const;
  26. Framework::Vec3<int> getMin() const;
  27. Framework::Vec3<int> getMax() const;
  28. };