summaryrefslogtreecommitdiff
path: root/src/world.hpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/world.hpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/world.hpp b/src/world.hpp
new file mode 100644
index 0000000..12e0285
--- /dev/null
+++ b/src/world.hpp
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "xe_game_object.hpp"
+#include "chunk_renderer.hpp"
+#include "chunk.hpp"
+
+#include <vector>
+
+namespace app {
+
+class World {
+
+ public:
+
+ World(xe::GameObject& viewer, int renderDistance, int worldSeed);
+ ~World();
+
+ void reloadChunks();
+ void reloadChunks(int newRenderDistance);
+
+ void render(xe::Camera& camera);
+
+ private:
+
+ void resetChunks();
+
+ void unloadOldChunks();
+ void loadNewChunks();
+ void updateChunkMeshs();
+
+ int viewX, viewZ;
+
+ int worldSeed;
+ int renderDistance;
+
+ const xe::GameObject& viewer;
+ std::vector<xe::GameObject> loadedChunks;
+
+ ChunkRenderer chunkRenderer;
+
+};
+
+} \ No newline at end of file