From dc1b7ab83faa46346dce6694f8c1c7aa9c13e2f9 Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Fri, 11 Oct 2019 17:32:41 +0100 Subject: [PATCH] Switchin computers again --- src/game.cpp | 16 ++++++++-------- src/renderer/voxel.cpp | 20 ++++++++++++++++++++ src/renderer/voxel.hpp | 6 ++++-- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index b5f3d88..b24505c 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -85,14 +85,14 @@ void Game::Setup(int w, int h) { m_world = std::make_unique(); m_world->Voxels.push_back(std::make_shared(0, 0, 0)); - //m_world->Voxels.push_back(std::make_shared(1, 0, 0)); - //m_world->Voxels.push_back(std::make_shared(-1, 0, 0)); - //m_world->Voxels.push_back(std::make_shared(0, 0, 1)); - //m_world->Voxels.push_back(std::make_shared(0, 0, -1)); - //m_world->Voxels.push_back(std::make_shared(-1, 0, -1)); - //m_world->Voxels.push_back(std::make_shared(-1, 0, 1)); - //m_world->Voxels.push_back(std::make_shared(1, 0, 1)); - //m_world->Voxels.push_back(std::make_shared(1, 0, -1)); + m_world->Voxels.push_back(std::make_shared(1, 0, 0)); + m_world->Voxels.push_back(std::make_shared(-1, 0, 0)); + m_world->Voxels.push_back(std::make_shared(0, 0, 1)); + m_world->Voxels.push_back(std::make_shared(0, 0, -1)); + m_world->Voxels.push_back(std::make_shared(-1, 0, -1)); + m_world->Voxels.push_back(std::make_shared(-1, 0, 1)); + m_world->Voxels.push_back(std::make_shared(1, 0, 1)); + m_world->Voxels.push_back(std::make_shared(1, 0, -1)); m_world->Shaders["Basic"] = std::make_shared(); m_world->Shaders["Basic"]->Load(GameConfig.ResourceBase + "shaders/simple"); diff --git a/src/renderer/voxel.cpp b/src/renderer/voxel.cpp index 055237b..1b8e109 100644 --- a/src/renderer/voxel.cpp +++ b/src/renderer/voxel.cpp @@ -5,10 +5,30 @@ #include "face.hpp" + Voxel::Voxel(int x, int y, int z) { m_model = glm::translate(glm::mat4(1.0f), { (float)x, (float)y, (float)z }); + // Texture winding order - top, bottom, left, right, front, back + + m_faces.push_back(Face((FaceDirection)0, 2)); + m_faces.push_back(Face((FaceDirection)1, 0)); + m_faces.push_back(Face((FaceDirection)2, 1)); + m_faces.push_back(Face((FaceDirection)3, 1)); + m_faces.push_back(Face((FaceDirection)4, 1)); + m_faces.push_back(Face((FaceDirection)5, 1)); + + for (auto& face : m_faces) { + + std::vector Vert; + std::vector UVs; + face.GetMesh(Vert, UVs); + m_vertices.insert(m_vertices.end(), Vert.begin(), Vert.end()); + m_uvs.insert(m_uvs.end(), UVs.begin(), UVs.end()); + + } + Face top((FaceDirection)0, 2); std::vector topVert; std::vector topUVs; diff --git a/src/renderer/voxel.hpp b/src/renderer/voxel.hpp index 65911fd..51c60e0 100644 --- a/src/renderer/voxel.hpp +++ b/src/renderer/voxel.hpp @@ -3,11 +3,11 @@ #include "../common.hpp" +#include "face.hpp" + class Camera; class Shader; -class Face; - class Voxel { public: Voxel(int x, int y, int z); @@ -16,6 +16,8 @@ public: private: + std::vector m_faces; + GLuint m_vao = 0; GLuint m_vbo = 0;