]> git.localhorst.tv Git - blank.git/blobdiff - src/app.cpp
grow outline a bit to have it more visible
[blank.git] / src / app.cpp
index e8f92689f2fe8cc4cda80cc987baf0aa79b89819..8c0793dfc123b4ab0f14bafd806aafc8c118f09e 100644 (file)
@@ -20,6 +20,7 @@ Application::Application()
 , pitch_sensitivity(-0.0025f)
 , yaw_sensitivity(-0.001f)
 , cam()
+, hud()
 , world()
 , outline()
 , outline_visible(false)
@@ -42,10 +43,12 @@ Application::Application()
        glGenVertexArrays(1, &VertexArrayID);
        glBindVertexArray(VertexArrayID);
 
-       cam.Position(glm::vec3(0, 4, 4));
-
        world.Generate();
 
+       cam.Position(glm::vec3(0, 4, 4));
+       hud.Viewport(960, 600);
+       hud.Display(*world.BlockTypes()[place_id]);
+
        glClearColor(0.0, 0.0, 0.0, 1.0);
 }
 
@@ -121,6 +124,7 @@ void Application::HandleEvents() {
                                switch (event.window.event) {
                                        case SDL_WINDOWEVENT_RESIZED:
                                                cam.Viewport(event.window.data1, event.window.data2);
+                                               hud.Viewport(event.window.data1, event.window.data2);
                                                break;
                                        default:
                                                break;
@@ -164,6 +168,7 @@ void Application::Update(int dt) {
                outline.Clear();
                chunk->BlockAt(blkid).type->FillOutlineModel(outline);
                outline_transform = glm::translate(chunk->Transform(), pos);
+               outline_transform = glm::scale(outline_transform, glm::vec3(1.0001f));
        } else {
                outline_visible = false;
        }
@@ -171,6 +176,7 @@ void Application::Update(int dt) {
        if (pick) {
                if (chunk) {
                        place_id = chunk->BlockAt(blkid).type->id;
+                       hud.Display(*world.BlockTypes()[place_id]);
                }
                pick = false;
        }
@@ -201,6 +207,7 @@ void Application::Render() {
 
        program.Activate();
 
+       program.SetLightDirection({ -1.0f, -3.0f, -2.0f });
        program.SetVP(cam.View(), cam.Projection());
 
        for (Chunk &chunk : world.LoadedChunks()) {
@@ -213,6 +220,8 @@ void Application::Render() {
                outline.Draw();
        }
 
+       hud.Render(program);
+
        window.Flip();
 }