mirror of
https://github.com/moparisthebest/minetest
synced 2024-11-18 07:15:07 -05:00
Bugfix: make waypoints respect camera offset
This commit is contained in:
parent
09e8bbea03
commit
6f511b1d05
@ -3594,7 +3594,7 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
|
|||||||
Draw lua hud items
|
Draw lua hud items
|
||||||
*/
|
*/
|
||||||
if (show_hud)
|
if (show_hud)
|
||||||
hud.drawLuaElements();
|
hud.drawLuaElements(camera.getOffset());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Draw gui
|
Draw gui
|
||||||
|
@ -46,7 +46,7 @@ Hud::Hud(video::IVideoDriver *driver, scene::ISceneManager* smgr,
|
|||||||
this->gamedef = gamedef;
|
this->gamedef = gamedef;
|
||||||
this->player = player;
|
this->player = player;
|
||||||
this->inventory = inventory;
|
this->inventory = inventory;
|
||||||
|
|
||||||
m_screensize = v2u32(0, 0);
|
m_screensize = v2u32(0, 0);
|
||||||
m_displaycenter = v2s32(0, 0);
|
m_displaycenter = v2s32(0, 0);
|
||||||
m_hotbar_imagesize = floor(HOTBAR_IMAGE_SIZE * porting::getDisplayDensity() + 0.5);
|
m_hotbar_imagesize = floor(HOTBAR_IMAGE_SIZE * porting::getDisplayDensity() + 0.5);
|
||||||
@ -222,7 +222,7 @@ void Hud::drawItems(v2s32 upperleftpos, s32 itemcount, s32 offset,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Hud::drawLuaElements() {
|
void Hud::drawLuaElements(v3s16 camera_offset) {
|
||||||
for (size_t i = 0; i != player->hud.size(); i++) {
|
for (size_t i = 0; i != player->hud.size(); i++) {
|
||||||
HudElement *e = player->hud[i];
|
HudElement *e = player->hud[i];
|
||||||
if (!e)
|
if (!e)
|
||||||
@ -277,6 +277,7 @@ void Hud::drawLuaElements() {
|
|||||||
v3f w_pos = e->world_pos * BS;
|
v3f w_pos = e->world_pos * BS;
|
||||||
float distance = floor(10 * p_pos.getDistanceFrom(e->world_pos)) / 10;
|
float distance = floor(10 * p_pos.getDistanceFrom(e->world_pos)) / 10;
|
||||||
scene::ICameraSceneNode* camera = smgr->getActiveCamera();
|
scene::ICameraSceneNode* camera = smgr->getActiveCamera();
|
||||||
|
w_pos -= intToFloat(camera_offset, BS);
|
||||||
core::matrix4 trans = camera->getProjectionMatrix();
|
core::matrix4 trans = camera->getProjectionMatrix();
|
||||||
trans *= camera->getViewMatrix();
|
trans *= camera->getViewMatrix();
|
||||||
f32 transformed_pos[4] = { w_pos.X, w_pos.Y, w_pos.Z, 1.0f };
|
f32 transformed_pos[4] = { w_pos.X, w_pos.Y, w_pos.Z, 1.0f };
|
||||||
|
@ -115,6 +115,7 @@ public:
|
|||||||
bool use_hotbar_image;
|
bool use_hotbar_image;
|
||||||
std::string hotbar_selected_image;
|
std::string hotbar_selected_image;
|
||||||
bool use_hotbar_selected_image;
|
bool use_hotbar_selected_image;
|
||||||
|
v3s16 camera_offset;
|
||||||
|
|
||||||
Hud(video::IVideoDriver *driver,scene::ISceneManager* smgr,
|
Hud(video::IVideoDriver *driver,scene::ISceneManager* smgr,
|
||||||
gui::IGUIEnvironment* guienv, gui::IGUIFont *font,
|
gui::IGUIEnvironment* guienv, gui::IGUIFont *font,
|
||||||
@ -125,7 +126,7 @@ public:
|
|||||||
void resizeHotbar();
|
void resizeHotbar();
|
||||||
void drawCrosshair();
|
void drawCrosshair();
|
||||||
void drawSelectionBoxes(std::vector<aabb3f> &hilightboxes);
|
void drawSelectionBoxes(std::vector<aabb3f> &hilightboxes);
|
||||||
void drawLuaElements();
|
void drawLuaElements(v3s16 camera_offset);
|
||||||
private:
|
private:
|
||||||
void drawStatbar(v2s32 pos, u16 corner, u16 drawdir,
|
void drawStatbar(v2s32 pos, u16 corner, u16 drawdir,
|
||||||
std::string texture, s32 count, v2s32 offset);
|
std::string texture, s32 count, v2s32 offset);
|
||||||
|
Loading…
Reference in New Issue
Block a user