|
|
|
@ -14,13 +14,21 @@ private: |
|
|
|
|
int inventoryIndex=0; |
|
|
|
|
public: |
|
|
|
|
inline MenuItemButton(geom2d::rect<float>rect,std::vector<IT>&invRef,int invIndex,MenuFunc onClick) |
|
|
|
|
:MenuIconButton(rect,ITEM_DATA.at(invRef[invIndex]).Decal(),onClick),invRef(invRef),inventoryIndex(invIndex){} |
|
|
|
|
:MenuIconButton(rect,invRef.size()>invIndex?ITEM_DATA.at(invRef[invIndex]).Decal():nullptr,onClick),invRef(invRef),inventoryIndex(invIndex){ |
|
|
|
|
draggable=true; |
|
|
|
|
} |
|
|
|
|
inline Item GetItem(){ |
|
|
|
|
return Inventory::GetItem(invRef.at(inventoryIndex)); |
|
|
|
|
} |
|
|
|
|
inline void UseItem(uint32_t amt=1){ |
|
|
|
|
if(invRef.size()<=inventoryIndex)return; |
|
|
|
|
return Inventory::UseItem(invRef.at(inventoryIndex),amt); |
|
|
|
|
} |
|
|
|
|
protected: |
|
|
|
|
virtual void inline Update(Crawler*game)override{ |
|
|
|
|
virtual inline void Update(Crawler*game)override{ |
|
|
|
|
MenuIconButton::Update(game); |
|
|
|
|
} |
|
|
|
|
virtual void inline Draw(Crawler*game,vf2d parentPos,bool focused)override{ |
|
|
|
|
virtual inline void Draw(Crawler*game,vf2d parentPos,bool focused)override{ |
|
|
|
|
MenuIconButton::Draw(game,parentPos,focused); |
|
|
|
|
game->DrawRotatedDecal(parentPos+rect.middle(),icon,0,icon->sprite->Size()/2,{1,1},focused?WHITE:WHITE*"ThemeGlobal.MenuUnfocusedColorMult"_F); |
|
|
|
|
} |
|
|
|
|
}; |