#pragma once #include "Block.h" #include #include #include #include class Game; class Chunk : public virtual Framework::ReferenceCounter { private: Game *zGame; int dimensionId; Framework::Punkt location; Block **blocks; Chunk *zNeighbours[ 4 ]; Block *zBlockNeighbor( Framework::Vec3 location ); public: Chunk( Framework::Punkt location, Game *zGame, int dimensionId ); Chunk( Framework::Punkt location, Game *zGame, int dimensionId, Framework::StreamReader *zReader ); ~Chunk(); void api( Framework::StreamReader *zRequest, NetworkResponse *zResponse ); Block *getBlockAt( Framework::Vec3 cLocation ) const; Block *zBlockAt( Framework::Vec3 cLocation ) const; void putBlockAt( Framework::Vec3 location, Block *block ); void setNeighbor( Direction dir, Chunk *zChunk ); void load( Framework::StreamReader *zReader ); void save( Framework::StreamWriter *zWriter ); void removeUnusedBlocks(); int getDimensionId() const; Framework::Punkt getCenter() const; Framework::Vec3 getMin() const; Framework::Vec3 getMax() const; Game *zGameObj() const; };