2021-11-15 20:58:13 -05:00
|
|
|
#ifndef WORLD_H__
|
|
|
|
#define WORLD_H__
|
|
|
|
#include "define.h"
|
|
|
|
#include "chunk.h"
|
|
|
|
#include "array2d.h"
|
|
|
|
#include "vector3.h"
|
|
|
|
#include "transformation.h"
|
|
|
|
|
2021-11-18 19:27:16 -05:00
|
|
|
class Chunk;
|
|
|
|
|
2021-11-15 20:58:13 -05:00
|
|
|
class World {
|
|
|
|
public:
|
|
|
|
World();
|
|
|
|
~World();
|
|
|
|
|
|
|
|
Array2d<Chunk*>& GetChunks();
|
|
|
|
|
2021-11-15 21:39:50 -05:00
|
|
|
Chunk* ChunkAt(float x, float y, float z) const;
|
|
|
|
Chunk* ChunkAt(const Vector3f& pos) const;
|
2021-11-15 20:58:13 -05:00
|
|
|
|
2021-11-15 21:39:50 -05:00
|
|
|
|
|
|
|
BlockType BlockAt(float x, float y, float z, BlockType defaultBlockType = BTYPE_AIR) const;
|
|
|
|
BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const;
|
2021-11-15 20:58:13 -05:00
|
|
|
|
|
|
|
private:
|
|
|
|
Array2d<Chunk*> m_chunks = Array2d<Chunk*>(VIEW_DISTANCE, VIEW_DISTANCE);
|
|
|
|
|
|
|
|
int m_center[2] = {0, 0};
|
|
|
|
};
|
2021-11-16 20:48:52 -05:00
|
|
|
#endif // WORLD_H__
|
2021-11-15 20:58:13 -05:00
|
|
|
|