diff options
Diffstat (limited to 'src/Block.cpp')
-rw-r--r-- | src/Block.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/Block.cpp b/src/Block.cpp index 303909b..98f1b0a 100644 --- a/src/Block.cpp +++ b/src/Block.cpp @@ -1,5 +1,7 @@ #include "Block.hpp" +#include <string> + Block::~Block() {} Block::Block(unsigned short id, unsigned char state, @@ -13,5 +15,34 @@ bool operator==(const BlockId& lhs, const BlockId &rhs) { } bool operator<(const BlockId& lhs, const BlockId &rhs) { - return (lhs.id < rhs.id); -}
\ No newline at end of file + if (lhs.id < rhs.id) + return true; + return lhs.state < rhs.state; +} + +std::pair<std::string, std::string> TransformBlockIdToBlockStateName(BlockId blockId) { + switch (blockId.id) { + case 1: { + if (blockId.state > 6) + break; + static const std::pair<std::string, std::string> ids[] = { + std::pair<std::string,std::string>("stone", "normal"), + std::pair<std::string,std::string>("granite", "normal"), + std::pair<std::string,std::string>("smooth_granite", "normal"), + std::pair<std::string,std::string>("diorite", "normal"), + std::pair<std::string,std::string>("smooth_diorite", "normal"), + std::pair<std::string,std::string>("andesite", "normal"), + std::pair<std::string,std::string>("smooth_andesite", "normal"), + }; + return ids[blockId.state]; + } + case 2: { + return std::make_pair("grass", "snowy=false"); + } + + default: + break; + } + + return std::make_pair("", ""); +} |