this->gamedef = gamedef;
this->player = player;
this->inventory = inventory;
-
+
m_screensize = v2u32(0, 0);
m_displaycenter = v2s32(0, 0);
m_hotbar_imagesize = floor(HOTBAR_IMAGE_SIZE * porting::getDisplayDensity() + 0.5);
}
-void Hud::drawLuaElements() {
+void Hud::drawLuaElements(v3s16 camera_offset) {
for (size_t i = 0; i != player->hud.size(); i++) {
HudElement *e = player->hud[i];
if (!e)
v3f w_pos = e->world_pos * BS;
float distance = floor(10 * p_pos.getDistanceFrom(e->world_pos)) / 10;
scene::ICameraSceneNode* camera = smgr->getActiveCamera();
+ w_pos -= intToFloat(camera_offset, BS);
core::matrix4 trans = camera->getProjectionMatrix();
trans *= camera->getViewMatrix();
f32 transformed_pos[4] = { w_pos.X, w_pos.Y, w_pos.Z, 1.0f };
bool use_hotbar_image;
std::string hotbar_selected_image;
bool use_hotbar_selected_image;
+ v3s16 camera_offset;
Hud(video::IVideoDriver *driver,scene::ISceneManager* smgr,
gui::IGUIEnvironment* guienv, gui::IGUIFont *font,
void resizeHotbar();
void drawCrosshair();
void drawSelectionBoxes(std::vector<aabb3f> &hilightboxes);
- void drawLuaElements();
+ void drawLuaElements(v3s16 camera_offset);
private:
void drawStatbar(v2s32 pos, u16 corner, u16 drawdir,
std::string texture, s32 count, v2s32 offset);