|
@@ -17,6 +17,12 @@ Chunk::Chunk( Framework::Punkt location, Game *zGame, int dimensionId )
|
|
zNeighbours[ 3 ] = 0;
|
|
zNeighbours[ 3 ] = 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+Chunk::Chunk( Framework::Punkt location, Game *zGame, int dimensionId, Framework::Reader *zReader )
|
|
|
|
+ : Chunk( location, zGame, dimensionId )
|
|
|
|
+{
|
|
|
|
+ load( zReader );
|
|
|
|
+}
|
|
|
|
+
|
|
Chunk::~Chunk()
|
|
Chunk::~Chunk()
|
|
{
|
|
{
|
|
for( int i = 0; i < CHUNK_SIZE * CHUNK_SIZE * WORLD_HEIGHT; i++ )
|
|
for( int i = 0; i < CHUNK_SIZE * CHUNK_SIZE * WORLD_HEIGHT; i++ )
|
|
@@ -27,14 +33,21 @@ Chunk::~Chunk()
|
|
delete[] blocks;
|
|
delete[] blocks;
|
|
}
|
|
}
|
|
|
|
|
|
-Block *Chunk::getBlockAt( Framework::Vec3<int> location )
|
|
|
|
|
|
+Block *Chunk::getBlockAt( Framework::Vec3<int> location ) const
|
|
{
|
|
{
|
|
- location.x -= this->location.x - CHUNK_SIZE / 2;
|
|
|
|
- location.y -= this->location.x - CHUNK_SIZE / 2;
|
|
|
|
|
|
+ location.x += CHUNK_SIZE / 2;
|
|
|
|
+ location.y += CHUNK_SIZE / 2;
|
|
Block *result = dynamic_cast<Block *>( blocks[ ( location.x * CHUNK_SIZE + location.y ) * CHUNK_SIZE + location.z ]->getThis() );
|
|
Block *result = dynamic_cast<Block *>( blocks[ ( location.x * CHUNK_SIZE + location.y ) * CHUNK_SIZE + location.z ]->getThis() );
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+Block *Chunk::zBlockAt( Framework::Vec3<int> location ) const
|
|
|
|
+{
|
|
|
|
+ location.x += CHUNK_SIZE / 2;
|
|
|
|
+ location.y += CHUNK_SIZE / 2;
|
|
|
|
+ return blocks[ ( location.x * CHUNK_SIZE + location.y ) * CHUNK_SIZE + location.z ];
|
|
|
|
+}
|
|
|
|
+
|
|
void Chunk::putBlockAt( Framework::Vec3<int> location, Block *block )
|
|
void Chunk::putBlockAt( Framework::Vec3<int> location, Block *block )
|
|
{
|
|
{
|
|
location.x -= this->location.x - CHUNK_SIZE / 2;
|
|
location.x -= this->location.x - CHUNK_SIZE / 2;
|
|
@@ -140,4 +153,14 @@ void Chunk::save( Framework::Writer *zWriter )
|
|
int Chunk::getDimensionId() const
|
|
int Chunk::getDimensionId() const
|
|
{
|
|
{
|
|
return dimensionId;
|
|
return dimensionId;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+Framework::Punkt Chunk::getCenter() const
|
|
|
|
+{
|
|
|
|
+ return location;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+Game *Chunk::zGameObj() const
|
|
|
|
+{
|
|
|
|
+ return zGame;
|
|
}
|
|
}
|