, pitch_sensitivity(-0.0025f)
, yaw_sensitivity(-0.001f)
, cam()
+, hud()
, world()
, outline()
, outline_visible(false)
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);
}
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;
}
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;
if (pick) {
if (chunk) {
place_id = chunk->BlockAt(blkid).type->id;
+ hud.Display(*world.BlockTypes()[place_id]);
}
pick = false;
}
program.Activate();
+ program.SetLightDirection({ -1.0f, -3.0f, -2.0f });
program.SetVP(cam.View(), cam.Projection());
for (Chunk &chunk : world.LoadedChunks()) {
outline.Draw();
}
+ hud.Render(program);
+
window.Flip();
}