#ifndef WORLD_H__ #define WORLD_H__ #include #include #include #include #include #include "define.h" #include "chunk.h" #include "array2d.h" #include "vector3.h" #include "player.h" #include "bullet.h" class Chunk; class Player; class Bullet; class World { public: World(); ~World(); Array2d& GetChunks(); Chunk* ChunkAt(float x, float y, float z) const; Chunk* ChunkAt(const Vector3f& pos) const; BlockType BlockAt(float x, float y, float z, BlockType defaultBlockType = BTYPE_AIR) const; BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const; void GetScope(unsigned int& x, unsigned int& y); void ChangeBlockAtCursor(BlockType blockType, Player& player, bool& block); void ChangeBlockAtPosition(BlockType blockType, Vector3f pos); private: Array2d m_chunks = Array2d(WORLD_SIZE_X, WORLD_SIZE_Y); std::vector m_tbDeleted; unsigned int m_center[2] = { UINT16_MAX / 2 - WORLD_SIZE_X, UINT16_MAX / 2 - WORLD_SIZE_Y }; }; #endif // WORLD_H__