summaryrefslogtreecommitdiff
path: root/src/inventory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/inventory.h')
-rw-r--r--src/inventory.h66
1 files changed, 40 insertions, 26 deletions
diff --git a/src/inventory.h b/src/inventory.h
index 44ba6a5ad..3e05015ef 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -53,8 +53,12 @@ public:
// 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 ""; }
@@ -149,10 +153,9 @@ public:
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()
@@ -225,7 +228,7 @@ public:
}
#ifndef SERVER
- video::ITexture * getImage();
+ video::ITexture * getImage() const;
#endif
std::string getText();
@@ -276,7 +279,7 @@ public:
return new CraftItem(m_subname, m_count);
}
#ifndef SERVER
- video::ITexture * getImage();
+ video::ITexture * getImage() const;
#endif
std::string getText()
{
@@ -353,40 +356,43 @@ public:
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
@@ -401,6 +407,14 @@ public:
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()
{