#include <string>
#include "common_irrlicht.h"
#include "debug.h"
-#include "mapblockobject.h"
#include "main.h" // For g_materials
#include "mapnode.h" // For content_t
// Shall make an exact clone of the item
virtual InventoryItem* clone() = 0;
#ifndef SERVER
- // Shall return an image to show in the GUI (or NULL)
- virtual video::ITexture * getImage() { return NULL; }
+ // Return the name of the image for this item
+ virtual std::string getBasename() const { return ""; }
+ // Shall return an image of the item (or NULL)
+ virtual video::ITexture * getImage() const { return NULL; }
+ // Shall return an image of the item without embellishments (or NULL)
+ virtual video::ITexture * getImageRaw() const { return getImage(); }
#endif
// Shall return a text to show in the GUI
virtual std::string getText() { return ""; }
return new MaterialItem(m_content, m_count);
}
#ifndef SERVER
- video::ITexture * getImage()
+ video::ITexture * getImage() const
{
return content_features(m_content).inventory_texture;
- return NULL;
}
#endif
std::string getText()
content_t m_content;
};
-//TODO: Remove
-class MapBlockObjectItem : public InventoryItem
-{
-public:
- MapBlockObjectItem(std::string inventorystring):
- InventoryItem(1)
- {
- m_inventorystring = inventorystring;
- }
-
- /*
- Implementation interface
- */
- virtual const char* getName() const
- {
- return "MBOItem";
- }
- virtual void serialize(std::ostream &os) const
- {
- std::string sane_string(m_inventorystring);
- str_replace_char(sane_string, '|', '?');
- os<<getName();
- os<<" ";
- os<<sane_string;
- os<<"|";
- }
- virtual InventoryItem* clone()
- {
- return new MapBlockObjectItem(m_inventorystring);
- }
-
-#ifndef SERVER
- video::ITexture * getImage();
-#endif
- std::string getText();
-
- /*
- Special methods
- */
- std::string getInventoryString()
- {
- return m_inventorystring;
- }
-
- MapBlockObject * createObject(v3f pos, f32 player_yaw, f32 player_pitch);
-
-private:
- std::string m_inventorystring;
-};
-
/*
An item that is used as a mid-product when crafting.
Subnames:
return new CraftItem(m_subname, m_count);
}
#ifndef SERVER
- video::ITexture * getImage();
+ video::ITexture * getImage() const;
#endif
std::string getText()
{
return new ToolItem(m_toolname, m_wear);
}
#ifndef SERVER
- video::ITexture * getImage()
- {
- if(g_texturesource == NULL)
- return NULL;
-
- std::string basename;
+ std::string getBasename() const {
if(m_toolname == "WPick")
- basename = "tool_woodpick.png";
+ return "tool_woodpick.png";
else if(m_toolname == "STPick")
- basename = "tool_stonepick.png";
+ return "tool_stonepick.png";
else if(m_toolname == "SteelPick")
- basename = "tool_steelpick.png";
+ return "tool_steelpick.png";
else if(m_toolname == "MesePick")
- basename = "tool_mesepick.png";
+ return "tool_mesepick.png";
else if(m_toolname == "WShovel")
- basename = "tool_woodshovel.png";
+ return "tool_woodshovel.png";
else if(m_toolname == "STShovel")
- basename = "tool_stoneshovel.png";
+ return "tool_stoneshovel.png";
else if(m_toolname == "SteelShovel")
- basename = "tool_steelshovel.png";
+ return "tool_steelshovel.png";
else if(m_toolname == "WAxe")
- basename = "tool_woodaxe.png";
+ return "tool_woodaxe.png";
else if(m_toolname == "STAxe")
- basename = "tool_stoneaxe.png";
+ return "tool_stoneaxe.png";
else if(m_toolname == "SteelAxe")
- basename = "tool_steelaxe.png";
+ return "tool_steelaxe.png";
else if(m_toolname == "WSword")
- basename = "tool_woodsword.png";
+ return "tool_woodsword.png";
else if(m_toolname == "STSword")
- basename = "tool_stonesword.png";
+ return "tool_stonesword.png";
else if(m_toolname == "SteelSword")
- basename = "tool_steelsword.png";
+ return "tool_steelsword.png";
else
- basename = "cloud.png";
+ return "cloud.png";
+}
+
+ video::ITexture * getImage() const
+ {
+ if(g_texturesource == NULL)
+ return NULL;
+
+ std::string basename = getBasename();
/*
Calculate a progress value with sane amount of
return g_texturesource->getTextureRaw(os.str());
}
+
+ video::ITexture * getImageRaw() const
+ {
+ if(g_texturesource == NULL)
+ return NULL;
+
+ return g_texturesource->getTextureRaw(getBasename());
+ }
#endif
std::string getText()
{