summaryrefslogtreecommitdiff
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 {