#pragma once #include #include #include #include #include #include #include "Block.h" #include "Area.h" class Chunk : public Framework::Model3DCollection { private: int dimensionId; Framework::Punkt location; Framework::RCArray blocks; bool isLoading; Framework::Critical cs; public: Chunk( Framework::Punkt location, int dimensionId ); Chunk( Framework::Punkt location, int dimensionId, Framework::StreamReader* zReader ); ~Chunk(); Block* zBlockAt( Framework::Vec3 cLocation ); void setBlock( Block* block ); void removeBlock( Block* zBlock ); void load( Framework::StreamReader* zReader ); int getDimensionId() const; Framework::Punkt getCenter() const; Framework::Vec3 getMin() const; Framework::Vec3 getMax() const; void forAll( std::function f ) override; void updateVisibility(); };