mirror of
https://github.com/minetest/minetestmapper.git
synced 2024-11-21 23:13:53 +01:00
Added color parser.
This commit is contained in:
parent
0d8358d4e3
commit
b7f69cc3df
@ -16,10 +16,6 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
TileGenerator::TileGenerator():
|
TileGenerator::TileGenerator():
|
||||||
m_bgColor("#ffffff"),
|
|
||||||
m_scaleColor("#000000"),
|
|
||||||
m_originColor("#ff0000"),
|
|
||||||
m_playerColor("#ff0000"),
|
|
||||||
m_drawOrigin(false),
|
m_drawOrigin(false),
|
||||||
m_drawPlayers(false),
|
m_drawPlayers(false),
|
||||||
m_drawScale(false),
|
m_drawScale(false),
|
||||||
@ -31,6 +27,10 @@ TileGenerator::TileGenerator():
|
|||||||
m_zMin(0),
|
m_zMin(0),
|
||||||
m_zMax(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()
|
TileGenerator::~TileGenerator()
|
||||||
@ -43,22 +43,40 @@ TileGenerator::~TileGenerator()
|
|||||||
|
|
||||||
void TileGenerator::setBgColor(const std::string &bgColor)
|
void TileGenerator::setBgColor(const std::string &bgColor)
|
||||||
{
|
{
|
||||||
m_bgColor = bgColor;
|
m_bgColor = parseColor(bgColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileGenerator::setScaleColor(const std::string &scaleColor)
|
void TileGenerator::setScaleColor(const std::string &scaleColor)
|
||||||
{
|
{
|
||||||
m_scaleColor = scaleColor;
|
m_scaleColor = parseColor(scaleColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileGenerator::setOriginColor(const std::string &originColor)
|
void TileGenerator::setOriginColor(const std::string &originColor)
|
||||||
{
|
{
|
||||||
m_originColor = originColor;
|
m_originColor = parseColor(originColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileGenerator::setPlayerColor(const std::string &playerColor)
|
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)
|
void TileGenerator::setDrawOrigin(bool drawOrigin)
|
||||||
@ -194,7 +212,7 @@ void TileGenerator::createImage()
|
|||||||
m_imgHeight = (m_zMax - m_zMin) * 16;
|
m_imgHeight = (m_zMax - m_zMin) * 16;
|
||||||
m_image = gdImageCreate(m_imgWidth, m_imgHeight);
|
m_image = gdImageCreate(m_imgWidth, m_imgHeight);
|
||||||
// Background
|
// 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)
|
void TileGenerator::writeImage(const std::string &output)
|
||||||
|
@ -31,6 +31,9 @@ struct BlockPos {
|
|||||||
class DbError {
|
class DbError {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ColorError {
|
||||||
|
};
|
||||||
|
|
||||||
class TileGenerator
|
class TileGenerator
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -43,6 +46,7 @@ public:
|
|||||||
void setScaleColor(const std::string &scaleColor);
|
void setScaleColor(const std::string &scaleColor);
|
||||||
void setOriginColor(const std::string &originColor);
|
void setOriginColor(const std::string &originColor);
|
||||||
void setPlayerColor(const std::string &playerColor);
|
void setPlayerColor(const std::string &playerColor);
|
||||||
|
Color parseColor(const std::string &color);
|
||||||
void setDrawOrigin(bool drawOrigin);
|
void setDrawOrigin(bool drawOrigin);
|
||||||
void setDrawPlayers(bool drawPlayers);
|
void setDrawPlayers(bool drawPlayers);
|
||||||
void setDrawScale(bool drawScale);
|
void setDrawScale(bool drawScale);
|
||||||
@ -59,10 +63,10 @@ private:
|
|||||||
void writeImage(const std::string &output);
|
void writeImage(const std::string &output);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_bgColor;
|
Color m_bgColor;
|
||||||
std::string m_scaleColor;
|
Color m_scaleColor;
|
||||||
std::string m_originColor;
|
Color m_originColor;
|
||||||
std::string m_playerColor;
|
Color m_playerColor;
|
||||||
bool m_drawOrigin;
|
bool m_drawOrigin;
|
||||||
bool m_drawPlayers;
|
bool m_drawPlayers;
|
||||||
bool m_drawScale;
|
bool m_drawScale;
|
||||||
|
Loading…
Reference in New Issue
Block a user