1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #pragma once
- #include "Block.h"
- #include <Vec3.h>
- #include <Array.h>
- #include <Datei.h>
- #include <Punkt.h>
- 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<int> 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<int> cLocation ) const;
- Block *zBlockAt( Framework::Vec3<int> cLocation ) const;
- void putBlockAt( Framework::Vec3<int> 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<int> getMin() const;
- Framework::Vec3<int> getMax() const;
- Game *zGameObj() const;
- };
|