diff --git a/CMakeLists.txt b/CMakeLists.txt index 65d0635..00bf3a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,7 +296,8 @@ if(WIN32) install(FILES ${META_FILES} DESTINATION ".") install(FILES "colors.txt" DESTINATION ".") - install(FILES "colors-heightmap.txt" DESTINATION ".") + install(FILES "heightmap-nodes.txt" DESTINATION ".") + install(FILES "heightmap-colors.txt" DESTINATION ".") install(FILES "colors-average-alpha.txt" DESTINATION ".") install(FILES "colors-cumulative-alpha.txt" DESTINATION ".") install(PROGRAMS "${PROJECT_BINARY_DIR}/minetestmapper.exe" DESTINATION ".") @@ -319,7 +320,8 @@ elseif(CREATE_FLAT_PACKAGE) install(FILES ${META_FILES} DESTINATION ".") install(FILES "colors.txt" DESTINATION ".") - install(FILES "colors-heightmap.txt" DESTINATION ".") + install(FILES "heightmap-nodes.txt" DESTINATION ".") + install(FILES "heightmap-colors.txt" DESTINATION ".") install(FILES "colors-average-alpha.txt" DESTINATION ".") install(FILES "colors-cumulative-alpha.txt" DESTINATION ".") install(PROGRAMS "${PROJECT_BINARY_DIR}/minetestmapper" DESTINATION ".") @@ -354,7 +356,8 @@ else(WIN32) install(FILES ${META_FILES} DESTINATION "share/doc/${PROJECT_NAME}" COMPONENT mapper) install(FILES colors.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) - install(FILES colors-heightmap.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) + install(FILES heightmap-nodes.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) + install(FILES heightmap-colors.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) install(FILES colors-average-alpha.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) install(FILES colors-cumulative-alpha.txt DESTINATION "share/games/${PROJECT_NAME}" COMPONENT mapper) install(TARGETS minetestmapper RUNTIME DESTINATION bin COMPONENT mapper) diff --git a/TileGenerator.cpp b/TileGenerator.cpp index 43361eb..60095f9 100644 --- a/TileGenerator.cpp +++ b/TileGenerator.cpp @@ -133,7 +133,6 @@ TileGenerator::TileGenerator(): verboseStatistics(false), progressIndicator(false), m_heightMap(false), - m_heightMapGrey(false), m_heightMapYScale(1), m_seaLevel(0), m_bgColor(255, 255, 255), @@ -180,39 +179,19 @@ TileGenerator::TileGenerator(): m_tileMapXOffset(0), m_tileMapYOffset(0) { + // Load default grey colors. + m_heightMapColors.push_back(HeightMapColor(INT_MIN, Color(0,0,0), -129, Color(0,0,0))); + m_heightMapColors.push_back(HeightMapColor(-128, Color(0,0,0), 127, Color(255,255,255))); + m_heightMapColors.push_back(HeightMapColor(128, Color(255,255,255), INT_MAX, Color(255,255,255))); } TileGenerator::~TileGenerator() { } -void TileGenerator::setHeightMap(bool enable, bool grey) +void TileGenerator::setHeightMap(bool enable) { m_heightMap = enable; - m_heightMapGrey = grey; - m_heightMapColors.clear(); - if (m_heightMapGrey) { - m_heightMapColors.push_back(HeightMapColor(INT_MIN, Color(0,0,0), -1, Color(0,0,0))); - m_heightMapColors.push_back(HeightMapColor(0, Color(0,0,0), 255, Color(255,255,255))); - m_heightMapColors.push_back(HeightMapColor(256, Color(255,255,255), INT_MAX, Color(255,255,255))); - } - else { - m_heightMapColors.push_back(HeightMapColor(INT_MIN, Color(4,4,4), -60, Color(4,4,4))); - m_heightMapColors.push_back(HeightMapColor(-60, Color(4,4,4), -45, Color(16,16,16))); - m_heightMapColors.push_back(HeightMapColor(-45, Color(16,16,16), -30, Color(16,32,64))); - m_heightMapColors.push_back(HeightMapColor(-30, Color(16,32,64), 0, Color(32,64,255))); - - m_heightMapColors.push_back(HeightMapColor(1, Color(32,128,32), 10, Color(64,192,64))); // Green - m_heightMapColors.push_back(HeightMapColor(10, Color(64,192,64), 20, Color(192,192,64))); // Green -> Yellow - m_heightMapColors.push_back(HeightMapColor(20, Color(192,192,64), 40, Color(128,128,64))); // Yellow - m_heightMapColors.push_back(HeightMapColor(40, Color(128,128,64), 50, Color(128,64,64))); // Yellow -> Red - m_heightMapColors.push_back(HeightMapColor(50, Color(128,64,64), 70, Color(64,32,32))); // Red - m_heightMapColors.push_back(HeightMapColor(70, Color(64,32,32), 80, Color(48,48,48))); // Red -> Grey - m_heightMapColors.push_back(HeightMapColor(80, Color(48,48,48), 140, Color(96,96,96))); // Grey - // Above 100, white suggests snowy :-) - m_heightMapColors.push_back(HeightMapColor(141, Color(160,160,160), 250, Color(250,250,250))); // Grey -> White - m_heightMapColors.push_back(HeightMapColor(250, Color(250,250,250), INT_MAX, Color(250,250,250))); - } } void TileGenerator::setHeightMapYScale(float scale) @@ -267,6 +246,14 @@ void TileGenerator::setPlayerColor(const Color &playerColor) m_playerColor = playerColor; } +void TileGenerator::setHeightMapColor(const Color &color0, const Color &color1) +{ + m_heightMapColors.clear(); + m_heightMapColors.push_back(HeightMapColor(INT_MIN, color0, -129, color0)); + m_heightMapColors.push_back(HeightMapColor(-128, color0, 127, color1)); + m_heightMapColors.push_back(HeightMapColor(128, color1, INT_MAX, color1)); +} + void TileGenerator::setTileBorderColor(const Color &tileBorderColor) { m_tileBorderColor = tileBorderColor; @@ -389,21 +376,41 @@ void TileGenerator::setMaxY(int y) m_reqYMaxNode = y - 16 * m_reqYMax; } -void TileGenerator::parseColorsFile(const std::string &fileName, int depth) +void TileGenerator::parseNodeColorsFile(const std::string &fileName) +{ + m_nodeColors.clear(); + parseDataFile(fileName, 0, "map colors", &TileGenerator::parseNodeColorsLine); +} + +void TileGenerator::parseHeightMapNodesFile(const std::string &fileName) +{ + m_nodeColors.clear(); + parseDataFile(fileName, 0, "heightmap nodes", &TileGenerator::parseHeightMapNodesLine); +} + +void TileGenerator::parseHeightMapColorsFile(const std::string &fileName) +{ + m_heightMapColors.clear(); + parseDataFile(fileName, 0, "heightmap colors", &TileGenerator::parseHeightMapColorsLine); +} + +void TileGenerator::parseDataFile(const std::string &fileName, int depth, const char *type, + void (TileGenerator::*parseLine)(const std::string &line, std::string name, + istringstream &iline, int linenr, const std::string &filename)) { if (depth > 100) - throw std::runtime_error(std::string("Excessive inclusion depth of colors files - suspected recursion (i.e. cycle); current file: '") + fileName + "'"); + throw std::runtime_error(std::string("Excessive inclusion depth of ") + type + " files - suspected recursion (i.e. cycle); current file: '" + fileName + "'"); if (depth == 0 && verboseReadColors >= 2) - cout << "Checking for colors file: " << fileName << std::endl; + cout << "Checking for " << type << " file: " << fileName << std::endl; ifstream in; in.open(fileName.c_str(), ifstream::in); if (!in.is_open()) { - throw std::runtime_error(std::string("Failed to open colors file '") + fileName + "'"); + throw std::runtime_error(std::string("Failed to open ") + type + " file '" + fileName + "'"); return; } if (verboseReadColors >= 1) - cout << "Reading colors file: " << fileName << std::endl; - parseColorsStream(in, fileName.c_str(), depth); + cout << "Reading " << type << " file: " << fileName << std::endl; + parseDataStream(in, fileName, depth, type, parseLine); in.close(); } @@ -449,7 +456,9 @@ void TileGenerator::generate(const std::string &input, const std::string &output printUnknown(); } -void TileGenerator::parseColorsStream(std::istream &in, const std::string &filename, int depth) +void TileGenerator::parseDataStream(std::istream &in, const std::string &filename, int depth, const char *type, + void (TileGenerator::*parseLine)(const std::string &line, std::string name, + istringstream &iline, int linenr, const std::string &filename)) { string line; int linenr = 0; @@ -462,7 +471,6 @@ void TileGenerator::parseColorsStream(std::istream &in, const std::string &filen iline.str(line); iline >> std::skipws; string name; - ColorEntry color; iline >> name >> std::ws; if (name.length() == 0) continue; @@ -487,54 +495,10 @@ void TileGenerator::parseColorsStream(std::istream &in, const std::string &filen } } #endif - parseColorsFile(includeFile, depth + 1); - } - else if (iline.good() && iline.peek() == '-') { - char c; - iline >> c >> std::ws; - if (iline.bad() || !iline.eof()) { - std::cerr << filename << ":" << linenr << ": bad line in colors file (" << line << ")" << std::endl; - continue; - } - m_colors.erase(name); + parseDataFile(includeFile, depth + 1, type, parseLine); } else { - int r, g, b, a, t; - iline >> r; - iline >> g; - iline >> b; - if (iline.fail()) { - std::cerr << filename << ":" << linenr << ": bad line in colors file (" << line << ")" << std::endl; - continue; - } - a = 0xff; - iline >> a; - t = 0; - iline >> t; - color = ColorEntry(r,g,b,a,t); - if ((m_drawAlpha && a == 0xff) || (!m_drawAlpha && a != 0xff)) { - // If drawing alpha, and the colors file contains both - // an opaque entry and a non-opaque entry for a name, prefer - // the non-opaque entry - // If not drawing alpha, and the colors file contains both - // an opaque entry and a non-opaque entry for a name, prefer - // the opaque entry - // Otherwise, any later entry overrides any previous entry - ColorMap::iterator it = m_colors.find(name); - if (it != m_colors.end()) { - if (m_drawAlpha && (a == 0xff && it->second.a != 0xff)) { - // drawing alpha: don't use opaque color to override - // non-opaque color - continue; - } - if (!m_drawAlpha && (a != 0xff && it->second.a == 0xff)) { - // not drawing alpha: don't use non-opaque color to - // override opaque color - continue; - } - } - } - m_colors[name] = color; + (this->*parseLine)(line, name, iline, linenr, filename); } } if (!in.eof()) { @@ -542,6 +506,128 @@ void TileGenerator::parseColorsStream(std::istream &in, const std::string &filen } } +void TileGenerator::parseNodeColorsLine(const std::string &line, std::string name, istringstream &iline, int linenr, const std::string &filename) +{ + if (iline.good() && iline.peek() == '-') { + char c; + iline >> c >> std::ws; + if (iline.bad() || !iline.eof()) { + std::cerr << filename << ":" << linenr << ": bad line in colors file (" << line << ")" << std::endl; + return; + } + m_nodeColors.erase(name); + } + else { + int r, g, b, a, t; + ColorEntry color; + iline >> r; + iline >> g; + iline >> b; + if (iline.fail()) { + std::cerr << filename << ":" << linenr << ": bad line in colors file (" << line << ")" << std::endl; + return; + } + a = 0xff; + iline >> a; + t = 0; + iline >> t; + color = ColorEntry(r,g,b,a,t); + if ((m_drawAlpha && a == 0xff) || (!m_drawAlpha && a != 0xff)) { + // If drawing alpha, and the colors file contains both + // an opaque entry and a non-opaque entry for a name, prefer + // the non-opaque entry + // If not drawing alpha, and the colors file contains both + // an opaque entry and a non-opaque entry for a name, prefer + // the opaque entry + // Otherwise, any later entry overrides any previous entry + NodeColorMap::iterator it = m_nodeColors.find(name); + if (it != m_nodeColors.end()) { + if (m_drawAlpha && (a == 0xff && it->second.a != 0xff)) { + // drawing alpha: don't use opaque color to override + // non-opaque color + return; + } + if (!m_drawAlpha && (a != 0xff && it->second.a == 0xff)) { + // not drawing alpha: don't use non-opaque color to + // override opaque color + return; + } + } + } + m_nodeColors[name] = color; + } +} + +void TileGenerator::parseHeightMapColorsLine(const std::string &line, std::string name, istringstream &iline, int linenr, const std::string &filename) +{ + (void) name; + int height[2]; + Color color[2]; + iline.str(line); // Reset + for (int i = 0; i < 2; i++) { + iline >> std::ws; + char c = iline.peek(); + iline >> height[i]; + if (iline.fail()) { + std::string value; + iline.clear(); + iline >> std::ws; + iline >> value >> std::ws; + if (iline.good()) { + if (value == "-oo" || (c == '-' && value=="oo")) + height[i] = INT_MIN; + else if (value == "oo" || value == "+oo") + height[i] = INT_MAX; + else { + iline.clear(ios::failbit); // Set to failed + break; + } + } + } + } + for (int i = 0; i < 2; i++) { + int r, g, b; + iline >> r; + iline >> g; + iline >> b; + color[i] = Color(r,g,b); + } + if (height[0] > height[1]) { + { + int tmp = height[0]; + height[0] = height[1]; + height[1] = tmp; + } + { + Color tmp = color[0]; + color[0] = color[1]; + color[1] = tmp; + } + } + iline >> std::ws; + if (iline.fail() || !iline.eof()) { + std::cerr << filename << ":" << linenr << ": bad line in heightmap colors file (" << line << ")" << std::endl; + return; + } + m_heightMapColors.push_back(HeightMapColor(height[0], color[0], height[1], color[1])); +} + +void TileGenerator::parseHeightMapNodesLine(const std::string &line, std::string name, istringstream &iline, int linenr, const std::string &filename) +{ + if (name == "-") { + iline >> std::ws >> name >> std::ws; + m_nodeColors.erase(name); + } + else { + m_nodeColors[name] = ColorEntry(0,0,0,255,1); // Dummy entry - but must not be transparent + } + // Don't care if not at eof (== really eol). We might be reading a colors.txt file... + if (iline.bad()) { + std::cerr << filename << ":" << linenr << ": bad line in heightmap nodes file (" << line << ")" << std::endl; + return; + } +} + std::string TileGenerator::getWorldDatabaseBackend(const std::string &input) { string backend; @@ -1201,15 +1287,16 @@ void TileGenerator::processMapBlock(const DB::Block &block) size_t end = name.find_first_of('\0'); if (end != std::string::npos) name.erase(end); - ColorMap::const_iterator color = m_colors.find(name); - if (name == "air" && !(m_drawAir && color != m_colors.end())) { + // In case of a height map, it stores just dummy colors... + NodeColorMap::const_iterator color = m_nodeColors.find(name); + if (name == "air" && !(m_drawAir && color != m_nodeColors.end())) { m_nodeIDColor[nodeId] = NodeColorNotDrawn; } else if (name == "ignore") { m_nodeIDColor[nodeId] = NodeColorNotDrawn; } else { - if (color != m_colors.end()) { + if (color != m_nodeColors.end()) { m_nodeIDColor[nodeId] = &color->second; } else { @@ -1306,7 +1393,7 @@ void TileGenerator::renderMap() cout << "Statistics" << ": blocks read: " << m_db->getBlocksReadCount() << " (" << m_db->getBlocksCachedCount() << " cached + " - << m_db->getBlocksUnCachedCount() << " uncached)" + << m_db->getBlocksUnCachedCount() << " uncached)" << "; blocks rendered: " << blocks_rendered << "; area rendered: " << area_rendered << "/" << (m_xMax-m_xMin+1) * (m_zMax-m_zMin+1) @@ -1357,7 +1444,7 @@ inline void TileGenerator::renderMapBlock(const ustring &mapBlock, const BlockPo float g = 0; float b = 0; int n = 0; - for (std::list::iterator i = m_heightMapColors.begin(); i != m_heightMapColors.end(); i++) { + for (HeightMapColorList::iterator i = m_heightMapColors.begin(); i != m_heightMapColors.end(); i++) { HeightMapColor &colorSpec = *i; if (adjustedHeight >= colorSpec.height[0] && adjustedHeight <= colorSpec.height[1]) { float weight = (float) (colorSpec.height[1] - adjustedHeight + 1) / (colorSpec.height[1] - colorSpec.height[0] + 1); diff --git a/TileGenerator.h b/TileGenerator.h index 8561892..c2a9f88 100644 --- a/TileGenerator.h +++ b/TileGenerator.h @@ -23,7 +23,8 @@ #include #include #include -#include +#include +#include #include "types.h" #include "PixelAttributes.h" #include "BlockPos.h" @@ -51,10 +52,10 @@ class TileGenerator { private: #if __cplusplus >= 201103L - typedef std::unordered_map ColorMap; + typedef std::unordered_map NodeColorMap; typedef std::unordered_map NodeID2NameMap; #else - typedef std::map ColorMap; + typedef std::map NodeColorMap; typedef std::map NodeID2NameMap; #endif public: @@ -64,6 +65,7 @@ public: int height[2]; Color color[2]; }; + typedef std::list HeightMapColorList; struct DrawObject { void setCenter(const NodeCoord &c) { haveCenter = true; center = c; } void setCorner1(const NodeCoord &c) { haveCenter = false; corner1 = c; } @@ -101,7 +103,7 @@ public: TileGenerator(); ~TileGenerator(); - void setHeightMap(bool enable, bool grey); + void setHeightMap(bool enable); void setHeightMapYScale(float scale); void setSeaLevel(int level); void setBgColor(const Color &bgColor); @@ -109,6 +111,7 @@ public: void setScaleColor(const Color &scaleColor); void setOriginColor(const Color &originColor); void setPlayerColor(const Color &playerColor); + void setHeightMapColor(const Color &color0, const Color &color1); Color parseColor(const Color &color); void setDrawOrigin(bool drawOrigin); void setDrawPlayers(bool drawPlayers); @@ -129,13 +132,14 @@ public: void setTileOrigin(int x, int y); void setTileCenter(int x, int y); void enableProgressIndicator(void); - void parseColorsFile(const std::string &fileName, int depth = 0); + void parseNodeColorsFile(const std::string &fileName); + void parseHeightMapNodesFile(const std::string &fileName); + void parseHeightMapColorsFile(const std::string &fileName); void setBackend(std::string backend); void setChunkSize(int size); void generate(const std::string &input, const std::string &output); private: - void parseColorsStream(std::istream &in, const std::string &filename, int depth); std::string getWorldDatabaseBackend(const std::string &input); int getMapChunkSize(const std::string &input); void openDb(const std::string &input); @@ -143,21 +147,21 @@ private: void createImage(); void computeMapParameters(const std::string &input); void computeTileParameters( - // Input parameters - int minPos, - int maxPos, - int mapStartNodeOffset, - int mapEndNodeOffset, - int tileOrigin, - int tileSize, - // Input / Output parameters - int &pictSize, - // Output parameters - int &tileBorderCount, - int &tileMapOffset, - int &tileMapExcess, - // Behavior selection - bool ascending); + // Input parameters + int minPos, + int maxPos, + int mapStartNodeOffset, + int mapEndNodeOffset, + int tileOrigin, + int tileSize, + // Input / Output parameters + int &pictSize, + // Output parameters + int &tileBorderCount, + int &tileMapOffset, + int &tileMapExcess, + // Behavior selection + bool ascending); void renderMap(); std::list getZValueList() const; void pushPixelRows(int zPosLimit); @@ -180,6 +184,19 @@ private: int borderLeft() const { return ((m_drawScale & DRAWSCALE_LEFT) ? SCALESIZE_VERT : 0); } int borderRight() const { return ((m_drawScale & DRAWSCALE_RIGHT) ? SCALESIZE_VERT : 0); } + void parseDataFile(const std::string &fileName, int depth, const char *type, + void (TileGenerator::*parseLine)(const std::string &line, std::string name, + std::istringstream &iline, int linenr, const std::string &filename)); + void parseDataStream(std::istream &in, const std::string &filename, int depth, const char *type, + void (TileGenerator::*parseLine)(const std::string &line, std::string name, + std::istringstream &iline, int linenr, const std::string &filename)); + void parseNodeColorsLine(const std::string &line, std::string name, std::istringstream &iline, + int linenr, const std::string &filename); + void parseHeightMapNodesLine(const std::string &line, std::string name, std::istringstream &iline, + int linenr, const std::string &filename); + void parseHeightMapColorsLine(const std::string &line, std::string name, std::istringstream &iline, + int linenr, const std::string &filename); + public: int verboseCoordinates; int verboseReadColors; @@ -188,10 +205,8 @@ public: private: bool m_heightMap; - bool m_heightMapGrey; float m_heightMapYScale; int m_seaLevel; - std::list m_heightMapColors; Color m_bgColor; Color m_blockDefaultColor; Color m_scaleColor; @@ -250,7 +265,8 @@ private: NodeID2NameMap m_nameMap; static const ColorEntry *NodeColorNotDrawn; const ColorEntry *m_nodeIDColor[MAPBLOCK_MAXCOLORS]; - ColorMap m_colors; + NodeColorMap m_nodeColors; + HeightMapColorList m_heightMapColors; uint16_t m_readedPixels[16]; std::set m_unknownNodes; std::vector m_drawObjects; diff --git a/colors-heightmap.txt b/colors-heightmap.txt deleted file mode 100644 index a62fdaf..0000000 --- a/colors-heightmap.txt +++ /dev/null @@ -1,1130 +0,0 @@ -nether:brick 40 18 18 -nether:sand 40 21 21 -nether:glowstone 221 197 141 -nether:rack 40 16 16 -moreblocks:panel_tree_12 66 52 35 -moreblocks:panel_desert_stone_14 122 74 57 -moreblocks:slab_mossycobble_1 102 116 85 -moreblocks:stair_iron_stone_bricks_right_half 104 98 97 -moreblocks:panel_steelblock_15 153 153 153 -moreblocks:stair_obsidian_glass_half 16 17 17 -moreblocks:panel_jungle_wood_2 51 35 12 -moreblocks:slab_obsidian_glass_14 16 17 17 -moreblocks:stair_wood_tile_full_alt_2 78 64 44 -moreblocks:slab_wood_tile_center_14 128 100 57 -moreblocks:stair_stonebrick 104 100 99 -moreblocks:slab_cactus_checker 130 138 130 -moreblocks:slab_tree_1 66 52 35 -moreblocks:slab_desert_stone_2 122 74 57 -moreblocks:slab_stonebrick_three_quarter 104 100 99 -moreblocks:slab_wood_tile_center_15 128 100 57 -moreblocks:slab_glow_glass_15 255 226 114 -moreblocks:panel_copperblock_2 110 86 60 -moreblocks:stair_coal_stone_alt_1 70 70 70 -moreblocks:panel_iron_glass_2 222 222 222 -moreblocks:panel_coal_stone 70 70 70 -moreblocks:stair_wood_tile_alt_2 78 65 44 -moreblocks:slab_split_stone_tile_14 97 97 97 -moreblocks:stair_plankstone_right_half 66 51 23 -moreblocks:slab_goldblock_2 126 116 35 -moreblocks:stair_iron_checker_alt_4 142 142 142 -moreblocks:stair_copperblock_alt 110 86 60 -moreblocks:stair_glass 192 192 227 -moreblocks:panel_iron_stone_12 134 134 134 -moreblocks:slab_wood 128 100 57 -moreblocks:stair_invisible_alt_1 0 0 0 -moreblocks:stair_split_stone_tile_alt_2 97 97 97 -moreblocks:slab_junglewood_14 51 35 12 -moreblocks:slab_split_stone_tile_2 97 97 97 -moreblocks:panel_diamondblock_1 103 195 201 -moreblocks:panel_diamondblock_15 103 195 201 -moreblocks:slab_wood_tile_14 78 65 44 -moreblocks:stair_coal_stone_bricks_alt_2 79 76 75 -moreblocks:slab_wood_tile_center_three_quarter 128 100 57 -moreblocks:panel_iron_glass_1 222 222 222 -moreblocks:slab_bronzeblock_14 116 70 26 -moreblocks:wood_tile_right 125 98 57 -moreblocks:stair_cactus_checker_alt 130 138 130 -moreblocks:stair_coal_stone_bricks 79 76 75 -moreblocks:stair_cactus_checker_alt_2 130 138 130 -moreblocks:stair_brick_alt 156 157 151 -moreblocks:slab_jungletree 120 106 78 -moreblocks:stair_glass_alt_4 192 192 227 -moreblocks:stair_brick 156 157 151 -moreblocks:slab_obsidian_14 16 16 16 -moreblocks:stair_wood_tile 78 65 44 -moreblocks:panel_iron_stone_bricks_2 104 98 97 -moreblocks:stair_jungletree_alt_1 120 106 78 -moreblocks:panel_sandstone_14 180 162 121 -moreblocks:slab_stone_tile_15 97 97 97 -moreblocks:panel_wood_tile_4 78 65 44 -moreblocks:slab_desert_stonebrick_quarter 105 64 49 -moreblocks:panel_obsidian_12 16 16 16 -moreblocks:slab_jungletree_three_quarter 120 106 78 -moreblocks:slab_coal_stone 70 70 70 -moreblocks:slab_super_glow_glass_14 255 255 120 -moreblocks:stair_goldblock_alt_1 126 116 35 -moreblocks:slab_sandstonebrick_15 160 144 108 -moreblocks:panel_stone_tile 97 97 97 -moreblocks:panel_cobble_4 133 133 133 -moreblocks:slab_junglewood_quarter 51 35 12 -moreblocks:super_glow_glass 255 255 120 -moreblocks:panel_stone_4 91 88 87 -moreblocks:panel_iron_stone_1 134 134 134 -moreblocks:slab_steelblock_three_quarter 153 153 153 -moreblocks:panel_steelblock_14 153 153 153 -moreblocks:panel_glow_glass_14 255 226 114 -moreblocks:panel_wood_tile_center_1 128 100 57 -moreblocks:stair_iron_stone_bricks_alt_1 104 98 97 -moreblocks:stair_brick_alt_2 156 157 151 -moreblocks:wood_tile_up 128 100 57 -moreblocks:stair_desert_stone_inner 122 74 57 -moreblocks:slab_stone 91 88 87 -moreblocks:stair_cactus_checker 130 138 130 -moreblocks:panel_iron_stone_2 134 134 134 -moreblocks:panel_circle_stone_bricks_2 91 88 87 -moreblocks:wood_tile_left 128 100 57 -moreblocks:stair_steelblock_half 153 153 153 -moreblocks:stair_coal_stone_bricks_alt 79 76 75 -moreblocks:slab_super_glow_glass_2 255 255 120 -moreblocks:panel_stonebrick_12 104 100 99 -moreblocks:panel_split_stone_tile_4 97 97 97 -moreblocks:stair_cactus_checker_outer 130 138 130 -moreblocks:stair_wood_tile_full_right_half 78 64 44 -moreblocks:slab_plankstone_1 66 51 23 -moreblocks:stair_split_stone_tile_alt 97 97 97 -moreblocks:slab_coal_stone_bricks_2 79 76 75 -moreblocks:slab_invisible_14 0 0 0 -moreblocks:panel_iron_stone_bricks 104 98 97 -moreblocks:stair_tree_inner 66 52 35 -moreblocks:panel_split_stone_tile_15 97 97 97 -moreblocks:stair_obsidian_glass_outer 16 17 17 -moreblocks:stair_junglewood_inner 51 35 12 -moreblocks:slab_glass_1 192 192 227 -moreblocks:panel_stone_2 91 88 87 -moreblocks:stair_wood_tile_center_alt_1 128 100 57 -moreblocks:circular_saw 78 64 44 -moreblocks:slab_steelblock_14 153 153 153 -moreblocks:stair_jungle_wood 51 35 12 -moreblocks:stair_stone_tile_alt 97 97 97 -moreblocks:coal_stone 70 70 70 -moreblocks:stair_bronzeblock_alt_4 116 70 26 -moreblocks:stair_stone_alt_1 91 88 87 -moreblocks:slab_glow_glass_1 255 226 114 -moreblocks:panel_wood_tile_full_15 78 64 44 -moreblocks:panel_stonebrick_4 104 100 99 -moreblocks:stair_cobble_inner 133 133 133 -moreblocks:stair_brick_right_half 156 157 151 -moreblocks:panel_sandstonebrick_2 160 144 108 -moreblocks:stair_glass_alt_1 192 192 227 -moreblocks:panel_cobble 133 133 133 -moreblocks:stair_coal_stone_bricks_inner 79 76 75 -moreblocks:panel_wood_2 128 100 57 -moreblocks:panel_wood_tile_center_12 128 100 57 -moreblocks:slab_bronzeblock_2 116 70 26 -moreblocks:slab_stone_2 91 88 87 -moreblocks:panel_wood_tile 78 65 44 -moreblocks:slab_obsidian_glass_15 16 17 17 -moreblocks:panel_jungle_wood_15 51 35 12 -moreblocks:slab_goldblock 126 116 35 -moreblocks:slab_wood_15 128 100 57 -moreblocks:slab_steelblock_1 153 153 153 -moreblocks:slab_stone_1 91 88 87 -moreblocks:slab_cobble_quarter 133 133 133 -moreblocks:stair_circle_stone_bricks_outer 91 88 87 -moreblocks:stair_iron_glass 222 222 222 -moreblocks:stair_junglewood_half 51 35 12 -moreblocks:slab_brick_2 156 157 151 -moreblocks:panel_sandstone_15 180 162 121 -moreblocks:slab_wood_tile_center_1 128 100 57 -moreblocks:iron_stone_bricks 104 98 97 -moreblocks:stair_stonebrick_alt_2 104 100 99 -moreblocks:stair_goldblock_right_half 126 116 35 -moreblocks:slab_plankstone_2 66 51 23 -moreblocks:slab_wood_tile_full_three_quarter 78 64 44 -moreblocks:panel_steelblock_12 153 153 153 -moreblocks:panel_coal_checker_15 133 133 133 -moreblocks:panel_split_stone_tile_1 97 97 97 -moreblocks:panel_iron_stone_bricks_1 104 98 97 -moreblocks:stair_iron_glass_half 222 222 222 -moreblocks:stair_stonebrick_half 104 100 99 -moreblocks:panel_copperblock_4 110 86 60 -moreblocks:panel_wood_tile_full 78 64 44 -moreblocks:slab_wood_tile_full_15 78 64 44 -moreblocks:panel_obsidian_14 16 16 16 -moreblocks:stair_invisible_alt_2 0 0 0 -moreblocks:stair_bronzeblock_inner 116 70 26 -moreblocks:stair_iron_checker 142 142 142 -moreblocks:stair_desert_stonebrick_alt_1 105 64 49 -moreblocks:panel_stonebrick_2 104 100 99 -moreblocks:rope 36 76 9 -moreblocks:stair_cobble_half 133 133 133 -moreblocks:panel_invisible_14 0 0 0 -moreblocks:panel_sandstonebrick_12 160 144 108 -moreblocks:stair_jungletree_alt 120 106 78 -moreblocks:iron_glass 222 222 222 -moreblocks:panel_jungletree_2 120 106 78 -moreblocks:stair_wood_tile_alt_1 78 65 44 -moreblocks:slab_coal_glass_2 130 130 130 -moreblocks:slab_invisible_three_quarter 0 0 0 -moreblocks:stair_steelblock_alt_4 153 153 153 -moreblocks:panel_coal_checker_1 133 133 133 -moreblocks:stair_bronzeblock 116 70 26 -moreblocks:stair_sandstonebrick_half 160 144 108 -moreblocks:stair_desert_stonebrick_half 105 64 49 -moreblocks:panel_coal_glass_2 130 130 130 -moreblocks:panel_iron_stone_15 134 134 134 -moreblocks:stair_goldblock_half 126 116 35 -moreblocks:stair_wood_tile_alt 78 65 44 -moreblocks:slab_glow_glass 255 226 114 -moreblocks:panel_plankstone_12 66 51 23 -moreblocks:stair_circle_stone_bricks 91 88 87 -moreblocks:slab_diamondblock_14 103 195 201 -moreblocks:panel_wood_tile_full_12 78 64 44 -moreblocks:slab_cactus_checker_1 130 138 130 -moreblocks:stair_plankstone_alt_2 66 51 23 -moreblocks:panel_iron_checker_4 142 142 142 -moreblocks:stair_mossycobble_alt_2 102 116 85 -moreblocks:stair_coal_glass_alt_2 130 130 130 -moreblocks:panel_glow_glass_2 255 226 114 -moreblocks:stair_jungletree_outer 120 106 78 -moreblocks:slab_stone_tile 97 97 97 -moreblocks:stair_copperblock 110 86 60 -moreblocks:stair_bronzeblock_outer 116 70 26 -moreblocks:stair_copperblock_inner 110 86 60 -moreblocks:slab_bronzeblock_three_quarter 116 70 26 -moreblocks:panel_glass_14 192 192 227 -moreblocks:panel_bronzeblock 116 70 26 -moreblocks:stair_diamondblock_alt_2 103 195 201 -moreblocks:stair_obsidian_glass_inner 16 17 17 -moreblocks:panel_split_stone_tile_14 97 97 97 -moreblocks:slab_steelblock 153 153 153 -moreblocks:panel_jungletree_12 120 106 78 -moreblocks:stair_cactus_checker_alt_4 130 138 130 -moreblocks:slab_plankstone_15 66 51 23 -moreblocks:panel_jungle_wood_14 51 35 12 -moreblocks:slab_jungle_wood_three_quarter 51 35 12 -moreblocks:panel_copperblock_12 110 86 60 -moreblocks:panel_mossycobble_12 102 116 85 -moreblocks:panel_bronzeblock_12 116 70 26 -moreblocks:slab_desert_stonebrick 105 64 49 -moreblocks:stair_super_glow_glass_alt_1 255 255 120 -moreblocks:panel_obsidian_glass_14 16 17 17 -moreblocks:stair_diamondblock_half 103 195 201 -moreblocks:stair_coal_glass_outer 130 130 130 -moreblocks:stair_desert_stonebrick_inner 105 64 49 -moreblocks:slab_sandstone_quarter 180 162 121 -moreblocks:wood_tile_flipped 128 100 57 -moreblocks:stair_coal_stone_bricks_outer 79 76 75 -moreblocks:panel_brick 156 157 151 -moreblocks:stair_goldblock_alt_4 126 116 35 -moreblocks:panel_sandstone_4 180 162 121 -moreblocks:slab_coal_stone_quarter 70 70 70 -moreblocks:stair_iron_glass_outer 222 222 222 -moreblocks:stair_desert_stonebrick_right_half 105 64 49 -moreblocks:panel_desert_stone_4 122 74 57 -moreblocks:panel_iron_stone_bricks_4 104 98 97 -moreblocks:stair_iron_checker_alt_1 142 142 142 -moreblocks:slab_glass_15 192 192 227 -moreblocks:panel_coal_glass_14 130 130 130 -moreblocks:stair_sandstone_inner 180 162 121 -moreblocks:stair_goldblock_alt 126 116 35 -moreblocks:stair_iron_stone_alt_1 134 134 134 -moreblocks:stair_iron_stone_bricks_inner 104 98 97 -moreblocks:stair_wood_outer 128 100 57 -moreblocks:stair_wood 128 100 57 -moreblocks:stair_desert_stone_half 122 74 57 -moreblocks:stair_coal_stone_half 70 70 70 -moreblocks:wood_tile_down 128 100 57 -moreblocks:stair_obsidian_alt_4 16 16 16 -moreblocks:stair_cactus_checker_alt_1 130 138 130 -moreblocks:slab_glass_14 192 192 227 -moreblocks:panel_plankstone_2 66 51 23 -moreblocks:panel_sandstonebrick 160 144 108 -moreblocks:slab_plankstone_three_quarter 66 51 23 -moreblocks:slab_iron_checker_1 142 142 142 -moreblocks:stair_wood_tile_full_alt_1 78 64 44 -moreblocks:slab_wood_tile_three_quarter 78 65 44 -moreblocks:slab_cobble_three_quarter 133 133 133 -moreblocks:cactus_checker 130 138 130 -moreblocks:panel_stone_tile_14 97 97 97 -moreblocks:stair_glow_glass_alt_1 255 226 114 -moreblocks:stair_iron_stone_alt_2 134 134 134 -moreblocks:slab_junglewood_15 51 35 12 -moreblocks:panel_brick_12 156 157 151 -moreblocks:stair_jungletree_half 120 106 78 -moreblocks:stair_stonebrick_inner 104 100 99 -moreblocks:panel_cactus_checker_14 130 138 130 -moreblocks:panel_invisible_1 0 0 0 -moreblocks:stair_diamondblock_alt 103 195 201 -moreblocks:slab_circle_stone_bricks_1 91 88 87 -moreblocks:coal_glass 130 130 130 -moreblocks:stair_sandstonebrick_alt 160 144 108 -moreblocks:stair_diamondblock_alt_4 103 195 201 -moreblocks:stair_desert_stone_outer 122 74 57 -moreblocks:stair_wood_alt_1 128 100 57 -moreblocks:stair_jungle_wood_right_half 51 35 12 -moreblocks:panel_wood_14 128 100 57 -moreblocks:stair_glow_glass_outer 255 226 114 -moreblocks:slab_coal_checker 133 133 133 -moreblocks:panel_plankstone_4 66 51 23 -moreblocks:stair_wood_tile_full 78 64 44 -moreblocks:slab_wood_14 128 100 57 -moreblocks:slab_stonebrick_quarter 104 100 99 -moreblocks:panel_coal_stone_bricks_15 79 76 75 -moreblocks:slab_jungle_wood 51 35 12 -moreblocks:slab_coal_checker_1 133 133 133 -moreblocks:stair_stonebrick_right_half 104 100 99 -moreblocks:slab_junglewood_1 51 35 12 -moreblocks:slab_circle_stone_bricks_three_quarter 91 88 87 -moreblocks:fence_jungle_wood 105 68 44 -moreblocks:panel_wood_tile_center_4 128 100 57 -moreblocks:all_faces_jungle_tree 120 106 78 -moreblocks:slab_sandstone 180 162 121 -moreblocks:slab_coal_stone_three_quarter 70 70 70 -moreblocks:stair_iron_stone_half 134 134 134 -moreblocks:stair_iron_glass_alt_1 222 222 222 -moreblocks:slab_steelblock_2 153 153 153 -moreblocks:panel_desert_stone_15 122 74 57 -moreblocks:stair_iron_glass_right_half 222 222 222 -moreblocks:panel_glass_12 192 192 227 -moreblocks:trap_stone 151 151 50 -moreblocks:stair_iron_stone 134 134 134 -moreblocks:panel_circle_stone_bricks_4 91 88 87 -moreblocks:stair_stonebrick_outer 104 100 99 -moreblocks:stair_wood_tile_full_half 78 64 44 -moreblocks:slab_iron_glass_15 222 222 222 -moreblocks:stair_jungle_wood_alt_4 51 35 12 -moreblocks:stair_stone_tile_half 97 97 97 -moreblocks:stair_glass_alt_2 192 192 227 -moreblocks:stair_invisible_inner 0 0 0 -moreblocks:stair_diamondblock_outer 103 195 201 -moreblocks:panel_sandstonebrick_15 160 144 108 -moreblocks:panel_diamondblock_4 103 195 201 -moreblocks:stair_stone_alt 91 88 87 -moreblocks:panel_mossycobble_15 102 116 85 -moreblocks:slab_iron_stone_quarter 134 134 134 -moreblocks:panel_junglewood_4 51 35 12 -moreblocks:panel_circle_stone_bricks 91 88 87 -moreblocks:panel_brick_4 156 157 151 -moreblocks:panel_coal_checker_2 133 133 133 -moreblocks:coal_checker 133 133 133 -moreblocks:panel_obsidian_glass_12 16 17 17 -moreblocks:trap_super_glow_glass 255 226 114 -moreblocks:stair_split_stone_tile_inner 97 97 97 -moreblocks:stair_sandstone_alt_1 180 162 121 -moreblocks:slab_iron_stone_1 134 134 134 -moreblocks:slab_cobble_1 133 133 133 -moreblocks:slab_coal_glass_15 130 130 130 -moreblocks:slab_cobble_14 133 133 133 -moreblocks:slab_sandstone_14 180 162 121 -moreblocks:stair_iron_stone_bricks_alt_2 104 98 97 -moreblocks:stair_cobble_alt_4 133 133 133 -moreblocks:panel_coal_stone_bricks_1 79 76 75 -moreblocks:panel_stonebrick 104 100 99 -moreblocks:panel_cactus_checker_1 130 138 130 -moreblocks:slab_stone_three_quarter 91 88 87 -moreblocks:slab_desert_stonebrick_15 105 64 49 -moreblocks:panel_steelblock_4 153 153 153 -moreblocks:panel_stone_15 91 88 87 -moreblocks:stair_steelblock_right_half 153 153 153 -moreblocks:slab_steelblock_quarter 153 153 153 -moreblocks:slab_coal_glass_three_quarter 130 130 130 -moreblocks:slab_iron_stone_2 134 134 134 -moreblocks:slab_brick_quarter 156 157 151 -moreblocks:stair_stone_tile 97 97 97 -moreblocks:slab_stone_tile_1 97 97 97 -moreblocks:stair_brick_half 156 157 151 -moreblocks:panel_coal_stone_15 70 70 70 -moreblocks:panel_desert_stone_2 122 74 57 -moreblocks:slab_coal_glass_quarter 130 130 130 -moreblocks:stair_junglewood_alt 51 35 12 -moreblocks:panel_super_glow_glass_14 255 255 120 -moreblocks:panel_obsidian 16 16 16 -moreblocks:panel_wood_tile_center_2 128 100 57 -moreblocks:slab_coal_stone_bricks_14 79 76 75 -moreblocks:trap_glass 147 147 51 -moreblocks:slab_desert_stone_14 122 74 57 -moreblocks:stair_coal_stone 70 70 70 -moreblocks:stair_iron_glass_alt 222 222 222 -moreblocks:stair_iron_glass_inner 222 222 222 -moreblocks:stair_invisible_outer 0 0 0 -moreblocks:panel_plankstone_1 66 51 23 -moreblocks:slab_cactus_checker_quarter 130 138 130 -moreblocks:panel_tree_15 66 52 35 -moreblocks:glow_glass 255 226 114 -moreblocks:panel_steelblock 153 153 153 -moreblocks:panel_bronzeblock_1 116 70 26 -moreblocks:slab_bronzeblock_1 116 70 26 -moreblocks:slab_coal_stone_bricks_quarter 79 76 75 -moreblocks:panel_iron_stone_4 134 134 134 -moreblocks:stair_mossycobble_alt_4 102 116 85 -moreblocks:panel_super_glow_glass_4 255 255 120 -moreblocks:wood_tile_center 128 100 57 -moreblocks:stair_obsidian_right_half 16 16 16 -moreblocks:slab_iron_stone_bricks_1 104 98 97 -moreblocks:stair_cobble 133 133 133 -moreblocks:stair_cactus_checker_inner 130 138 130 -moreblocks:slab_cobble_15 133 133 133 -moreblocks:panel_wood_tile_center_15 128 100 57 -moreblocks:slab_jungletree_quarter 120 106 78 -moreblocks:panel_desert_stonebrick_14 105 64 49 -moreblocks:stair_stone 91 88 87 -moreblocks:iron_stone 134 134 134 -moreblocks:panel_bronzeblock_15 116 70 26 -moreblocks:panel_obsidian_2 16 16 16 -moreblocks:slab_desert_stonebrick_1 105 64 49 -moreblocks:stair_junglewood_outer 51 35 12 -moreblocks:slab_wood_1 128 100 57 -moreblocks:slab_obsidian_glass_1 16 17 17 -moreblocks:stair_goldblock 126 116 35 -moreblocks:stair_super_glow_glass_outer 255 255 120 -moreblocks:panel_cobble_1 133 133 133 -moreblocks:slab_iron_stone_bricks_15 104 98 97 -moreblocks:stair_coal_stone_bricks_right_half 79 76 75 -moreblocks:stair_coal_glass 130 130 130 -moreblocks:slab_jungletree_14 120 106 78 -moreblocks:stair_coal_checker 133 133 133 -moreblocks:stair_wood_alt 128 100 57 -moreblocks:stair_glass_half 192 192 227 -moreblocks:stair_stone_alt_2 91 88 87 -moreblocks:stair_stone_tile_alt_4 97 97 97 -moreblocks:slab_circle_stone_bricks_quarter 91 88 87 -moreblocks:panel_diamondblock_14 103 195 201 -moreblocks:panel_goldblock_2 126 116 35 -moreblocks:panel_invisible 0 0 0 -moreblocks:panel_obsidian_glass_4 16 17 17 -moreblocks:panel_sandstone_1 180 162 121 -moreblocks:panel_desert_stonebrick_4 105 64 49 -moreblocks:panel_brick_14 156 157 151 -moreblocks:stair_coal_stone_inner 70 70 70 -moreblocks:slab_wood_tile_quarter 78 65 44 -moreblocks:stair_sandstonebrick_alt_2 160 144 108 -moreblocks:stair_circle_stone_bricks_half 91 88 87 -moreblocks:stair_stone_alt_4 91 88 87 -moreblocks:stair_bronzeblock_right_half 116 70 26 -moreblocks:panel_wood_tile_full_2 78 64 44 -moreblocks:stair_stone_outer 91 88 87 -moreblocks:slab_invisible 0 0 0 -moreblocks:panel_sandstone_12 180 162 121 -moreblocks:stair_sandstone_alt_2 180 162 121 -moreblocks:panel_plankstone 66 51 23 -moreblocks:slab_invisible_quarter 0 0 0 -moreblocks:stair_brick_inner 156 157 151 -moreblocks:stair_wood_alt_2 128 100 57 -moreblocks:slab_iron_glass_1 222 222 222 -moreblocks:slab_split_stone_tile_1 97 97 97 -moreblocks:slab_split_stone_tile_three_quarter 97 97 97 -moreblocks:slab_jungle_wood_15 51 35 12 -moreblocks:panel_plankstone_15 66 51 23 -moreblocks:stair_cobble_outer 133 133 133 -moreblocks:stair_jungle_wood_outer 51 35 12 -moreblocks:plankstone 66 51 23 -moreblocks:stair_cobble_alt 133 133 133 -moreblocks:panel_glow_glass_12 255 226 114 -moreblocks:slab_goldblock_14 126 116 35 -moreblocks:trap_glow_glass 255 226 114 -moreblocks:panel_mossycobble_14 102 116 85 -moreblocks:stair_steelblock_inner 153 153 153 -moreblocks:stair_super_glow_glass_alt_2 255 255 120 -moreblocks:stair_coal_checker_alt_1 133 133 133 -moreblocks:slab_wood_tile_1 78 65 44 -moreblocks:stair_tree_alt_4 66 52 35 -moreblocks:stair_coal_glass_half 130 130 130 -moreblocks:stair_stone_tile_alt_1 97 97 97 -moreblocks:panel_tree_14 66 52 35 -moreblocks:stair_iron_stone_inner 134 134 134 -moreblocks:slab_coal_glass 130 130 130 -moreblocks:stair_circle_stone_bricks_alt_1 91 88 87 -moreblocks:slab_wood_tile 78 65 44 -moreblocks:panel_plankstone_14 66 51 23 -moreblocks:stair_invisible 0 0 0 -moreblocks:panel_brick_1 156 157 151 -moreblocks:stair_wood_tile_center_half 128 100 57 -moreblocks:slab_glass_2 192 192 227 -moreblocks:slab_copperblock 110 86 60 -moreblocks:panel_iron_glass_4 222 222 222 -moreblocks:panel_jungletree_1 120 106 78 -moreblocks:panel_iron_checker_15 142 142 142 -moreblocks:panel_coal_glass_1 130 130 130 -moreblocks:stair_tree_alt_1 66 52 35 -moreblocks:stair_coal_glass_alt_1 130 130 130 -moreblocks:slab_glow_glass_three_quarter 255 226 114 -moreblocks:stair_stonebrick_alt_1 104 100 99 -moreblocks:stair_wood_tile_alt_4 78 65 44 -moreblocks:panel_invisible_12 0 0 0 -moreblocks:slab_iron_stone_three_quarter 134 134 134 -moreblocks:stair_goldblock_inner 126 116 35 -moreblocks:slab_bronzeblock 116 70 26 -moreblocks:slab_mossycobble_2 102 116 85 -moreblocks:stair_desert_stonebrick_outer 105 64 49 -moreblocks:slab_circle_stone_bricks_15 91 88 87 -moreblocks:panel_coal_glass_12 130 130 130 -moreblocks:stair_obsidian_alt_1 16 16 16 -moreblocks:stair_split_stone_tile 97 97 97 -moreblocks:slab_stone_tile_2 97 97 97 -moreblocks:stair_plankstone_outer 66 51 23 -moreblocks:stair_sandstone_alt 180 162 121 -moreblocks:slab_wood_tile_full_14 78 64 44 -moreblocks:slab_wood_tile_full_quarter 78 64 44 -moreblocks:stair_invisible_alt_4 0 0 0 -moreblocks:stair_goldblock_alt_2 126 116 35 -moreblocks:slab_circle_stone_bricks_14 91 88 87 -moreblocks:panel_stone_tile_4 97 97 97 -moreblocks:slab_diamondblock_15 103 195 201 -moreblocks:panel_desert_stonebrick_15 105 64 49 -moreblocks:stair_copperblock_half 110 86 60 -moreblocks:slab_iron_glass_three_quarter 222 222 222 -moreblocks:stair_steelblock_alt_1 153 153 153 -moreblocks:stair_cactus_checker_right_half 130 138 130 -moreblocks:stair_cobble_right_half 133 133 133 -moreblocks:slab_iron_glass_2 222 222 222 -moreblocks:slab_glow_glass_14 255 226 114 -moreblocks:all_faces_tree 66 52 35 -moreblocks:stair_wood_tile_center_outer 128 100 57 -moreblocks:stair_glow_glass 255 226 114 -moreblocks:slab_goldblock_three_quarter 126 116 35 -moreblocks:slab_copperblock_1 110 86 60 -moreblocks:slab_split_stone_tile 97 97 97 -moreblocks:panel_junglewood_2 51 35 12 -moreblocks:stair_wood_tile_center_right_half 128 100 57 -moreblocks:panel_coal_stone_bricks_12 79 76 75 -moreblocks:panel_glass_4 192 192 227 -moreblocks:stair_coal_checker_alt_4 133 133 133 -moreblocks:stair_cobble_alt_2 133 133 133 -moreblocks:stair_diamondblock_alt_1 103 195 201 -moreblocks:slab_tree 66 52 35 -moreblocks:panel_coal_checker 133 133 133 -moreblocks:stair_desert_stone_alt 122 74 57 -moreblocks:panel_wood_12 128 100 57 -moreblocks:panel_split_stone_tile 97 97 97 -moreblocks:panel_mossycobble_2 102 116 85 -moreblocks:slab_steelblock_15 153 153 153 -moreblocks:panel_coal_stone_bricks_14 79 76 75 -moreblocks:panel_iron_checker_12 142 142 142 -moreblocks:stair_tree_right_half 66 52 35 -moreblocks:slab_jungletree_15 120 106 78 -moreblocks:slab_diamondblock_2 103 195 201 -moreblocks:slab_glass 192 192 227 -moreblocks:stair_jungletree_alt_2 120 106 78 -moreblocks:stair_desert_stonebrick_alt_2 105 64 49 -moreblocks:slab_jungletree_2 120 106 78 -moreblocks:stair_iron_checker_alt 142 142 142 -moreblocks:panel_cactus_checker_2 130 138 130 -moreblocks:stair_obsidian_glass_alt_1 16 17 17 -moreblocks:stair_tree_alt_2 66 52 35 -moreblocks:panel_desert_stonebrick 105 64 49 -moreblocks:slab_sandstonebrick_three_quarter 160 144 108 -moreblocks:slab_coal_glass_1 130 130 130 -moreblocks:stair_junglewood_alt_1 51 35 12 -moreblocks:stair_desert_stone 122 74 57 -moreblocks:slab_wood_2 128 100 57 -moreblocks:stair_steelblock_alt_2 153 153 153 -moreblocks:panel_goldblock_12 126 116 35 -moreblocks:stair_jungletree_inner 120 106 78 -moreblocks:stair_coal_glass_alt_4 130 130 130 -moreblocks:slab_glow_glass_quarter 255 226 114 -moreblocks:stair_glow_glass_alt_4 255 226 114 -moreblocks:slab_obsidian_glass 16 17 17 -moreblocks:stair_mossycobble 102 116 85 -moreblocks:stair_iron_glass_alt_4 222 222 222 -moreblocks:stair_diamondblock 103 195 201 -moreblocks:stair_stone_tile_outer 97 97 97 -moreblocks:panel_stone_1 91 88 87 -moreblocks:panel_desert_stonebrick_2 105 64 49 -moreblocks:stair_super_glow_glass_alt 255 255 120 -moreblocks:iron_checker 142 142 142 -moreblocks:slab_goldblock_1 126 116 35 -moreblocks:panel_obsidian_glass_2 16 17 17 -moreblocks:stair_bronzeblock_alt 116 70 26 -moreblocks:slab_coal_stone_2 70 70 70 -moreblocks:stair_iron_stone_alt_4 134 134 134 -moreblocks:panel_brick_2 156 157 151 -moreblocks:stair_wood_tile_full_alt 78 64 44 -moreblocks:stair_sandstone_right_half 180 162 121 -moreblocks:wood_tile_full 78 64 44 -moreblocks:panel_coal_glass_15 130 130 130 -moreblocks:panel_invisible_4 0 0 0 -moreblocks:stair_bronzeblock_half 116 70 26 -moreblocks:stair_obsidian_glass 16 17 17 -moreblocks:panel_circle_stone_bricks_15 91 88 87 -moreblocks:stair_circle_stone_bricks_alt_4 91 88 87 -moreblocks:panel_wood_4 128 100 57 -moreblocks:panel_stone_14 91 88 87 -moreblocks:panel_goldblock_1 126 116 35 -moreblocks:slab_brick_1 156 157 151 -moreblocks:panel_iron_checker 142 142 142 -moreblocks:panel_coal_stone_14 70 70 70 -moreblocks:slab_iron_glass_quarter 222 222 222 -moreblocks:slab_tree_2 66 52 35 -moreblocks:stair_glow_glass_right_half 255 226 114 -moreblocks:stair_wood_right_half 128 100 57 -moreblocks:panel_obsidian_glass_1 16 17 17 -moreblocks:slab_cactus_checker_14 130 138 130 -moreblocks:stair_obsidian_half 16 16 16 -moreblocks:stair_tree_outer 66 52 35 -moreblocks:panel_goldblock 126 116 35 -moreblocks:slab_brick_three_quarter 156 157 151 -moreblocks:stair_plankstone_half 66 51 23 -moreblocks:slab_coal_stone_bricks 79 76 75 -moreblocks:slab_plankstone_14 66 51 23 -moreblocks:slab_obsidian_glass_2 16 17 17 -moreblocks:slab_jungletree_1 120 106 78 -moreblocks:slab_sandstonebrick 160 144 108 -moreblocks:slab_brick_14 156 157 151 -moreblocks:slab_iron_stone_bricks_three_quarter 104 98 97 -moreblocks:stair_mossycobble_alt 102 116 85 -moreblocks:slab_desert_stone_three_quarter 122 74 57 -moreblocks:panel_obsidian_15 16 16 16 -moreblocks:panel_bronzeblock_14 116 70 26 -moreblocks:panel_iron_stone_bricks_12 104 98 97 -moreblocks:stair_coal_checker_inner 133 133 133 -moreblocks:panel_mossycobble_1 102 116 85 -moreblocks:stair_bronzeblock_alt_1 116 70 26 -moreblocks:stair_glass_alt 192 192 227 -moreblocks:slab_stonebrick_1 104 100 99 -moreblocks:stair_stonebrick_alt 104 100 99 -moreblocks:slab_iron_glass 222 222 222 -moreblocks:panel_junglewood_15 51 35 12 -moreblocks:stair_sandstonebrick_inner 160 144 108 -moreblocks:panel_stone_tile_1 97 97 97 -moreblocks:slab_obsidian 16 16 16 -moreblocks:slab_sandstone_2 180 162 121 -moreblocks:slab_iron_stone_15 134 134 134 -moreblocks:stair_copperblock_right_half 110 86 60 -moreblocks:panel_stone_tile_15 97 97 97 -moreblocks:panel_diamondblock_2 103 195 201 -moreblocks:wood_tile 78 65 44 -moreblocks:slab_sandstone_three_quarter 180 162 121 -moreblocks:slab_obsidian_quarter 16 16 16 -moreblocks:panel_wood_tile_center_14 128 100 57 -moreblocks:stair_coal_glass_inner 130 130 130 -moreblocks:stair_glass_outer 192 192 227 -moreblocks:panel_cactus_checker_12 130 138 130 -moreblocks:stair_coal_stone_bricks_alt_4 79 76 75 -moreblocks:stair_brick_outer 156 157 151 -moreblocks:slab_tree_14 66 52 35 -moreblocks:panel_circle_stone_bricks_1 91 88 87 -moreblocks:panel_wood_tile_full_1 78 64 44 -moreblocks:panel_goldblock_14 126 116 35 -moreblocks:panel_coal_stone_12 70 70 70 -moreblocks:stair_glass_inner 192 192 227 -moreblocks:empty_bookshelf 128 100 57 -moreblocks:panel_steelblock_1 153 153 153 -moreblocks:stair_super_glow_glass 255 255 120 -moreblocks:stair_stone_half 91 88 87 -moreblocks:panel_mossycobble 102 116 85 -moreblocks:panel_desert_stone_1 122 74 57 -moreblocks:panel_glass_15 192 192 227 -moreblocks:stair_jungle_wood_alt 51 35 12 -moreblocks:stair_jungle_wood_alt_1 51 35 12 -moreblocks:stair_steelblock_outer 153 153 153 -moreblocks:panel_goldblock_4 126 116 35 -moreblocks:panel_super_glow_glass 255 255 120 -moreblocks:slab_stonebrick_14 104 100 99 -moreblocks:stair_iron_checker_half 142 142 142 -moreblocks:stair_steelblock 153 153 153 -moreblocks:slab_obsidian_15 16 16 16 -moreblocks:slab_desert_stone_1 122 74 57 -moreblocks:panel_desert_stonebrick_1 105 64 49 -moreblocks:slab_iron_stone_bricks_2 104 98 97 -moreblocks:stair_desert_stone_alt_4 122 74 57 -moreblocks:panel_desert_stone_12 122 74 57 -moreblocks:slab_copperblock_15 110 86 60 -moreblocks:panel_iron_stone_14 134 134 134 -moreblocks:slab_coal_stone_bricks_three_quarter 79 76 75 -moreblocks:stair_desert_stone_right_half 122 74 57 -moreblocks:panel_cobble_14 133 133 133 -moreblocks:stair_coal_stone_bricks_alt_1 79 76 75 -moreblocks:slab_invisible_1 0 0 0 -moreblocks:stair_stone_right_half 91 88 87 -moreblocks:slab_iron_stone_bricks_14 104 98 97 -moreblocks:slab_coal_checker_2 133 133 133 -moreblocks:stair_jungle_wood_inner 51 35 12 -moreblocks:panel_jungle_wood_4 51 35 12 -moreblocks:panel_jungle_wood_12 51 35 12 -moreblocks:panel_junglewood_14 51 35 12 -moreblocks:slab_mossycobble_14 102 116 85 -moreblocks:stair_diamondblock_inner 103 195 201 -moreblocks:slab_desert_stone_quarter 122 74 57 -moreblocks:stair_split_stone_tile_alt_4 97 97 97 -moreblocks:panel_coal_checker_4 133 133 133 -moreblocks:stair_iron_checker_right_half 142 142 142 -moreblocks:panel_sandstonebrick_14 160 144 108 -moreblocks:stair_coal_checker_alt_2 133 133 133 -moreblocks:slab_desert_stone_15 122 74 57 -moreblocks:slab_junglewood_2 51 35 12 -moreblocks:slab_wood_tile_full 78 64 44 -moreblocks:panel_coal_stone_bricks_2 79 76 75 -moreblocks:stair_wood_tile_full_inner 78 64 44 -moreblocks:panel_stone 91 88 87 -moreblocks:stair_iron_stone_bricks_half 104 98 97 -moreblocks:stair_brick_alt_1 156 157 151 -moreblocks:slab_jungle_wood_2 51 35 12 -moreblocks:slab_stone_tile_14 97 97 97 -moreblocks:panel_sandstone 180 162 121 -moreblocks:slab_iron_stone_bricks 104 98 97 -moreblocks:slab_coal_stone_bricks_1 79 76 75 -moreblocks:panel_tree_2 66 52 35 -moreblocks:panel_junglewood_12 51 35 12 -moreblocks:slab_obsidian_1 16 16 16 -moreblocks:panel_tree_1 66 52 35 -moreblocks:panel_wood_15 128 100 57 -moreblocks:stair_coal_stone_alt_4 70 70 70 -moreblocks:panel_bronzeblock_2 116 70 26 -moreblocks:stair_super_glow_glass_inner 255 255 120 -moreblocks:stair_desert_stonebrick_alt 105 64 49 -moreblocks:stair_super_glow_glass_half 255 255 120 -moreblocks:panel_stonebrick_1 104 100 99 -moreblocks:slab_coal_stone_1 70 70 70 -moreblocks:stair_split_stone_tile_half 97 97 97 -moreblocks:stair_obsidian_alt_2 16 16 16 -moreblocks:stair_wood_tile_center_inner 128 100 57 -moreblocks:panel_invisible_15 0 0 0 -moreblocks:slab_invisible_15 0 0 0 -moreblocks:panel_desert_stonebrick_12 105 64 49 -moreblocks:slab_cactus_checker_2 130 138 130 -moreblocks:stair_coal_stone_bricks_half 79 76 75 -moreblocks:panel_iron_stone 134 134 134 -moreblocks:panel_mossycobble_4 102 116 85 -moreblocks:slab_plankstone 66 51 23 -moreblocks:cactus_brick 206 212 202 -moreblocks:slab_sandstonebrick_quarter 160 144 108 -moreblocks:panel_desert_stone 122 74 57 -moreblocks:stair_obsidian_glass_alt_4 16 17 17 -moreblocks:stair_wood_half 128 100 57 -moreblocks:slab_jungle_wood_14 51 35 12 -moreblocks:slab_iron_checker_14 142 142 142 -moreblocks:slab_wood_tile_15 78 65 44 -moreblocks:stair_coal_stone_right_half 70 70 70 -moreblocks:panel_junglewood 51 35 12 -moreblocks:stair_circle_stone_bricks_alt_2 91 88 87 -moreblocks:slab_desert_stonebrick_three_quarter 105 64 49 -moreblocks:slab_super_glow_glass_quarter 255 255 120 -moreblocks:panel_tree 66 52 35 -moreblocks:stair_junglewood_right_half 51 35 12 -moreblocks:stair_iron_stone_bricks_alt_4 104 98 97 -moreblocks:panel_brick_15 156 157 151 -moreblocks:stair_desert_stonebrick_alt_4 105 64 49 -moreblocks:stair_brick_alt_4 156 157 151 -moreblocks:panel_bronzeblock_4 116 70 26 -moreblocks:slab_mossycobble_15 102 116 85 -moreblocks:stair_coal_stone_alt_2 70 70 70 -moreblocks:panel_iron_glass_14 222 222 222 -moreblocks:stair_plankstone_alt_1 66 51 23 -moreblocks:stair_coal_glass_right_half 130 130 130 -moreblocks:stair_desert_stone_alt_2 122 74 57 -moreblocks:stair_obsidian 16 16 16 -moreblocks:stair_wood_tile_outer 78 65 44 -moreblocks:slab_wood_quarter 128 100 57 -moreblocks:stair_desert_stone_alt_1 122 74 57 -moreblocks:stair_circle_stone_bricks_inner 91 88 87 -moreblocks:panel_jungletree_14 120 106 78 -moreblocks:stair_coal_stone_alt 70 70 70 -moreblocks:slab_copperblock_three_quarter 110 86 60 -moreblocks:slab_sandstone_1 180 162 121 -moreblocks:stair_split_stone_tile_outer 97 97 97 -moreblocks:stair_sandstone_alt_4 180 162 121 -moreblocks:panel_coal_glass 130 130 130 -moreblocks:panel_split_stone_tile_2 97 97 97 -moreblocks:stair_circle_stone_bricks_right_half 91 88 87 -moreblocks:stair_sandstone 180 162 121 -moreblocks:panel_wood_tile_15 78 65 44 -moreblocks:panel_coal_stone_4 70 70 70 -moreblocks:stair_plankstone_alt 66 51 23 -moreblocks:stair_wood_tile_inner 78 65 44 -moreblocks:stair_junglewood 51 35 12 -moreblocks:stair_stone_inner 91 88 87 -moreblocks:stair_obsidian_glass_right_half 16 17 17 -moreblocks:stair_plankstone_alt_4 66 51 23 -moreblocks:slab_split_stone_tile_15 97 97 97 -moreblocks:stair_coal_checker_outer 133 133 133 -moreblocks:stair_invisible_right_half 0 0 0 -moreblocks:slab_cobble 133 133 133 -moreblocks:stair_coal_checker_half 133 133 133 -moreblocks:slab_wood_three_quarter 128 100 57 -moreblocks:stair_wood_tile_center_alt 128 100 57 -moreblocks:panel_coal_stone_bricks 79 76 75 -moreblocks:slab_coal_stone_15 70 70 70 -moreblocks:panel_copperblock_15 110 86 60 -moreblocks:slab_coal_glass_14 130 130 130 -moreblocks:slab_cactus_checker_15 130 138 130 -moreblocks:panel_wood_tile_14 78 65 44 -moreblocks:stone_tile 97 97 97 -moreblocks:slab_coal_stone_14 70 70 70 -moreblocks:stair_mossycobble_alt_1 102 116 85 -moreblocks:panel_obsidian_glass_15 16 17 17 -moreblocks:slab_iron_checker_quarter 142 142 142 -moreblocks:slab_obsidian_three_quarter 16 16 16 -moreblocks:slab_stone_quarter 91 88 87 -moreblocks:panel_glass_2 192 192 227 -moreblocks:stair_cobble_alt_1 133 133 133 -moreblocks:slab_circle_stone_bricks_2 91 88 87 -moreblocks:panel_jungle_wood 51 35 12 -moreblocks:stair_iron_stone_bricks 104 98 97 -moreblocks:slab_bronzeblock_quarter 116 70 26 -moreblocks:slab_mossycobble_quarter 102 116 85 -moreblocks:stair_iron_checker_outer 142 142 142 -moreblocks:slab_obsidian_glass_quarter 16 17 17 -moreblocks:stair_iron_checker_alt_2 142 142 142 -moreblocks:stair_split_stone_tile_alt_1 97 97 97 -moreblocks:stair_iron_stone_bricks_alt 104 98 97 -moreblocks:panel_obsidian_4 16 16 16 -moreblocks:stair_stonebrick_alt_4 104 100 99 -moreblocks:slab_brick_15 156 157 151 -moreblocks:slab_invisible_2 0 0 0 -moreblocks:panel_iron_checker_2 142 142 142 -moreblocks:stair_copperblock_alt_4 110 86 60 -moreblocks:panel_glow_glass 255 226 114 -moreblocks:stair_jungletree_right_half 120 106 78 -moreblocks:stair_sandstonebrick_alt_4 160 144 108 -moreblocks:panel_coal_checker_12 133 133 133 -moreblocks:slab_super_glow_glass_15 255 255 120 -moreblocks:stair_iron_stone_alt 134 134 134 -moreblocks:panel_copperblock_14 110 86 60 -moreblocks:slab_super_glow_glass 255 255 120 -moreblocks:panel_cobble_2 133 133 133 -moreblocks:stair_iron_stone_bricks_outer 104 98 97 -moreblocks:slab_glass_quarter 192 192 227 -moreblocks:panel_wood_1 128 100 57 -moreblocks:slab_stonebrick_15 104 100 99 -moreblocks:slab_diamondblock_three_quarter 103 195 201 -moreblocks:panel_super_glow_glass_1 255 255 120 -moreblocks:slab_coal_checker_quarter 133 133 133 -moreblocks:slab_wood_tile_center 128 100 57 -moreblocks:slab_brick 156 157 151 -moreblocks:slab_desert_stonebrick_14 105 64 49 -moreblocks:panel_coal_checker_14 133 133 133 -moreblocks:slab_wood_tile_center_quarter 128 100 57 -moreblocks:panel_circle_stone_bricks_14 91 88 87 -moreblocks:panel_invisible_2 0 0 0 -moreblocks:stair_cactus_checker_half 130 138 130 -moreblocks:stair_wood_tile_full_outer 78 64 44 -moreblocks:stair_jungle_wood_alt_2 51 35 12 -moreblocks:slab_sandstonebrick_14 160 144 108 -moreblocks:clean_glass 192 192 227 -moreblocks:stair_obsidian_glass_alt_2 16 17 17 -moreblocks:slab_tree_three_quarter 66 52 35 -moreblocks:stair_sandstone_half 180 162 121 -moreblocks:slab_sandstone_15 180 162 121 -moreblocks:stair_obsidian_outer 16 16 16 -moreblocks:panel_cobble_15 133 133 133 -moreblocks:slab_circle_stone_bricks 91 88 87 -moreblocks:panel_jungletree_4 120 106 78 -moreblocks:panel_super_glow_glass_2 255 255 120 -moreblocks:stair_glow_glass_alt_2 255 226 114 -moreblocks:stair_iron_stone_outer 134 134 134 -moreblocks:panel_jungletree_15 120 106 78 -moreblocks:slab_junglewood 51 35 12 -moreblocks:slab_iron_stone 134 134 134 -moreblocks:slab_wood_tile_center_2 128 100 57 -moreblocks:slab_iron_stone_14 134 134 134 -moreblocks:panel_diamondblock_12 103 195 201 -moreblocks:slab_split_stone_tile_quarter 97 97 97 -moreblocks:slab_iron_checker_three_quarter 142 142 142 -moreblocks:panel_iron_stone_bricks_14 104 98 97 -moreblocks:panel_stone_12 91 88 87 -moreblocks:panel_stone_tile_12 97 97 97 -moreblocks:panel_iron_glass_12 222 222 222 -moreblocks:slab_coal_checker_14 133 133 133 -moreblocks:slab_junglewood_three_quarter 51 35 12 -moreblocks:panel_stonebrick_14 104 100 99 -moreblocks:stair_mossycobble_half 102 116 85 -moreblocks:panel_coal_glass_4 130 130 130 -moreblocks:panel_wood_tile_2 78 65 44 -moreblocks:stair_coal_checker_alt 133 133 133 -moreblocks:stair_jungletree 120 106 78 -moreblocks:panel_stonebrick_15 104 100 99 -moreblocks:stair_glass_right_half 192 192 227 -moreblocks:panel_coal_stone_2 70 70 70 -moreblocks:panel_wood_tile_full_4 78 64 44 -moreblocks:slab_diamondblock_quarter 103 195 201 -moreblocks:slab_desert_stonebrick_2 105 64 49 -moreblocks:slab_mossycobble_three_quarter 102 116 85 -moreblocks:stair_glow_glass_alt 255 226 114 -moreblocks:stair_circle_stone_bricks_alt 91 88 87 -moreblocks:panel_jungletree 120 106 78 -moreblocks:slab_stone_tile_quarter 97 97 97 -moreblocks:slab_jungle_wood_1 51 35 12 -moreblocks:slab_coal_checker_15 133 133 133 -moreblocks:slab_glow_glass_2 255 226 114 -moreblocks:slab_iron_checker 142 142 142 -moreblocks:slab_copperblock_14 110 86 60 -moreblocks:panel_iron_checker_14 142 142 142 -moreblocks:panel_wood_tile_1 78 65 44 -moreblocks:stair_wood_tile_center_alt_4 128 100 57 -moreblocks:stair_coal_checker_right_half 133 133 133 -moreblocks:slab_super_glow_glass_three_quarter 255 255 120 -moreblocks:slab_iron_stone_bricks_quarter 104 98 97 -moreblocks:stair_wood_inner 128 100 57 -moreblocks:stair_sandstonebrick_right_half 160 144 108 -moreblocks:slab_goldblock_15 126 116 35 -moreblocks:slab_plankstone_quarter 66 51 23 -moreblocks:panel_glass_1 192 192 227 -moreblocks:slab_goldblock_quarter 126 116 35 -moreblocks:stair_glow_glass_inner 255 226 114 -moreblocks:slab_wood_tile_full_2 78 64 44 -moreblocks:slab_wood_tile_full_1 78 64 44 -moreblocks:panel_cactus_checker_15 130 138 130 -moreblocks:stair_super_glow_glass_alt_4 255 255 120 -moreblocks:stair_jungle_wood_half 51 35 12 -moreblocks:slab_obsidian_2 16 16 16 -moreblocks:stair_sandstonebrick_outer 160 144 108 -moreblocks:panel_split_stone_tile_12 97 97 97 -moreblocks:slab_coal_checker_three_quarter 133 133 133 -moreblocks:slab_bronzeblock_15 116 70 26 -moreblocks:stair_jungletree_alt_4 120 106 78 -moreblocks:circle_stone_bricks 91 88 87 -moreblocks:slab_super_glow_glass_1 255 255 120 -moreblocks:panel_wood_tile_12 78 65 44 -moreblocks:stair_mossycobble_outer 102 116 85 -moreblocks:stair_copperblock_outer 110 86 60 -moreblocks:stair_super_glow_glass_right_half 255 255 120 -moreblocks:panel_iron_glass 222 222 222 -moreblocks:slab_iron_glass_14 222 222 222 -moreblocks:panel_sandstone_2 180 162 121 -moreblocks:stair_coal_stone_outer 70 70 70 -moreblocks:panel_glow_glass_1 255 226 114 -moreblocks:stair_tree_half 66 52 35 -moreblocks:slab_jungle_wood_quarter 51 35 12 -moreblocks:panel_stone_tile_2 97 97 97 -moreblocks:panel_tree_4 66 52 35 -moreblocks:panel_obsidian_1 16 16 16 -moreblocks:panel_glow_glass_15 255 226 114 -moreblocks:stair_obsidian_inner 16 16 16 -moreblocks:stair_mossycobble_right_half 102 116 85 -moreblocks:panel_super_glow_glass_12 255 255 120 -moreblocks:panel_steelblock_2 153 153 153 -moreblocks:panel_super_glow_glass_15 255 255 120 -moreblocks:slab_stonebrick_2 104 100 99 -moreblocks:stair_invisible_alt 0 0 0 -moreblocks:stair_iron_checker_inner 142 142 142 -moreblocks:panel_sandstonebrick_4 160 144 108 -moreblocks:slab_sandstonebrick_2 160 144 108 -moreblocks:panel_obsidian_glass 16 17 17 -moreblocks:slab_stone_tile_three_quarter 97 97 97 -moreblocks:panel_wood 128 100 57 -moreblocks:stair_obsidian_glass_alt 16 17 17 -moreblocks:stair_coal_glass_alt 130 130 130 -moreblocks:slab_mossycobble 102 116 85 -moreblocks:panel_iron_checker_1 142 142 142 -moreblocks:slab_glass_three_quarter 192 192 227 -moreblocks:panel_junglewood_1 51 35 12 -moreblocks:panel_iron_glass_15 222 222 222 -moreblocks:slab_cactus_checker_three_quarter 130 138 130 -moreblocks:slab_sandstonebrick_1 160 144 108 -moreblocks:panel_wood_tile_full_14 78 64 44 -moreblocks:slab_iron_checker_15 142 142 142 -moreblocks:panel_copperblock_1 110 86 60 -moreblocks:stair_desert_stonebrick 105 64 49 -moreblocks:stair_mossycobble_inner 102 116 85 -moreblocks:stair_stone_tile_inner 97 97 97 -moreblocks:stair_wood_tile_right_half 78 65 44 -moreblocks:stair_bronzeblock_alt_2 116 70 26 -moreblocks:stair_stone_tile_right_half 97 97 97 -moreblocks:stair_sandstonebrick 160 144 108 -moreblocks:slab_diamondblock 103 195 201 -moreblocks:slab_tree_quarter 66 52 35 -moreblocks:stair_steelblock_alt 153 153 153 -moreblocks:panel_iron_stone_bricks_15 104 98 97 -moreblocks:stair_wood_tile_center 128 100 57 -moreblocks:stair_junglewood_alt_2 51 35 12 -moreblocks:stair_iron_glass_alt_2 222 222 222 -moreblocks:stair_invisible_half 0 0 0 -moreblocks:slab_iron_checker_2 142 142 142 -moreblocks:panel_jungle_wood_1 51 35 12 -moreblocks:stair_wood_tile_center_alt_2 128 100 57 -moreblocks:panel_circle_stone_bricks_12 91 88 87 -moreblocks:panel_copperblock 110 86 60 -moreblocks:stair_diamondblock_right_half 103 195 201 -moreblocks:panel_glass 192 192 227 -moreblocks:panel_wood_tile_center 128 100 57 -moreblocks:panel_sandstonebrick_1 160 144 108 -moreblocks:stair_wood_tile_half 78 65 44 -moreblocks:slab_coal_stone_bricks_15 79 76 75 -moreblocks:stair_tree_alt 66 52 35 -moreblocks:panel_cactus_checker 130 138 130 -moreblocks:stair_sandstone_outer 180 162 121 -moreblocks:slab_copperblock_2 110 86 60 -moreblocks:slab_desert_stone 122 74 57 -moreblocks:slab_tree_15 66 52 35 -moreblocks:slab_diamondblock_1 103 195 201 -moreblocks:stair_wood_tile_full_alt_4 78 64 44 -moreblocks:coal_stone_bricks 79 76 75 -moreblocks:stair_iron_stone_right_half 134 134 134 -moreblocks:stair_sandstonebrick_alt_1 160 144 108 -moreblocks:stair_tree 66 52 35 -moreblocks:stair_junglewood_alt_4 51 35 12 -moreblocks:stair_goldblock_outer 126 116 35 -moreblocks:stair_plankstone_inner 66 51 23 -moreblocks:panel_coal_stone_bricks_4 79 76 75 -moreblocks:stair_obsidian_alt 16 16 16 -moreblocks:stair_plankstone 66 51 23 -moreblocks:slab_cobble_2 133 133 133 -moreblocks:stair_copperblock_alt_2 110 86 60 -moreblocks:stair_stone_tile_alt_2 97 97 97 -moreblocks:panel_goldblock_15 126 116 35 -moreblocks:slab_stone_15 91 88 87 -moreblocks:panel_diamondblock 103 195 201 -moreblocks:stair_wood_alt_4 128 100 57 -moreblocks:slab_stonebrick 104 100 99 -moreblocks:stair_glow_glass_half 255 226 114 -moreblocks:panel_coal_stone_1 70 70 70 -moreblocks:stair_split_stone_tile_right_half 97 97 97 -moreblocks:split_stone_tile 97 97 97 -moreblocks:panel_cobble_12 133 133 133 -moreblocks:panel_glow_glass_4 255 226 114 -moreblocks:panel_cactus_checker_4 130 138 130 -moreblocks:slab_stone_14 91 88 87 -moreblocks:slab_obsidian_glass_three_quarter 16 17 17 -moreblocks:slab_wood_tile_2 78 65 44 -moreblocks:slab_copperblock_quarter 110 86 60 -moreblocks:stair_copperblock_alt_1 110 86 60 -snow:snow5 225 227 255 -snow:snow3 225 227 255 -snow:snow8 225 227 255 -snow:snow 225 227 255 -snow:snow6 225 227 255 -snow:snow_block 225 227 255 -snow:snow7 225 227 255 -snow:snow_brick 223 225 253 -snow:dirt_with_snow 225 227 255 -snow:snow4 225 227 255 -snow:snow2 225 227 255 -snow:ice 155 155 254 -stairs:stair_wood_tile_full 78 64 44 -stairs:stair_mossycobble 102 116 85 -stairs:slab_jungle_wood 51 35 12 -stairs:slab_wood_tile_center 128 100 57 -stairs:stair_wood_tile 78 65 44 -stairs:stair_cobble 133 133 133 -stairs:stair_stonebrick 104 100 99 -stairs:slab_iron_glass 222 222 222 -stairs:stair_wood 128 100 57 -stairs:stair_stone 91 88 87 -stairs:stair_obsidian 16 16 16 -stairs:stair_copperblock 110 86 60 -stairs:stair_super_glow_glass 255 255 120 -stairs:slab_iron_stone 134 134 134 -stairs:stair_stone_tile 97 97 97 -stairs:stair_desert_stone 122 74 57 -stairs:slab_bronzeblock 116 70 26 -stairs:stair_goldblock 126 116 35 -stairs:stair_iron_checker 142 142 142 -stairs:stair_steelblock 153 153 153 -stairs:slab_coal_stone 70 70 70 -stairs:slab_obsidian_glass 16 17 17 -stairs:stair_sandstone 180 162 121 -stairs:stair_iron_stone 134 134 134 -stairs:slab_steelblock 153 153 153 -stairs:stair_split_stone_tile 97 97 97 -stairs:stair_brick 156 157 151 -stairs:stair_sandstonebrick 160 144 108 -stairs:slab_mossycobble 102 116 85 -stairs:stair_glass 192 192 227 -stairs:slab_cactus_checker 130 138 130 -stairs:slab_jungletree 120 106 78 -stairs:stair_coal_stone 70 70 70 -stairs:slab_junglewood 51 35 12 -stairs:stair_jungletree 120 106 78 -stairs:slab_wood 128 100 57 -stairs:stair_iron_stone_bricks 104 98 97 -stairs:stair_coal_checker 133 133 133 -stairs:stair_plankstone 66 51 23 -stairs:stair_obsidian_glass 16 17 17 -stairs:slab_desert_stone 122 74 57 -stairs:slab_iron_stone_bricks 104 98 97 -stairs:slab_glass 192 192 227 -stairs:stair_bronzeblock 116 70 26 -stairs:slab_desert_stonebrick 105 64 49 -stairs:slab_tree 66 52 35 -stairs:slab_stone 91 88 87 -stairs:stair_cactus_checker 130 138 130 -stairs:slab_diamondblock 103 195 201 -stairs:slab_super_glow_glass 255 255 120 -stairs:slab_cobble 133 133 133 -stairs:stair_tree 66 52 35 -stairs:slab_wood_tile 78 65 44 -stairs:slab_glow_glass 255 226 114 -stairs:slab_wood_tile_full 78 64 44 -stairs:stair_coal_stone_bricks 79 76 75 -stairs:slab_coal_glass 130 130 130 -stairs:stair_coal_glass 130 130 130 -stairs:slab_brick 156 157 151 -stairs:slab_stone_tile 97 97 97 -stairs:slab_goldblock 126 116 35 -stairs:slab_plankstone 66 51 23 -stairs:slab_coal_stone_bricks 79 76 75 -stairs:stair_jungle_wood 51 35 12 -stairs:stair_circle_stone_bricks 91 88 87 -stairs:slab_iron_checker 142 142 142 -stairs:stair_wood_tile_center 128 100 57 -stairs:slab_stonebrick 104 100 99 -stairs:slab_sandstonebrick 160 144 108 -stairs:stair_invisible 0 0 0 -stairs:stair_iron_glass 222 222 222 -stairs:stair_desert_stonebrick 105 64 49 -stairs:stair_diamondblock 103 195 201 -stairs:slab_sandstone 180 162 121 -stairs:slab_copperblock 110 86 60 -stairs:stair_glow_glass 255 226 114 -stairs:stair_junglewood 51 35 12 -stairs:slab_circle_stone_bricks 91 88 87 -stairs:slab_obsidian 16 16 16 -stairs:slab_coal_checker 133 133 133 -stairs:slab_split_stone_tile 97 97 97 -mg:dirt_with_dry_grass 114 99 53 -default:glass 192 192 227 64 16 -default:sandstonebrick 160 144 108 -default:goldblock 126 116 35 -default:obsidian_glass 16 17 17 64 16 -default:stone_with_copper 91 88 87 -default:ice 155 155 254 -default:stone_with_mese 91 88 87 -default:diamondblock 103 195 201 -default:coalblock 58 58 58 -default:stone_with_gold 91 88 87 -default:dirt_with_grass_footsteps 101 138 35 -default:desert_stonebrick 105 64 49 -default:stone_with_iron 91 88 87 -default:bronzeblock 116 70 26 -default:dirt_with_snow 225 227 255 -default:desert_sand 209 165 97 -default:steelblock 153 153 153 -default:snow 225 227 255 -default:desert_stone 122 74 57 -default:mese 200 202 0 -default:stone_with_coal 91 88 87 -default:snowblock 225 227 255 -default:stonebrick 104 100 99 -default:sandstone 180 162 121 -default:dirt_with_grass 72 107 44 -default:brick 156 157 151 -default:cobble 133 133 133 -default:grass_3 71 109 32 -default:stone 91 88 87 -default:sand 219 209 167 -default:obsidian 16 16 16 -default:dirt 122 83 58 -default:mossycobble 102 116 85 -default:stone_with_diamond 91 88 87 -default:gravel 92 84 76 -default:clay 178 178 178 -default:copperblock 110 86 60 -wool:magenta 210 3 121 -wool:blue 0 78 152 -wool:cyan 0 142 150 -wool:orange 220 91 24 -wool:grey 141 141 141 -wool:dark_grey 65 65 65 -wool:pink 255 144 144 -wool:white 228 228 228 -wool:violet 96 2 177 -wool:black 33 33 33 -wool:green 99 230 28 -wool:brown 95 49 0 -wool:yellow 253 237 16 -wool:dark_green 36 109 0 -wool:red 180 20 20 -farming:soil_wet 73 40 19 -farming:soil 110 75 53 diff --git a/heightmap-colors.txt b/heightmap-colors.txt new file mode 100644 index 0000000..be3f52c --- /dev/null +++ b/heightmap-colors.txt @@ -0,0 +1,25 @@ + +# The colors in this file were primarily chosen so that they make a standard +# minetest world look good. +# Secondarily, they were chosen to span as large a height-range as possible. + + +-oo -150 4 4 4 4 4 4 # Almost black +-150 -90 4 4 4 48 16 48 # Dark purple -> almost black +-90 -60 48 16 48 16 32 64 # Dark blue -> dark purple +-60 0 16 32 64 32 64 255 # Light blue -> dark blue +# The green, yellow and red-ish colors could be spread over a much +# greater height range, but using these parameters, a map of a regular +# world contains some yellow, and even red-ish as well +# See below +1 10 32 128 32 64 192 64 # Green -> Yellow-ish +10 20 64 192 64 192 192 64 # Yellow-ish -> Yellow +20 40 192 192 64 128 128 64 # Yellow -> dark yellow +40 50 128 128 64 128 64 64 # Dark yellow -> red-ish +50 70 128 64 64 64 32 32 # Red-ish -> dark red-ish +70 80 64 32 32 48 48 48 # Dark red-ish -> dark grey +80 140 48 48 48 96 96 96 # Dark grey -> less dark gray +# Above 140, white suggests snowy :-) +141 250 160 160 160 250 250 250 # Light gray -> almost white +250 oo 250 250 250 250 250 250 # Almost white + diff --git a/heightmap-nodes.txt b/heightmap-nodes.txt new file mode 100644 index 0000000..a9a8b63 --- /dev/null +++ b/heightmap-nodes.txt @@ -0,0 +1,1130 @@ +nether:brick +nether:sand +nether:glowstone +nether:rack +moreblocks:panel_tree_12 +moreblocks:panel_desert_stone_14 +moreblocks:slab_mossycobble_1 +moreblocks:stair_iron_stone_bricks_right_half +moreblocks:panel_steelblock_15 +moreblocks:stair_obsidian_glass_half +moreblocks:panel_jungle_wood_2 +moreblocks:slab_obsidian_glass_14 +moreblocks:stair_wood_tile_full_alt_2 +moreblocks:slab_wood_tile_center_14 +moreblocks:stair_stonebrick +moreblocks:slab_cactus_checker +moreblocks:slab_tree_1 +moreblocks:slab_desert_stone_2 +moreblocks:slab_stonebrick_three_quarter +moreblocks:slab_wood_tile_center_15 +moreblocks:slab_glow_glass_15 +moreblocks:panel_copperblock_2 +moreblocks:stair_coal_stone_alt_1 +moreblocks:panel_iron_glass_2 +moreblocks:panel_coal_stone +moreblocks:stair_wood_tile_alt_2 +moreblocks:slab_split_stone_tile_14 +moreblocks:stair_plankstone_right_half +moreblocks:slab_goldblock_2 +moreblocks:stair_iron_checker_alt_4 +moreblocks:stair_copperblock_alt +moreblocks:stair_glass +moreblocks:panel_iron_stone_12 +moreblocks:slab_wood +moreblocks:stair_invisible_alt_1 +moreblocks:stair_split_stone_tile_alt_2 +moreblocks:slab_junglewood_14 +moreblocks:slab_split_stone_tile_2 +moreblocks:panel_diamondblock_1 +moreblocks:panel_diamondblock_15 +moreblocks:slab_wood_tile_14 +moreblocks:stair_coal_stone_bricks_alt_2 +moreblocks:slab_wood_tile_center_three_quarter +moreblocks:panel_iron_glass_1 +moreblocks:slab_bronzeblock_14 +moreblocks:wood_tile_right +moreblocks:stair_cactus_checker_alt +moreblocks:stair_coal_stone_bricks +moreblocks:stair_cactus_checker_alt_2 +moreblocks:stair_brick_alt +moreblocks:slab_jungletree +moreblocks:stair_glass_alt_4 +moreblocks:stair_brick +moreblocks:slab_obsidian_14 +moreblocks:stair_wood_tile +moreblocks:panel_iron_stone_bricks_2 +moreblocks:stair_jungletree_alt_1 +moreblocks:panel_sandstone_14 +moreblocks:slab_stone_tile_15 +moreblocks:panel_wood_tile_4 +moreblocks:slab_desert_stonebrick_quarter +moreblocks:panel_obsidian_12 +moreblocks:slab_jungletree_three_quarter +moreblocks:slab_coal_stone +moreblocks:slab_super_glow_glass_14 +moreblocks:stair_goldblock_alt_1 +moreblocks:slab_sandstonebrick_15 +moreblocks:panel_stone_tile +moreblocks:panel_cobble_4 +moreblocks:slab_junglewood_quarter +moreblocks:super_glow_glass +moreblocks:panel_stone_4 +moreblocks:panel_iron_stone_1 +moreblocks:slab_steelblock_three_quarter +moreblocks:panel_steelblock_14 +moreblocks:panel_glow_glass_14 +moreblocks:panel_wood_tile_center_1 +moreblocks:stair_iron_stone_bricks_alt_1 +moreblocks:stair_brick_alt_2 +moreblocks:wood_tile_up +moreblocks:stair_desert_stone_inner +moreblocks:slab_stone +moreblocks:stair_cactus_checker +moreblocks:panel_iron_stone_2 +moreblocks:panel_circle_stone_bricks_2 +moreblocks:wood_tile_left +moreblocks:stair_steelblock_half +moreblocks:stair_coal_stone_bricks_alt +moreblocks:slab_super_glow_glass_2 +moreblocks:panel_stonebrick_12 +moreblocks:panel_split_stone_tile_4 +moreblocks:stair_cactus_checker_outer +moreblocks:stair_wood_tile_full_right_half +moreblocks:slab_plankstone_1 +moreblocks:stair_split_stone_tile_alt +moreblocks:slab_coal_stone_bricks_2 +moreblocks:slab_invisible_14 +moreblocks:panel_iron_stone_bricks +moreblocks:stair_tree_inner +moreblocks:panel_split_stone_tile_15 +moreblocks:stair_obsidian_glass_outer +moreblocks:stair_junglewood_inner +moreblocks:slab_glass_1 +moreblocks:panel_stone_2 +moreblocks:stair_wood_tile_center_alt_1 +moreblocks:circular_saw +moreblocks:slab_steelblock_14 +moreblocks:stair_jungle_wood +moreblocks:stair_stone_tile_alt +moreblocks:coal_stone +moreblocks:stair_bronzeblock_alt_4 +moreblocks:stair_stone_alt_1 +moreblocks:slab_glow_glass_1 +moreblocks:panel_wood_tile_full_15 +moreblocks:panel_stonebrick_4 +moreblocks:stair_cobble_inner +moreblocks:stair_brick_right_half +moreblocks:panel_sandstonebrick_2 +moreblocks:stair_glass_alt_1 +moreblocks:panel_cobble +moreblocks:stair_coal_stone_bricks_inner +moreblocks:panel_wood_2 +moreblocks:panel_wood_tile_center_12 +moreblocks:slab_bronzeblock_2 +moreblocks:slab_stone_2 +moreblocks:panel_wood_tile +moreblocks:slab_obsidian_glass_15 +moreblocks:panel_jungle_wood_15 +moreblocks:slab_goldblock +moreblocks:slab_wood_15 +moreblocks:slab_steelblock_1 +moreblocks:slab_stone_1 +moreblocks:slab_cobble_quarter +moreblocks:stair_circle_stone_bricks_outer +moreblocks:stair_iron_glass +moreblocks:stair_junglewood_half +moreblocks:slab_brick_2 +moreblocks:panel_sandstone_15 +moreblocks:slab_wood_tile_center_1 +moreblocks:iron_stone_bricks +moreblocks:stair_stonebrick_alt_2 +moreblocks:stair_goldblock_right_half +moreblocks:slab_plankstone_2 +moreblocks:slab_wood_tile_full_three_quarter +moreblocks:panel_steelblock_12 +moreblocks:panel_coal_checker_15 +moreblocks:panel_split_stone_tile_1 +moreblocks:panel_iron_stone_bricks_1 +moreblocks:stair_iron_glass_half +moreblocks:stair_stonebrick_half +moreblocks:panel_copperblock_4 +moreblocks:panel_wood_tile_full +moreblocks:slab_wood_tile_full_15 +moreblocks:panel_obsidian_14 +moreblocks:stair_invisible_alt_2 +moreblocks:stair_bronzeblock_inner +moreblocks:stair_iron_checker +moreblocks:stair_desert_stonebrick_alt_1 +moreblocks:panel_stonebrick_2 +moreblocks:rope +moreblocks:stair_cobble_half +moreblocks:panel_invisible_14 +moreblocks:panel_sandstonebrick_12 +moreblocks:stair_jungletree_alt +moreblocks:iron_glass +moreblocks:panel_jungletree_2 +moreblocks:stair_wood_tile_alt_1 +moreblocks:slab_coal_glass_2 +moreblocks:slab_invisible_three_quarter +moreblocks:stair_steelblock_alt_4 +moreblocks:panel_coal_checker_1 +moreblocks:stair_bronzeblock +moreblocks:stair_sandstonebrick_half +moreblocks:stair_desert_stonebrick_half +moreblocks:panel_coal_glass_2 +moreblocks:panel_iron_stone_15 +moreblocks:stair_goldblock_half +moreblocks:stair_wood_tile_alt +moreblocks:slab_glow_glass +moreblocks:panel_plankstone_12 +moreblocks:stair_circle_stone_bricks +moreblocks:slab_diamondblock_14 +moreblocks:panel_wood_tile_full_12 +moreblocks:slab_cactus_checker_1 +moreblocks:stair_plankstone_alt_2 +moreblocks:panel_iron_checker_4 +moreblocks:stair_mossycobble_alt_2 +moreblocks:stair_coal_glass_alt_2 +moreblocks:panel_glow_glass_2 +moreblocks:stair_jungletree_outer +moreblocks:slab_stone_tile +moreblocks:stair_copperblock +moreblocks:stair_bronzeblock_outer +moreblocks:stair_copperblock_inner +moreblocks:slab_bronzeblock_three_quarter +moreblocks:panel_glass_14 +moreblocks:panel_bronzeblock +moreblocks:stair_diamondblock_alt_2 +moreblocks:stair_obsidian_glass_inner +moreblocks:panel_split_stone_tile_14 +moreblocks:slab_steelblock +moreblocks:panel_jungletree_12 +moreblocks:stair_cactus_checker_alt_4 +moreblocks:slab_plankstone_15 +moreblocks:panel_jungle_wood_14 +moreblocks:slab_jungle_wood_three_quarter +moreblocks:panel_copperblock_12 +moreblocks:panel_mossycobble_12 +moreblocks:panel_bronzeblock_12 +moreblocks:slab_desert_stonebrick +moreblocks:stair_super_glow_glass_alt_1 +moreblocks:panel_obsidian_glass_14 +moreblocks:stair_diamondblock_half +moreblocks:stair_coal_glass_outer +moreblocks:stair_desert_stonebrick_inner +moreblocks:slab_sandstone_quarter +moreblocks:wood_tile_flipped +moreblocks:stair_coal_stone_bricks_outer +moreblocks:panel_brick +moreblocks:stair_goldblock_alt_4 +moreblocks:panel_sandstone_4 +moreblocks:slab_coal_stone_quarter +moreblocks:stair_iron_glass_outer +moreblocks:stair_desert_stonebrick_right_half +moreblocks:panel_desert_stone_4 +moreblocks:panel_iron_stone_bricks_4 +moreblocks:stair_iron_checker_alt_1 +moreblocks:slab_glass_15 +moreblocks:panel_coal_glass_14 +moreblocks:stair_sandstone_inner +moreblocks:stair_goldblock_alt +moreblocks:stair_iron_stone_alt_1 +moreblocks:stair_iron_stone_bricks_inner +moreblocks:stair_wood_outer +moreblocks:stair_wood +moreblocks:stair_desert_stone_half +moreblocks:stair_coal_stone_half +moreblocks:wood_tile_down +moreblocks:stair_obsidian_alt_4 +moreblocks:stair_cactus_checker_alt_1 +moreblocks:slab_glass_14 +moreblocks:panel_plankstone_2 +moreblocks:panel_sandstonebrick +moreblocks:slab_plankstone_three_quarter +moreblocks:slab_iron_checker_1 +moreblocks:stair_wood_tile_full_alt_1 +moreblocks:slab_wood_tile_three_quarter +moreblocks:slab_cobble_three_quarter +moreblocks:cactus_checker +moreblocks:panel_stone_tile_14 +moreblocks:stair_glow_glass_alt_1 +moreblocks:stair_iron_stone_alt_2 +moreblocks:slab_junglewood_15 +moreblocks:panel_brick_12 +moreblocks:stair_jungletree_half +moreblocks:stair_stonebrick_inner +moreblocks:panel_cactus_checker_14 +moreblocks:panel_invisible_1 +moreblocks:stair_diamondblock_alt +moreblocks:slab_circle_stone_bricks_1 +moreblocks:coal_glass +moreblocks:stair_sandstonebrick_alt +moreblocks:stair_diamondblock_alt_4 +moreblocks:stair_desert_stone_outer +moreblocks:stair_wood_alt_1 +moreblocks:stair_jungle_wood_right_half +moreblocks:panel_wood_14 +moreblocks:stair_glow_glass_outer +moreblocks:slab_coal_checker +moreblocks:panel_plankstone_4 +moreblocks:stair_wood_tile_full +moreblocks:slab_wood_14 +moreblocks:slab_stonebrick_quarter +moreblocks:panel_coal_stone_bricks_15 +moreblocks:slab_jungle_wood +moreblocks:slab_coal_checker_1 +moreblocks:stair_stonebrick_right_half +moreblocks:slab_junglewood_1 +moreblocks:slab_circle_stone_bricks_three_quarter +moreblocks:fence_jungle_wood +moreblocks:panel_wood_tile_center_4 +moreblocks:all_faces_jungle_tree +moreblocks:slab_sandstone +moreblocks:slab_coal_stone_three_quarter +moreblocks:stair_iron_stone_half +moreblocks:stair_iron_glass_alt_1 +moreblocks:slab_steelblock_2 +moreblocks:panel_desert_stone_15 +moreblocks:stair_iron_glass_right_half +moreblocks:panel_glass_12 +moreblocks:trap_stone +moreblocks:stair_iron_stone +moreblocks:panel_circle_stone_bricks_4 +moreblocks:stair_stonebrick_outer +moreblocks:stair_wood_tile_full_half +moreblocks:slab_iron_glass_15 +moreblocks:stair_jungle_wood_alt_4 +moreblocks:stair_stone_tile_half +moreblocks:stair_glass_alt_2 +moreblocks:stair_invisible_inner +moreblocks:stair_diamondblock_outer +moreblocks:panel_sandstonebrick_15 +moreblocks:panel_diamondblock_4 +moreblocks:stair_stone_alt +moreblocks:panel_mossycobble_15 +moreblocks:slab_iron_stone_quarter +moreblocks:panel_junglewood_4 +moreblocks:panel_circle_stone_bricks +moreblocks:panel_brick_4 +moreblocks:panel_coal_checker_2 +moreblocks:coal_checker +moreblocks:panel_obsidian_glass_12 +moreblocks:trap_super_glow_glass +moreblocks:stair_split_stone_tile_inner +moreblocks:stair_sandstone_alt_1 +moreblocks:slab_iron_stone_1 +moreblocks:slab_cobble_1 +moreblocks:slab_coal_glass_15 +moreblocks:slab_cobble_14 +moreblocks:slab_sandstone_14 +moreblocks:stair_iron_stone_bricks_alt_2 +moreblocks:stair_cobble_alt_4 +moreblocks:panel_coal_stone_bricks_1 +moreblocks:panel_stonebrick +moreblocks:panel_cactus_checker_1 +moreblocks:slab_stone_three_quarter +moreblocks:slab_desert_stonebrick_15 +moreblocks:panel_steelblock_4 +moreblocks:panel_stone_15 +moreblocks:stair_steelblock_right_half +moreblocks:slab_steelblock_quarter +moreblocks:slab_coal_glass_three_quarter +moreblocks:slab_iron_stone_2 +moreblocks:slab_brick_quarter +moreblocks:stair_stone_tile +moreblocks:slab_stone_tile_1 +moreblocks:stair_brick_half +moreblocks:panel_coal_stone_15 +moreblocks:panel_desert_stone_2 +moreblocks:slab_coal_glass_quarter +moreblocks:stair_junglewood_alt +moreblocks:panel_super_glow_glass_14 +moreblocks:panel_obsidian +moreblocks:panel_wood_tile_center_2 +moreblocks:slab_coal_stone_bricks_14 +moreblocks:trap_glass +moreblocks:slab_desert_stone_14 +moreblocks:stair_coal_stone +moreblocks:stair_iron_glass_alt +moreblocks:stair_iron_glass_inner +moreblocks:stair_invisible_outer +moreblocks:panel_plankstone_1 +moreblocks:slab_cactus_checker_quarter +moreblocks:panel_tree_15 +moreblocks:glow_glass +moreblocks:panel_steelblock +moreblocks:panel_bronzeblock_1 +moreblocks:slab_bronzeblock_1 +moreblocks:slab_coal_stone_bricks_quarter +moreblocks:panel_iron_stone_4 +moreblocks:stair_mossycobble_alt_4 +moreblocks:panel_super_glow_glass_4 +moreblocks:wood_tile_center +moreblocks:stair_obsidian_right_half +moreblocks:slab_iron_stone_bricks_1 +moreblocks:stair_cobble +moreblocks:stair_cactus_checker_inner +moreblocks:slab_cobble_15 +moreblocks:panel_wood_tile_center_15 +moreblocks:slab_jungletree_quarter +moreblocks:panel_desert_stonebrick_14 +moreblocks:stair_stone +moreblocks:iron_stone +moreblocks:panel_bronzeblock_15 +moreblocks:panel_obsidian_2 +moreblocks:slab_desert_stonebrick_1 +moreblocks:stair_junglewood_outer +moreblocks:slab_wood_1 +moreblocks:slab_obsidian_glass_1 +moreblocks:stair_goldblock +moreblocks:stair_super_glow_glass_outer +moreblocks:panel_cobble_1 +moreblocks:slab_iron_stone_bricks_15 +moreblocks:stair_coal_stone_bricks_right_half +moreblocks:stair_coal_glass +moreblocks:slab_jungletree_14 +moreblocks:stair_coal_checker +moreblocks:stair_wood_alt +moreblocks:stair_glass_half +moreblocks:stair_stone_alt_2 +moreblocks:stair_stone_tile_alt_4 +moreblocks:slab_circle_stone_bricks_quarter +moreblocks:panel_diamondblock_14 +moreblocks:panel_goldblock_2 +moreblocks:panel_invisible +moreblocks:panel_obsidian_glass_4 +moreblocks:panel_sandstone_1 +moreblocks:panel_desert_stonebrick_4 +moreblocks:panel_brick_14 +moreblocks:stair_coal_stone_inner +moreblocks:slab_wood_tile_quarter +moreblocks:stair_sandstonebrick_alt_2 +moreblocks:stair_circle_stone_bricks_half +moreblocks:stair_stone_alt_4 +moreblocks:stair_bronzeblock_right_half +moreblocks:panel_wood_tile_full_2 +moreblocks:stair_stone_outer +moreblocks:slab_invisible +moreblocks:panel_sandstone_12 +moreblocks:stair_sandstone_alt_2 +moreblocks:panel_plankstone +moreblocks:slab_invisible_quarter +moreblocks:stair_brick_inner +moreblocks:stair_wood_alt_2 +moreblocks:slab_iron_glass_1 +moreblocks:slab_split_stone_tile_1 +moreblocks:slab_split_stone_tile_three_quarter +moreblocks:slab_jungle_wood_15 +moreblocks:panel_plankstone_15 +moreblocks:stair_cobble_outer +moreblocks:stair_jungle_wood_outer +moreblocks:plankstone +moreblocks:stair_cobble_alt +moreblocks:panel_glow_glass_12 +moreblocks:slab_goldblock_14 +moreblocks:trap_glow_glass +moreblocks:panel_mossycobble_14 +moreblocks:stair_steelblock_inner +moreblocks:stair_super_glow_glass_alt_2 +moreblocks:stair_coal_checker_alt_1 +moreblocks:slab_wood_tile_1 +moreblocks:stair_tree_alt_4 +moreblocks:stair_coal_glass_half +moreblocks:stair_stone_tile_alt_1 +moreblocks:panel_tree_14 +moreblocks:stair_iron_stone_inner +moreblocks:slab_coal_glass +moreblocks:stair_circle_stone_bricks_alt_1 +moreblocks:slab_wood_tile +moreblocks:panel_plankstone_14 +moreblocks:stair_invisible +moreblocks:panel_brick_1 +moreblocks:stair_wood_tile_center_half +moreblocks:slab_glass_2 +moreblocks:slab_copperblock +moreblocks:panel_iron_glass_4 +moreblocks:panel_jungletree_1 +moreblocks:panel_iron_checker_15 +moreblocks:panel_coal_glass_1 +moreblocks:stair_tree_alt_1 +moreblocks:stair_coal_glass_alt_1 +moreblocks:slab_glow_glass_three_quarter +moreblocks:stair_stonebrick_alt_1 +moreblocks:stair_wood_tile_alt_4 +moreblocks:panel_invisible_12 +moreblocks:slab_iron_stone_three_quarter +moreblocks:stair_goldblock_inner +moreblocks:slab_bronzeblock +moreblocks:slab_mossycobble_2 +moreblocks:stair_desert_stonebrick_outer +moreblocks:slab_circle_stone_bricks_15 +moreblocks:panel_coal_glass_12 +moreblocks:stair_obsidian_alt_1 +moreblocks:stair_split_stone_tile +moreblocks:slab_stone_tile_2 +moreblocks:stair_plankstone_outer +moreblocks:stair_sandstone_alt +moreblocks:slab_wood_tile_full_14 +moreblocks:slab_wood_tile_full_quarter +moreblocks:stair_invisible_alt_4 +moreblocks:stair_goldblock_alt_2 +moreblocks:slab_circle_stone_bricks_14 +moreblocks:panel_stone_tile_4 +moreblocks:slab_diamondblock_15 +moreblocks:panel_desert_stonebrick_15 +moreblocks:stair_copperblock_half +moreblocks:slab_iron_glass_three_quarter +moreblocks:stair_steelblock_alt_1 +moreblocks:stair_cactus_checker_right_half +moreblocks:stair_cobble_right_half +moreblocks:slab_iron_glass_2 +moreblocks:slab_glow_glass_14 +moreblocks:all_faces_tree +moreblocks:stair_wood_tile_center_outer +moreblocks:stair_glow_glass +moreblocks:slab_goldblock_three_quarter +moreblocks:slab_copperblock_1 +moreblocks:slab_split_stone_tile +moreblocks:panel_junglewood_2 +moreblocks:stair_wood_tile_center_right_half +moreblocks:panel_coal_stone_bricks_12 +moreblocks:panel_glass_4 +moreblocks:stair_coal_checker_alt_4 +moreblocks:stair_cobble_alt_2 +moreblocks:stair_diamondblock_alt_1 +moreblocks:slab_tree +moreblocks:panel_coal_checker +moreblocks:stair_desert_stone_alt +moreblocks:panel_wood_12 +moreblocks:panel_split_stone_tile +moreblocks:panel_mossycobble_2 +moreblocks:slab_steelblock_15 +moreblocks:panel_coal_stone_bricks_14 +moreblocks:panel_iron_checker_12 +moreblocks:stair_tree_right_half +moreblocks:slab_jungletree_15 +moreblocks:slab_diamondblock_2 +moreblocks:slab_glass +moreblocks:stair_jungletree_alt_2 +moreblocks:stair_desert_stonebrick_alt_2 +moreblocks:slab_jungletree_2 +moreblocks:stair_iron_checker_alt +moreblocks:panel_cactus_checker_2 +moreblocks:stair_obsidian_glass_alt_1 +moreblocks:stair_tree_alt_2 +moreblocks:panel_desert_stonebrick +moreblocks:slab_sandstonebrick_three_quarter +moreblocks:slab_coal_glass_1 +moreblocks:stair_junglewood_alt_1 +moreblocks:stair_desert_stone +moreblocks:slab_wood_2 +moreblocks:stair_steelblock_alt_2 +moreblocks:panel_goldblock_12 +moreblocks:stair_jungletree_inner +moreblocks:stair_coal_glass_alt_4 +moreblocks:slab_glow_glass_quarter +moreblocks:stair_glow_glass_alt_4 +moreblocks:slab_obsidian_glass +moreblocks:stair_mossycobble +moreblocks:stair_iron_glass_alt_4 +moreblocks:stair_diamondblock +moreblocks:stair_stone_tile_outer +moreblocks:panel_stone_1 +moreblocks:panel_desert_stonebrick_2 +moreblocks:stair_super_glow_glass_alt +moreblocks:iron_checker +moreblocks:slab_goldblock_1 +moreblocks:panel_obsidian_glass_2 +moreblocks:stair_bronzeblock_alt +moreblocks:slab_coal_stone_2 +moreblocks:stair_iron_stone_alt_4 +moreblocks:panel_brick_2 +moreblocks:stair_wood_tile_full_alt +moreblocks:stair_sandstone_right_half +moreblocks:wood_tile_full +moreblocks:panel_coal_glass_15 +moreblocks:panel_invisible_4 +moreblocks:stair_bronzeblock_half +moreblocks:stair_obsidian_glass +moreblocks:panel_circle_stone_bricks_15 +moreblocks:stair_circle_stone_bricks_alt_4 +moreblocks:panel_wood_4 +moreblocks:panel_stone_14 +moreblocks:panel_goldblock_1 +moreblocks:slab_brick_1 +moreblocks:panel_iron_checker +moreblocks:panel_coal_stone_14 +moreblocks:slab_iron_glass_quarter +moreblocks:slab_tree_2 +moreblocks:stair_glow_glass_right_half +moreblocks:stair_wood_right_half +moreblocks:panel_obsidian_glass_1 +moreblocks:slab_cactus_checker_14 +moreblocks:stair_obsidian_half +moreblocks:stair_tree_outer +moreblocks:panel_goldblock +moreblocks:slab_brick_three_quarter +moreblocks:stair_plankstone_half +moreblocks:slab_coal_stone_bricks +moreblocks:slab_plankstone_14 +moreblocks:slab_obsidian_glass_2 +moreblocks:slab_jungletree_1 +moreblocks:slab_sandstonebrick +moreblocks:slab_brick_14 +moreblocks:slab_iron_stone_bricks_three_quarter +moreblocks:stair_mossycobble_alt +moreblocks:slab_desert_stone_three_quarter +moreblocks:panel_obsidian_15 +moreblocks:panel_bronzeblock_14 +moreblocks:panel_iron_stone_bricks_12 +moreblocks:stair_coal_checker_inner +moreblocks:panel_mossycobble_1 +moreblocks:stair_bronzeblock_alt_1 +moreblocks:stair_glass_alt +moreblocks:slab_stonebrick_1 +moreblocks:stair_stonebrick_alt +moreblocks:slab_iron_glass +moreblocks:panel_junglewood_15 +moreblocks:stair_sandstonebrick_inner +moreblocks:panel_stone_tile_1 +moreblocks:slab_obsidian +moreblocks:slab_sandstone_2 +moreblocks:slab_iron_stone_15 +moreblocks:stair_copperblock_right_half +moreblocks:panel_stone_tile_15 +moreblocks:panel_diamondblock_2 +moreblocks:wood_tile +moreblocks:slab_sandstone_three_quarter +moreblocks:slab_obsidian_quarter +moreblocks:panel_wood_tile_center_14 +moreblocks:stair_coal_glass_inner +moreblocks:stair_glass_outer +moreblocks:panel_cactus_checker_12 +moreblocks:stair_coal_stone_bricks_alt_4 +moreblocks:stair_brick_outer +moreblocks:slab_tree_14 +moreblocks:panel_circle_stone_bricks_1 +moreblocks:panel_wood_tile_full_1 +moreblocks:panel_goldblock_14 +moreblocks:panel_coal_stone_12 +moreblocks:stair_glass_inner +moreblocks:empty_bookshelf +moreblocks:panel_steelblock_1 +moreblocks:stair_super_glow_glass +moreblocks:stair_stone_half +moreblocks:panel_mossycobble +moreblocks:panel_desert_stone_1 +moreblocks:panel_glass_15 +moreblocks:stair_jungle_wood_alt +moreblocks:stair_jungle_wood_alt_1 +moreblocks:stair_steelblock_outer +moreblocks:panel_goldblock_4 +moreblocks:panel_super_glow_glass +moreblocks:slab_stonebrick_14 +moreblocks:stair_iron_checker_half +moreblocks:stair_steelblock +moreblocks:slab_obsidian_15 +moreblocks:slab_desert_stone_1 +moreblocks:panel_desert_stonebrick_1 +moreblocks:slab_iron_stone_bricks_2 +moreblocks:stair_desert_stone_alt_4 +moreblocks:panel_desert_stone_12 +moreblocks:slab_copperblock_15 +moreblocks:panel_iron_stone_14 +moreblocks:slab_coal_stone_bricks_three_quarter +moreblocks:stair_desert_stone_right_half +moreblocks:panel_cobble_14 +moreblocks:stair_coal_stone_bricks_alt_1 +moreblocks:slab_invisible_1 +moreblocks:stair_stone_right_half +moreblocks:slab_iron_stone_bricks_14 +moreblocks:slab_coal_checker_2 +moreblocks:stair_jungle_wood_inner +moreblocks:panel_jungle_wood_4 +moreblocks:panel_jungle_wood_12 +moreblocks:panel_junglewood_14 +moreblocks:slab_mossycobble_14 +moreblocks:stair_diamondblock_inner +moreblocks:slab_desert_stone_quarter +moreblocks:stair_split_stone_tile_alt_4 +moreblocks:panel_coal_checker_4 +moreblocks:stair_iron_checker_right_half +moreblocks:panel_sandstonebrick_14 +moreblocks:stair_coal_checker_alt_2 +moreblocks:slab_desert_stone_15 +moreblocks:slab_junglewood_2 +moreblocks:slab_wood_tile_full +moreblocks:panel_coal_stone_bricks_2 +moreblocks:stair_wood_tile_full_inner +moreblocks:panel_stone +moreblocks:stair_iron_stone_bricks_half +moreblocks:stair_brick_alt_1 +moreblocks:slab_jungle_wood_2 +moreblocks:slab_stone_tile_14 +moreblocks:panel_sandstone +moreblocks:slab_iron_stone_bricks +moreblocks:slab_coal_stone_bricks_1 +moreblocks:panel_tree_2 +moreblocks:panel_junglewood_12 +moreblocks:slab_obsidian_1 +moreblocks:panel_tree_1 +moreblocks:panel_wood_15 +moreblocks:stair_coal_stone_alt_4 +moreblocks:panel_bronzeblock_2 +moreblocks:stair_super_glow_glass_inner +moreblocks:stair_desert_stonebrick_alt +moreblocks:stair_super_glow_glass_half +moreblocks:panel_stonebrick_1 +moreblocks:slab_coal_stone_1 +moreblocks:stair_split_stone_tile_half +moreblocks:stair_obsidian_alt_2 +moreblocks:stair_wood_tile_center_inner +moreblocks:panel_invisible_15 +moreblocks:slab_invisible_15 +moreblocks:panel_desert_stonebrick_12 +moreblocks:slab_cactus_checker_2 +moreblocks:stair_coal_stone_bricks_half +moreblocks:panel_iron_stone +moreblocks:panel_mossycobble_4 +moreblocks:slab_plankstone +moreblocks:cactus_brick +moreblocks:slab_sandstonebrick_quarter +moreblocks:panel_desert_stone +moreblocks:stair_obsidian_glass_alt_4 +moreblocks:stair_wood_half +moreblocks:slab_jungle_wood_14 +moreblocks:slab_iron_checker_14 +moreblocks:slab_wood_tile_15 +moreblocks:stair_coal_stone_right_half +moreblocks:panel_junglewood +moreblocks:stair_circle_stone_bricks_alt_2 +moreblocks:slab_desert_stonebrick_three_quarter +moreblocks:slab_super_glow_glass_quarter +moreblocks:panel_tree +moreblocks:stair_junglewood_right_half +moreblocks:stair_iron_stone_bricks_alt_4 +moreblocks:panel_brick_15 +moreblocks:stair_desert_stonebrick_alt_4 +moreblocks:stair_brick_alt_4 +moreblocks:panel_bronzeblock_4 +moreblocks:slab_mossycobble_15 +moreblocks:stair_coal_stone_alt_2 +moreblocks:panel_iron_glass_14 +moreblocks:stair_plankstone_alt_1 +moreblocks:stair_coal_glass_right_half +moreblocks:stair_desert_stone_alt_2 +moreblocks:stair_obsidian +moreblocks:stair_wood_tile_outer +moreblocks:slab_wood_quarter +moreblocks:stair_desert_stone_alt_1 +moreblocks:stair_circle_stone_bricks_inner +moreblocks:panel_jungletree_14 +moreblocks:stair_coal_stone_alt +moreblocks:slab_copperblock_three_quarter +moreblocks:slab_sandstone_1 +moreblocks:stair_split_stone_tile_outer +moreblocks:stair_sandstone_alt_4 +moreblocks:panel_coal_glass +moreblocks:panel_split_stone_tile_2 +moreblocks:stair_circle_stone_bricks_right_half +moreblocks:stair_sandstone +moreblocks:panel_wood_tile_15 +moreblocks:panel_coal_stone_4 +moreblocks:stair_plankstone_alt +moreblocks:stair_wood_tile_inner +moreblocks:stair_junglewood +moreblocks:stair_stone_inner +moreblocks:stair_obsidian_glass_right_half +moreblocks:stair_plankstone_alt_4 +moreblocks:slab_split_stone_tile_15 +moreblocks:stair_coal_checker_outer +moreblocks:stair_invisible_right_half +moreblocks:slab_cobble +moreblocks:stair_coal_checker_half +moreblocks:slab_wood_three_quarter +moreblocks:stair_wood_tile_center_alt +moreblocks:panel_coal_stone_bricks +moreblocks:slab_coal_stone_15 +moreblocks:panel_copperblock_15 +moreblocks:slab_coal_glass_14 +moreblocks:slab_cactus_checker_15 +moreblocks:panel_wood_tile_14 +moreblocks:stone_tile +moreblocks:slab_coal_stone_14 +moreblocks:stair_mossycobble_alt_1 +moreblocks:panel_obsidian_glass_15 +moreblocks:slab_iron_checker_quarter +moreblocks:slab_obsidian_three_quarter +moreblocks:slab_stone_quarter +moreblocks:panel_glass_2 +moreblocks:stair_cobble_alt_1 +moreblocks:slab_circle_stone_bricks_2 +moreblocks:panel_jungle_wood +moreblocks:stair_iron_stone_bricks +moreblocks:slab_bronzeblock_quarter +moreblocks:slab_mossycobble_quarter +moreblocks:stair_iron_checker_outer +moreblocks:slab_obsidian_glass_quarter +moreblocks:stair_iron_checker_alt_2 +moreblocks:stair_split_stone_tile_alt_1 +moreblocks:stair_iron_stone_bricks_alt +moreblocks:panel_obsidian_4 +moreblocks:stair_stonebrick_alt_4 +moreblocks:slab_brick_15 +moreblocks:slab_invisible_2 +moreblocks:panel_iron_checker_2 +moreblocks:stair_copperblock_alt_4 +moreblocks:panel_glow_glass +moreblocks:stair_jungletree_right_half +moreblocks:stair_sandstonebrick_alt_4 +moreblocks:panel_coal_checker_12 +moreblocks:slab_super_glow_glass_15 +moreblocks:stair_iron_stone_alt +moreblocks:panel_copperblock_14 +moreblocks:slab_super_glow_glass +moreblocks:panel_cobble_2 +moreblocks:stair_iron_stone_bricks_outer +moreblocks:slab_glass_quarter +moreblocks:panel_wood_1 +moreblocks:slab_stonebrick_15 +moreblocks:slab_diamondblock_three_quarter +moreblocks:panel_super_glow_glass_1 +moreblocks:slab_coal_checker_quarter +moreblocks:slab_wood_tile_center +moreblocks:slab_brick +moreblocks:slab_desert_stonebrick_14 +moreblocks:panel_coal_checker_14 +moreblocks:slab_wood_tile_center_quarter +moreblocks:panel_circle_stone_bricks_14 +moreblocks:panel_invisible_2 +moreblocks:stair_cactus_checker_half +moreblocks:stair_wood_tile_full_outer +moreblocks:stair_jungle_wood_alt_2 +moreblocks:slab_sandstonebrick_14 +moreblocks:clean_glass +moreblocks:stair_obsidian_glass_alt_2 +moreblocks:slab_tree_three_quarter +moreblocks:stair_sandstone_half +moreblocks:slab_sandstone_15 +moreblocks:stair_obsidian_outer +moreblocks:panel_cobble_15 +moreblocks:slab_circle_stone_bricks +moreblocks:panel_jungletree_4 +moreblocks:panel_super_glow_glass_2 +moreblocks:stair_glow_glass_alt_2 +moreblocks:stair_iron_stone_outer +moreblocks:panel_jungletree_15 +moreblocks:slab_junglewood +moreblocks:slab_iron_stone +moreblocks:slab_wood_tile_center_2 +moreblocks:slab_iron_stone_14 +moreblocks:panel_diamondblock_12 +moreblocks:slab_split_stone_tile_quarter +moreblocks:slab_iron_checker_three_quarter +moreblocks:panel_iron_stone_bricks_14 +moreblocks:panel_stone_12 +moreblocks:panel_stone_tile_12 +moreblocks:panel_iron_glass_12 +moreblocks:slab_coal_checker_14 +moreblocks:slab_junglewood_three_quarter +moreblocks:panel_stonebrick_14 +moreblocks:stair_mossycobble_half +moreblocks:panel_coal_glass_4 +moreblocks:panel_wood_tile_2 +moreblocks:stair_coal_checker_alt +moreblocks:stair_jungletree +moreblocks:panel_stonebrick_15 +moreblocks:stair_glass_right_half +moreblocks:panel_coal_stone_2 +moreblocks:panel_wood_tile_full_4 +moreblocks:slab_diamondblock_quarter +moreblocks:slab_desert_stonebrick_2 +moreblocks:slab_mossycobble_three_quarter +moreblocks:stair_glow_glass_alt +moreblocks:stair_circle_stone_bricks_alt +moreblocks:panel_jungletree +moreblocks:slab_stone_tile_quarter +moreblocks:slab_jungle_wood_1 +moreblocks:slab_coal_checker_15 +moreblocks:slab_glow_glass_2 +moreblocks:slab_iron_checker +moreblocks:slab_copperblock_14 +moreblocks:panel_iron_checker_14 +moreblocks:panel_wood_tile_1 +moreblocks:stair_wood_tile_center_alt_4 +moreblocks:stair_coal_checker_right_half +moreblocks:slab_super_glow_glass_three_quarter +moreblocks:slab_iron_stone_bricks_quarter +moreblocks:stair_wood_inner +moreblocks:stair_sandstonebrick_right_half +moreblocks:slab_goldblock_15 +moreblocks:slab_plankstone_quarter +moreblocks:panel_glass_1 +moreblocks:slab_goldblock_quarter +moreblocks:stair_glow_glass_inner +moreblocks:slab_wood_tile_full_2 +moreblocks:slab_wood_tile_full_1 +moreblocks:panel_cactus_checker_15 +moreblocks:stair_super_glow_glass_alt_4 +moreblocks:stair_jungle_wood_half +moreblocks:slab_obsidian_2 +moreblocks:stair_sandstonebrick_outer +moreblocks:panel_split_stone_tile_12 +moreblocks:slab_coal_checker_three_quarter +moreblocks:slab_bronzeblock_15 +moreblocks:stair_jungletree_alt_4 +moreblocks:circle_stone_bricks +moreblocks:slab_super_glow_glass_1 +moreblocks:panel_wood_tile_12 +moreblocks:stair_mossycobble_outer +moreblocks:stair_copperblock_outer +moreblocks:stair_super_glow_glass_right_half +moreblocks:panel_iron_glass +moreblocks:slab_iron_glass_14 +moreblocks:panel_sandstone_2 +moreblocks:stair_coal_stone_outer +moreblocks:panel_glow_glass_1 +moreblocks:stair_tree_half +moreblocks:slab_jungle_wood_quarter +moreblocks:panel_stone_tile_2 +moreblocks:panel_tree_4 +moreblocks:panel_obsidian_1 +moreblocks:panel_glow_glass_15 +moreblocks:stair_obsidian_inner +moreblocks:stair_mossycobble_right_half +moreblocks:panel_super_glow_glass_12 +moreblocks:panel_steelblock_2 +moreblocks:panel_super_glow_glass_15 +moreblocks:slab_stonebrick_2 +moreblocks:stair_invisible_alt +moreblocks:stair_iron_checker_inner +moreblocks:panel_sandstonebrick_4 +moreblocks:slab_sandstonebrick_2 +moreblocks:panel_obsidian_glass +moreblocks:slab_stone_tile_three_quarter +moreblocks:panel_wood +moreblocks:stair_obsidian_glass_alt +moreblocks:stair_coal_glass_alt +moreblocks:slab_mossycobble +moreblocks:panel_iron_checker_1 +moreblocks:slab_glass_three_quarter +moreblocks:panel_junglewood_1 +moreblocks:panel_iron_glass_15 +moreblocks:slab_cactus_checker_three_quarter +moreblocks:slab_sandstonebrick_1 +moreblocks:panel_wood_tile_full_14 +moreblocks:slab_iron_checker_15 +moreblocks:panel_copperblock_1 +moreblocks:stair_desert_stonebrick +moreblocks:stair_mossycobble_inner +moreblocks:stair_stone_tile_inner +moreblocks:stair_wood_tile_right_half +moreblocks:stair_bronzeblock_alt_2 +moreblocks:stair_stone_tile_right_half +moreblocks:stair_sandstonebrick +moreblocks:slab_diamondblock +moreblocks:slab_tree_quarter +moreblocks:stair_steelblock_alt +moreblocks:panel_iron_stone_bricks_15 +moreblocks:stair_wood_tile_center +moreblocks:stair_junglewood_alt_2 +moreblocks:stair_iron_glass_alt_2 +moreblocks:stair_invisible_half +moreblocks:slab_iron_checker_2 +moreblocks:panel_jungle_wood_1 +moreblocks:stair_wood_tile_center_alt_2 +moreblocks:panel_circle_stone_bricks_12 +moreblocks:panel_copperblock +moreblocks:stair_diamondblock_right_half +moreblocks:panel_glass +moreblocks:panel_wood_tile_center +moreblocks:panel_sandstonebrick_1 +moreblocks:stair_wood_tile_half +moreblocks:slab_coal_stone_bricks_15 +moreblocks:stair_tree_alt +moreblocks:panel_cactus_checker +moreblocks:stair_sandstone_outer +moreblocks:slab_copperblock_2 +moreblocks:slab_desert_stone +moreblocks:slab_tree_15 +moreblocks:slab_diamondblock_1 +moreblocks:stair_wood_tile_full_alt_4 +moreblocks:coal_stone_bricks +moreblocks:stair_iron_stone_right_half +moreblocks:stair_sandstonebrick_alt_1 +moreblocks:stair_tree +moreblocks:stair_junglewood_alt_4 +moreblocks:stair_goldblock_outer +moreblocks:stair_plankstone_inner +moreblocks:panel_coal_stone_bricks_4 +moreblocks:stair_obsidian_alt +moreblocks:stair_plankstone +moreblocks:slab_cobble_2 +moreblocks:stair_copperblock_alt_2 +moreblocks:stair_stone_tile_alt_2 +moreblocks:panel_goldblock_15 +moreblocks:slab_stone_15 +moreblocks:panel_diamondblock +moreblocks:stair_wood_alt_4 +moreblocks:slab_stonebrick +moreblocks:stair_glow_glass_half +moreblocks:panel_coal_stone_1 +moreblocks:stair_split_stone_tile_right_half +moreblocks:split_stone_tile +moreblocks:panel_cobble_12 +moreblocks:panel_glow_glass_4 +moreblocks:panel_cactus_checker_4 +moreblocks:slab_stone_14 +moreblocks:slab_obsidian_glass_three_quarter +moreblocks:slab_wood_tile_2 +moreblocks:slab_copperblock_quarter +moreblocks:stair_copperblock_alt_1 +snow:snow5 +snow:snow3 +snow:snow8 +snow:snow +snow:snow6 +snow:snow_block +snow:snow7 +snow:snow_brick +snow:dirt_with_snow +snow:snow4 +snow:snow2 +snow:ice +stairs:stair_wood_tile_full +stairs:stair_mossycobble +stairs:slab_jungle_wood +stairs:slab_wood_tile_center +stairs:stair_wood_tile +stairs:stair_cobble +stairs:stair_stonebrick +stairs:slab_iron_glass +stairs:stair_wood +stairs:stair_stone +stairs:stair_obsidian +stairs:stair_copperblock +stairs:stair_super_glow_glass +stairs:slab_iron_stone +stairs:stair_stone_tile +stairs:stair_desert_stone +stairs:slab_bronzeblock +stairs:stair_goldblock +stairs:stair_iron_checker +stairs:stair_steelblock +stairs:slab_coal_stone +stairs:slab_obsidian_glass +stairs:stair_sandstone +stairs:stair_iron_stone +stairs:slab_steelblock +stairs:stair_split_stone_tile +stairs:stair_brick +stairs:stair_sandstonebrick +stairs:slab_mossycobble +stairs:stair_glass +stairs:slab_cactus_checker +stairs:slab_jungletree +stairs:stair_coal_stone +stairs:slab_junglewood +stairs:stair_jungletree +stairs:slab_wood +stairs:stair_iron_stone_bricks +stairs:stair_coal_checker +stairs:stair_plankstone +stairs:stair_obsidian_glass +stairs:slab_desert_stone +stairs:slab_iron_stone_bricks +stairs:slab_glass +stairs:stair_bronzeblock +stairs:slab_desert_stonebrick +stairs:slab_tree +stairs:slab_stone +stairs:stair_cactus_checker +stairs:slab_diamondblock +stairs:slab_super_glow_glass +stairs:slab_cobble +stairs:stair_tree +stairs:slab_wood_tile +stairs:slab_glow_glass +stairs:slab_wood_tile_full +stairs:stair_coal_stone_bricks +stairs:slab_coal_glass +stairs:stair_coal_glass +stairs:slab_brick +stairs:slab_stone_tile +stairs:slab_goldblock +stairs:slab_plankstone +stairs:slab_coal_stone_bricks +stairs:stair_jungle_wood +stairs:stair_circle_stone_bricks +stairs:slab_iron_checker +stairs:stair_wood_tile_center +stairs:slab_stonebrick +stairs:slab_sandstonebrick +stairs:stair_invisible +stairs:stair_iron_glass +stairs:stair_desert_stonebrick +stairs:stair_diamondblock +stairs:slab_sandstone +stairs:slab_copperblock +stairs:stair_glow_glass +stairs:stair_junglewood +stairs:slab_circle_stone_bricks +stairs:slab_obsidian +stairs:slab_coal_checker +stairs:slab_split_stone_tile +mg:dirt_with_dry_grass +default:glass +default:sandstonebrick +default:goldblock +default:obsidian_glass +default:stone_with_copper +default:ice +default:stone_with_mese +default:diamondblock +default:coalblock +default:stone_with_gold +default:dirt_with_grass_footsteps +default:desert_stonebrick +default:stone_with_iron +default:bronzeblock +default:dirt_with_snow +default:desert_sand +default:steelblock +default:snow +default:desert_stone +default:mese +default:stone_with_coal +default:snowblock +default:stonebrick +default:sandstone +default:dirt_with_grass +default:brick +default:cobble +default:grass_3 +default:stone +default:sand +default:obsidian +default:dirt +default:mossycobble +default:stone_with_diamond +default:gravel +default:clay +default:copperblock +wool:magenta +wool:blue +wool:cyan +wool:orange +wool:grey +wool:dark_grey +wool:pink +wool:white +wool:violet +wool:black +wool:green +wool:brown +wool:yellow +wool:dark_green +wool:red +farming:soil_wet +farming:soil diff --git a/mapper.cpp b/mapper.cpp index dc4ba1f..2d65daf 100644 --- a/mapper.cpp +++ b/mapper.cpp @@ -32,15 +32,17 @@ using namespace std; #define OPT_VERBOSE_SEARCH_COLORS 0x86 #define OPT_CHUNKSIZE 0x87 #define OPT_HEIGHTMAP 0x88 -#define OPT_HEIGHTMAPGREY 0x89 -#define OPT_HEIGHTMAPYSCALE 0x8a -#define OPT_HEIGHT_LEVEL0 0x8b - +#define OPT_HEIGHTMAPYSCALE 0x89 +#define OPT_HEIGHT_LEVEL0 0x8a +#define OPT_HEIGHTMAPNODESFILE 0x8b +#define OPT_HEIGHTMAPCOLORSFILE 0x8c // Will be replaced with the actual name and location of the executable (if found) string executableName = "minetestmapper"; string installPrefix = INSTALL_PREFIX; -string colorsDefaultName = "colors.txt"; +string nodeColorsDefaultFile = "colors.txt"; +string heightMapNodesDefaultFile = "heightmap-nodes.txt"; +string heightMapColorsDefaultFile = "heightmap-colors.txt"; class FuzzyBool { private: @@ -71,9 +73,11 @@ void usage() " -i/--input \n" " -o/--output \n" " --colors \n" - " --heightmap[-grey]\n" - " --heightmap-scale \n" + " --heightmap-nodes \n" + " --heightmap-colors[=]\n" " --height-level-0 \n" + " --heightmap[=]\n" + " --heightmap-yscale \n" " --bgcolor \n" " --blockcolor \n" " --scalecolor \n" @@ -139,9 +143,11 @@ void usage() std::cout << executableName << ' ' << options_text; } -void parseColorsFile(TileGenerator &generator, const string &input, string colorsFile) { - if (!colorsFile.empty()) { - generator.parseColorsFile(colorsFile); +void parseDataFile(TileGenerator &generator, const string &input, string dataFile, string defaultFile, + void (TileGenerator::*parseFile)(const std::string &fileName)) +{ + if (!dataFile.empty()) { + (generator.*parseFile)(dataFile); return; } @@ -170,17 +176,17 @@ void parseColorsFile(TileGenerator &generator, const string &input, string color } colorPaths.push_back(""); - std::vector colorFileNames; - colorFileNames.push_back(colorsDefaultName); + std::vector fileNames; + fileNames.push_back(defaultFile); for (std::vector::iterator path = colorPaths.begin(); path != colorPaths.end(); path++) { - for (std::vector::iterator name = colorFileNames.begin(); name != colorFileNames.end(); name++) { + for (std::vector::iterator name = fileNames.begin(); name != fileNames.end(); name++) { if (path->empty()) - colorsFile = *name; + dataFile = *name; else - colorsFile = *path + PATH_SEPARATOR + *name; + dataFile = *path + PATH_SEPARATOR + *name; try { - generator.parseColorsFile(colorsFile); + (generator.*parseFile)(dataFile); if (path->empty()) { // I hope this is not obnoxious to windows users ? cerr << "Warning: Using " << *name << " in current directory as a last resort." << std::endl @@ -199,7 +205,9 @@ void parseColorsFile(TileGenerator &generator, const string &input, string color } } - throw std::runtime_error("Failed to find or failed to open a colors.txt file."); + ostringstream oss; + oss << "Failed to find or failed to open a " << defaultFile << " file."; + throw std::runtime_error(oss.str().c_str()); } // is: stream to read from @@ -530,10 +538,10 @@ int main(int argc, char *argv[]) {"input", required_argument, 0, 'i'}, {"output", required_argument, 0, 'o'}, {"colors", required_argument, 0, 'C'}, - {"heightmap", no_argument, 0, OPT_HEIGHTMAP}, - {"heightmap-grey", no_argument, 0, OPT_HEIGHTMAPGREY}, - {"heightmap-gray", no_argument, 0, OPT_HEIGHTMAPGREY}, - {"heightmap-scale", required_argument, 0, OPT_HEIGHTMAPYSCALE}, + {"heightmap-nodes", required_argument, 0, OPT_HEIGHTMAPNODESFILE}, + {"heightmap-colors", required_argument, 0, OPT_HEIGHTMAPCOLORSFILE}, + {"heightmap", optional_argument, 0, OPT_HEIGHTMAP}, + {"heightmap-yscale", required_argument, 0, OPT_HEIGHTMAPYSCALE}, {"height-level-0", required_argument, 0, OPT_HEIGHT_LEVEL0}, {"bgcolor", required_argument, 0, 'b'}, {"blockcolor", required_argument, 0, OPT_BLOCKCOLOR}, @@ -580,7 +588,11 @@ int main(int argc, char *argv[]) string input; string output; - string colorsFile; + bool heightMap = false; + bool loadHeightMapColorsFile = false; + string nodeColorsFile; + string heightMapColorsFile; + string heightMapNodesFile; bool foundGeometrySpec = false; bool setFixedOrShrinkGeometry = false; @@ -614,16 +626,39 @@ int main(int argc, char *argv[]) output = optarg; break; case 'C': - colorsFile = optarg; + nodeColorsFile = optarg; + break; + case OPT_HEIGHTMAPNODESFILE: + heightMapNodesFile = optarg; + break; + case OPT_HEIGHTMAPCOLORSFILE: + heightMapColorsFile = optarg; break; case 'b': generator.setBgColor(Color(optarg, 0)); break; case OPT_HEIGHTMAP: - generator.setHeightMap(true, false); - break; - case OPT_HEIGHTMAPGREY: - generator.setHeightMap(true, true); + generator.setHeightMap(true); + heightMap = true; + if (optarg && *optarg) { + loadHeightMapColorsFile = false; + std::string color = optarg; + int l = color.length(); + for (int i = 0; i < l; i++) + color[i] = tolower(color[i]); + if (color == "grey" || color == "gray") + generator.setHeightMapColor(Color(0, 0, 0), Color(255, 255, 255)); + else if (color == "black") + generator.setHeightMapColor(Color(0, 0, 0), Color(0, 0, 0)); + else if (color == "white") + generator.setHeightMapColor(Color(255, 255, 255), Color(255, 255, 255)); + else + generator.setHeightMapColor(Color(0, 0, 0), Color(color, 0)); + break; + } + else { + loadHeightMapColorsFile = true; + } break; case OPT_HEIGHTMAPYSCALE: if (isdigit(optarg[0]) || ((optarg[0]=='-' || optarg[0]=='+') && isdigit(optarg[1]))) { @@ -1053,7 +1088,14 @@ int main(int argc, char *argv[]) } try { - parseColorsFile(generator, input, colorsFile); + if (heightMap) { + parseDataFile(generator, input, heightMapNodesFile, heightMapNodesDefaultFile, &TileGenerator::parseHeightMapNodesFile); + if (loadHeightMapColorsFile) + parseDataFile(generator, input, heightMapColorsFile, heightMapColorsDefaultFile, &TileGenerator::parseHeightMapColorsFile); + } + else { + parseDataFile(generator, input, nodeColorsFile, nodeColorsDefaultFile, &TileGenerator::parseNodeColorsFile); + } generator.generate(input, output); } catch(std::runtime_error e) { std::cout<<"Exception: "<