summary refs log tree commit diff
path: root/src/World
diff options
context:
space:
mode:
Diffstat (limited to 'src/World')
-rw-r--r--src/World/Clouds.cpp5
-rw-r--r--src/World/Clouds.hpp3
-rw-r--r--src/World/World.cpp11
-rw-r--r--src/World/World.hpp2
4 files changed, 8 insertions, 13 deletions
diff --git a/src/World/Clouds.cpp b/src/World/Clouds.cpp
index 36f2441..2e0f76c 100644
--- a/src/World/Clouds.cpp
+++ b/src/World/Clouds.cpp
@@ -1,4 +1,5 @@
 #include "Clouds.hpp"
+#include "../Time.hpp"
 #include "../Math/MVP.hpp"
 #include "../Math/Perlin.hpp"
 #include "../Math/AABB.hpp"
@@ -33,8 +34,8 @@ Clouds::Clouds(Real ascept, Real fov, Real near, Real far, Vector<3, F32> sky_co
     m_program.unbind();
 }
 
-void Clouds::update(U64 time) {
-    m_x_offset += time / 5000.0;
+void Clouds::update(const Time& time) {
+    m_x_offset += 5.0 * time.delta();
 }
 
 void Clouds::render(const GFX::Camera& camera) const {
diff --git a/src/World/Clouds.hpp b/src/World/Clouds.hpp
index b2d5a10..35e7155 100644
--- a/src/World/Clouds.hpp
+++ b/src/World/Clouds.hpp
@@ -1,5 +1,6 @@
 #pragma once
 
+#include "../Time.hpp"
 #include "../GFX/Binder.hpp"
 #include "../GFX/Shading/Program.hpp"
 #include "../GFX/Shading/Uniform.hpp"
@@ -11,7 +12,7 @@ class Clouds {
 public:
     Clouds(Real ascept, Real fov, Real near, Real far, Vector<3, F32> sky_color, Vector<3, F32> sun_direction);
 
-    void update(U64 time);
+    void update(const Time& time);
     void render(const GFX::Camera& camera) const;
 private:
     constexpr static U32 CloudMatrixSize = 128;
diff --git a/src/World/World.cpp b/src/World/World.cpp
index de80afe..8685e8a 100644
--- a/src/World/World.cpp
+++ b/src/World/World.cpp
@@ -1,5 +1,6 @@
 #include "World.hpp"
 #include "Generation/ChunkMeshing.hpp"
+#include "../Time.hpp"
 
 namespace MC::World {
 
@@ -71,9 +72,9 @@ void World::load_finished_chunks_from_queue() {
 
 void World::request_generation(ChunkIndex index, Real priority) {
     m_queue.add(index, priority, [=]() -> GenerationResult {
-        auto start = timestamp();
+        auto start = Time::now();
         auto chunk = m_generator.generate(index.x, index.y);
-        return {chunk, timestamp() - start};
+        return {chunk, Time::now() - start};
     });
 }
 
@@ -89,12 +90,6 @@ World::ChunkData& World::get(ChunkIndex index) {
     return entry->second;
 }
 
-U64 World::timestamp() {
-    auto time = std::chrono::system_clock::now().time_since_epoch();
-    auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(time);
-    return ms.count();
-}
-
 void World::try_to_create_mesh_for_chunk(ChunkData& data) {
     auto index = data.index;
 
diff --git a/src/World/World.hpp b/src/World/World.hpp
index ef8b7af..8a11dbe 100644
--- a/src/World/World.hpp
+++ b/src/World/World.hpp
@@ -47,8 +47,6 @@ private:
 
     ChunkData& get(ChunkIndex index);
 
-    static U64 timestamp();
-
     U8 m_view_distance_radius = 10;
 
     struct GenerationResult {