]> git.localhorst.tv Git - blank.git/blobdiff - src/app.cpp
introduce space and shift for up and down :)
[blank.git] / src / app.cpp
index 8c40c61fbc5ab2c74ea00257ff40fe4823b79264..e8f92689f2fe8cc4cda80cc987baf0aa79b89819 100644 (file)
@@ -46,23 +46,6 @@ Application::Application()
 
        world.Generate();
 
-       outline.vertices = std::vector<glm::vec3>({
-               { 0.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f },
-               { 1.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 0.0f },
-               { 1.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f },
-               { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f },
-               { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f },
-               { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 1.0f },
-               { 1.0f, 1.0f, 0.0f }, { 1.0f, 1.0f, 1.0f },
-               { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 1.0f },
-               { 0.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, 1.0f },
-               { 1.0f, 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f },
-               { 1.0f, 1.0f, 1.0f }, { 0.0f, 1.0f, 1.0f },
-               { 0.0f, 1.0f, 1.0f }, { 0.0f, 0.0f, 1.0f },
-       });
-       outline.colors.resize(24, { -1, -1, -1 });
-       outline.Invalidate();
-
        glClearColor(0.0, 0.0, 0.0, 1.0);
 }
 
@@ -106,9 +89,11 @@ void Application::HandleEvents() {
                                                right = event.key.state == SDL_PRESSED;
                                                break;
                                        case SDLK_q:
+                                       case SDLK_SPACE:
                                                up = event.key.state == SDL_PRESSED;
                                                break;
                                        case SDLK_e:
+                                       case SDLK_LSHIFT:
                                                down = event.key.state == SDL_PRESSED;
                                                break;
                                }
@@ -176,6 +161,8 @@ void Application::Update(int dt) {
        if (world.Intersection(aim, glm::mat4(1.0f), &chunk, &blkid, &dist, &normal)) {
                glm::vec3 pos = Chunk::ToCoords(blkid);
                outline_visible = true;
+               outline.Clear();
+               chunk->BlockAt(blkid).type->FillOutlineModel(outline);
                outline_transform = glm::translate(chunk->Transform(), pos);
        } else {
                outline_visible = false;