mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
Update inventory menu from formspec on-the-fly
This commit is contained in:
parent
3ccb0f691b
commit
a09d86dd3c
3 changed files with 55 additions and 10 deletions
|
@ -126,23 +126,24 @@ GUIInventoryMenu::GUIInventoryMenu(gui::IGUIEnvironment* env,
|
|||
IMenuManager *menumgr,
|
||||
InventoryManager *invmgr,
|
||||
IGameDef *gamedef
|
||||
):
|
||||
):
|
||||
GUIModalMenu(env, parent, id, menumgr),
|
||||
m_invmgr(invmgr),
|
||||
m_gamedef(gamedef)
|
||||
m_gamedef(gamedef),
|
||||
m_form_src(NULL),
|
||||
m_selected_item(NULL),
|
||||
m_selected_amount(0),
|
||||
m_selected_dragging(false),
|
||||
m_tooltip_element(NULL)
|
||||
{
|
||||
m_selected_item = NULL;
|
||||
m_selected_amount = 0;
|
||||
m_selected_dragging = false;
|
||||
m_tooltip_element = NULL;
|
||||
}
|
||||
|
||||
GUIInventoryMenu::~GUIInventoryMenu()
|
||||
{
|
||||
removeChildren();
|
||||
|
||||
if(m_selected_item)
|
||||
delete m_selected_item;
|
||||
delete m_selected_item;
|
||||
delete m_form_src;
|
||||
}
|
||||
|
||||
void GUIInventoryMenu::removeChildren()
|
||||
|
@ -244,8 +245,6 @@ void GUIInventoryMenu::regenerateGui(v2u32 screensize)
|
|||
pos.X += stof(f.next(",")) * (float)spacing.X;
|
||||
pos.Y += stof(f.next(";")) * (float)spacing.Y;
|
||||
v2s32 geom;
|
||||
/*geom.X = imgsize.X + ((stoi(f.next(","))-1) * spacing.X);
|
||||
geom.Y = imgsize.Y + ((stoi(f.next(";"))-1) * spacing.Y);*/
|
||||
geom.X = stof(f.next(",")) * (float)imgsize.X;
|
||||
geom.Y = stof(f.next(";")) * (float)imgsize.Y;
|
||||
std::string name = f.next("]");
|
||||
|
@ -430,6 +429,14 @@ void GUIInventoryMenu::drawSelectedItem()
|
|||
|
||||
void GUIInventoryMenu::drawMenu()
|
||||
{
|
||||
if(m_form_src){
|
||||
std::string newform = m_form_src->getForm();
|
||||
if(newform != m_formspec_string){
|
||||
m_formspec_string = newform;
|
||||
regenerateGui(m_screensize_old);
|
||||
}
|
||||
}
|
||||
|
||||
updateSelectedItem();
|
||||
|
||||
gui::IGUISkin* skin = Environment->getSkin();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue