X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fhud.cpp;h=266b80ae9dcbdc4f7aa29984817152501813c621;hb=f924498d348c33d0c27f129c599a7466312253b2;hp=d60401199e10f453096534c9f9685fef8c47fab5;hpb=82426ae2997d2b21703d2d5afb631a84736e975f;p=blank.git diff --git a/src/hud.cpp b/src/hud.cpp index d604011..266b80a 100644 --- a/src/hud.cpp +++ b/src/hud.cpp @@ -1,6 +1,8 @@ #include "hud.hpp" +#include "block.hpp" #include "init.hpp" +#include "shader.hpp" #include "shape.hpp" #include @@ -8,8 +10,10 @@ namespace blank { -HUD::HUD() -: block() +HUD::HUD(const BlockTypeRegistry &types) +: types(types) +, block() +, block_buf() , block_transform(1.0f) , block_visible(false) , crosshair() @@ -21,7 +25,7 @@ HUD::HUD() block_transform = glm::translate(block_transform, glm::vec3(50.0f, 50.0f, 0.0f)); block_transform = glm::scale(block_transform, glm::vec3(50.0f)); block_transform = glm::rotate(block_transform, 3.5f, glm::vec3(1.0f, 0.0f, 0.0f)); - block_transform = glm::rotate(block_transform, 0.85f, glm::vec3(0.0f, 1.0f, 0.0f)); + block_transform = glm::rotate(block_transform, 0.35f, glm::vec3(0.0f, 1.0f, 0.0f)); crosshair.vertices = std::vector({ { -10.0f, 0.0f, 0.0f }, { 10.0f, 0.0f, 0.0f }, @@ -45,9 +49,12 @@ void HUD::Viewport(float x, float y, float width, float height) { } -void HUD::Display(const BlockType &type) { - block.Clear(); - type.FillModel(block); +void HUD::Display(const Block &b) { + const BlockType &type = *types.Get(b.type); + + block_buf.Clear(); + type.FillModel(block_buf, b.Transform()); + block.Update(block_buf); block_visible = type.visible; }