-class ToolItem : public InventoryItem
-{
-public:
- ToolItem(std::string toolname, u16 wear):
- InventoryItem(1)
- {
- m_toolname = toolname;
- m_wear = wear;
- }
- /*
- Implementation interface
- */
- virtual const char* getName() const
- {
- return "ToolItem";
- }
- virtual void serialize(std::ostream &os)
- {
- os<<getName();
- os<<" ";
- os<<m_toolname;
- os<<" ";
- os<<m_wear;
- }
- virtual InventoryItem* clone()
- {
- return new ToolItem(m_toolname, m_wear);
- }
-#ifndef SERVER
- video::ITexture * getImage()
- {
- if(g_texturesource == NULL)
- return NULL;
-
- std::string basename;
- if(m_toolname == "WPick")
- basename = "tool_wpick.png";
- else if(m_toolname == "STPick")
- basename = "tool_stpick.png";
- else if(m_toolname == "MesePick")
- basename = "tool_mesepick.png";
- else
- basename = "cloud.png";
-
- /*
- Calculate a progress value with sane amount of
- maximum states
- */
- u32 maxprogress = 30;
- u32 toolprogress = (65535-m_wear)/(65535/maxprogress);
-
- float value_f = (float)toolprogress / (float)maxprogress;
- std::ostringstream os;
- os<<basename<<"^[progressbar"<<value_f;
-
- return g_texturesource->getTextureRaw(os.str());
-
- /*TextureSpec spec;
- spec.addTid(g_irrlicht->getTextureId(basename));
- spec.addTid(g_irrlicht->getTextureId(os.str()));
- return g_irrlicht->getTexture(spec);*/
- }
-#endif
- std::string getText()