mirror of
https://github.com/minetest/minetestmapper.git
synced 2024-12-23 06:22:25 +01:00
Added color parser.
This commit is contained in:
parent
0d8358d4e3
commit
b7f69cc3df
@ -16,10 +16,6 @@
|
||||
using namespace std;
|
||||
|
||||
TileGenerator::TileGenerator():
|
||||
m_bgColor("#ffffff"),
|
||||
m_scaleColor("#000000"),
|
||||
m_originColor("#ff0000"),
|
||||
m_playerColor("#ff0000"),
|
||||
m_drawOrigin(false),
|
||||
m_drawPlayers(false),
|
||||
m_drawScale(false),
|
||||
@ -31,6 +27,10 @@ TileGenerator::TileGenerator():
|
||||
m_zMin(0),
|
||||
m_zMax(0)
|
||||
{
|
||||
m_bgColor = {255, 255, 255};
|
||||
m_scaleColor = {0, 0, 0};
|
||||
m_originColor = {255, 0, 0};
|
||||
m_playerColor = {255, 0, 0};
|
||||
}
|
||||
|
||||
TileGenerator::~TileGenerator()
|
||||
@ -43,22 +43,40 @@ TileGenerator::~TileGenerator()
|
||||
|
||||
void TileGenerator::setBgColor(const std::string &bgColor)
|
||||
{
|
||||
m_bgColor = bgColor;
|
||||
m_bgColor = parseColor(bgColor);
|
||||
}
|
||||
|
||||
void TileGenerator::setScaleColor(const std::string &scaleColor)
|
||||
{
|
||||
m_scaleColor = scaleColor;
|
||||
m_scaleColor = parseColor(scaleColor);
|
||||
}
|
||||
|
||||
void TileGenerator::setOriginColor(const std::string &originColor)
|
||||
{
|
||||
m_originColor = originColor;
|
||||
m_originColor = parseColor(originColor);
|
||||
}
|
||||
|
||||
void TileGenerator::setPlayerColor(const std::string &playerColor)
|
||||
{
|
||||
m_playerColor = playerColor;
|
||||
m_playerColor = parseColor(playerColor);
|
||||
}
|
||||
|
||||
Color TileGenerator::parseColor(const std::string &color)
|
||||
{
|
||||
Color parsed;
|
||||
if (color.length() != 7) {
|
||||
throw ColorError();
|
||||
}
|
||||
if (color[0] != '#') {
|
||||
throw ColorError();
|
||||
}
|
||||
long col = strtol(color.c_str() + 1, NULL, 16);
|
||||
parsed.b = col % 256;
|
||||
col = col / 256;
|
||||
parsed.g = col % 256;
|
||||
col = col / 256;
|
||||
parsed.r = col % 256;
|
||||
return parsed;
|
||||
}
|
||||
|
||||
void TileGenerator::setDrawOrigin(bool drawOrigin)
|
||||
@ -194,7 +212,7 @@ void TileGenerator::createImage()
|
||||
m_imgHeight = (m_zMax - m_zMin) * 16;
|
||||
m_image = gdImageCreate(m_imgWidth, m_imgHeight);
|
||||
// Background
|
||||
gdImageColorAllocate(m_image, 255, 255, 255);
|
||||
gdImageColorAllocate(m_image, m_bgColor.r, m_bgColor.g, m_bgColor.b);
|
||||
}
|
||||
|
||||
void TileGenerator::writeImage(const std::string &output)
|
||||
|
@ -31,6 +31,9 @@ struct BlockPos {
|
||||
class DbError {
|
||||
};
|
||||
|
||||
class ColorError {
|
||||
};
|
||||
|
||||
class TileGenerator
|
||||
{
|
||||
private:
|
||||
@ -43,6 +46,7 @@ public:
|
||||
void setScaleColor(const std::string &scaleColor);
|
||||
void setOriginColor(const std::string &originColor);
|
||||
void setPlayerColor(const std::string &playerColor);
|
||||
Color parseColor(const std::string &color);
|
||||
void setDrawOrigin(bool drawOrigin);
|
||||
void setDrawPlayers(bool drawPlayers);
|
||||
void setDrawScale(bool drawScale);
|
||||
@ -59,10 +63,10 @@ private:
|
||||
void writeImage(const std::string &output);
|
||||
|
||||
private:
|
||||
std::string m_bgColor;
|
||||
std::string m_scaleColor;
|
||||
std::string m_originColor;
|
||||
std::string m_playerColor;
|
||||
Color m_bgColor;
|
||||
Color m_scaleColor;
|
||||
Color m_originColor;
|
||||
Color m_playerColor;
|
||||
bool m_drawOrigin;
|
||||
bool m_drawPlayers;
|
||||
bool m_drawScale;
|
||||
|
Loading…
Reference in New Issue
Block a user