#ifndef WORLD_H #define WORLD_H #include "common/block/BlockRegistry.h" #include "common/entities/Entity.h" #include "common/world/BlockStorage.h" #include "utils/List.h" class World final { const BlockRegistry& blockRegistry; BlockStorage blocks; List entities; public: mutable bool dirty; World(const BlockRegistry& blockRegistry); void setBlock(int x, int y, int z, const Block& block); const Block& getBlock(int x, int y, int z) const; int getSize() const; int getHeight() const; void addEntity(Entity* e); void removeEntity(Entity* e); void tick(); private: List getBoxes(const CollisionBox& box) const; }; #endif