summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Block.cpp129
1 files changed, 128 insertions, 1 deletions
diff --git a/src/Block.cpp b/src/Block.cpp
index 98f1b0a..41199de 100644
--- a/src/Block.cpp
+++ b/src/Block.cpp
@@ -34,12 +34,139 @@ std::pair<std::string, std::string> TransformBlockIdToBlockStateName(BlockId blo
std::pair<std::string,std::string>("andesite", "normal"),
std::pair<std::string,std::string>("smooth_andesite", "normal"),
};
- return ids[blockId.state];
+ return ids[blockId.state];
}
case 2: {
return std::make_pair("grass", "snowy=false");
}
+ case 3: {
+ if (blockId.state > 1)
+ break;
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("dirt", "normal"),
+ std::pair<std::string,std::string>("coarse_dirt", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 4: {
+ return std::make_pair("cobblestone", "normal");
+ }
+ case 5: {
+ if (blockId.state > 5)
+ break;
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("oak_planks", "normal"),
+ std::pair<std::string,std::string>("spruce_planks", "normal"),
+ std::pair<std::string,std::string>("birch_panks", "normal"),
+ std::pair<std::string,std::string>("jungle_planks", "normal"),
+ std::pair<std::string,std::string>("acacia_planks", "normal"),
+ std::pair<std::string,std::string>("dark_oak_panks", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 12: {
+ if (blockId.state > 1)
+ break;
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("sand", "normal"),
+ std::pair<std::string,std::string>("red_sand", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 17: {
+ unsigned char type = blockId.state & 0x3;
+ unsigned char dir = (blockId.state & 0xC) >> 2;
+ static const std::string types[] = {
+ "oak_log",
+ "spruce_log",
+ "birch_log",
+ "jungle_log",
+ };
+ static const std::string dirs[] = {
+ "axis=y",
+ "axis=x",
+ "axis=z",
+ "axis=none",
+ };
+ return std::make_pair(types[type], dirs[dir]);
+ }
+ case 18: {
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("oak_leaves", "normal"),
+ std::pair<std::string,std::string>("spruce_leaves", "normal"),
+ std::pair<std::string,std::string>("birch_leaves", "normal"),
+ std::pair<std::string,std::string>("jungle_leaves", "normal"),
+ };
+ return ids[blockId.state & 0x3];
+ }
+ case 31: {
+ if (blockId.state > 2)
+ break;
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("dead_bush", "normal"),
+ std::pair<std::string,std::string>("tall_grass", "normal"),
+ std::pair<std::string,std::string>("fern", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 35: {
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("white_wool", "normal"),
+ std::pair<std::string,std::string>("orange_wool", "normal"),
+ std::pair<std::string,std::string>("magenta_wool", "normal"),
+ std::pair<std::string,std::string>("light_blue_wool", "normal"),
+ std::pair<std::string,std::string>("yellow_wool", "normal"),
+ std::pair<std::string,std::string>("lime_wool", "normal"),
+ std::pair<std::string,std::string>("pink_wool", "normal"),
+ std::pair<std::string,std::string>("gray_wool", "normal"),
+ std::pair<std::string,std::string>("light_gray_wool", "normal"),
+ std::pair<std::string,std::string>("cyan_wool", "normal"),
+ std::pair<std::string,std::string>("purple_wool", "normal"),
+ std::pair<std::string,std::string>("blue_wool", "normal"),
+ std::pair<std::string,std::string>("green_wool", "normal"),
+ std::pair<std::string,std::string>("red_wool", "normal"),
+ std::pair<std::string,std::string>("black_wool", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 37: {
+ return std::make_pair("dandelion", "normal");
+ }
+ case 38: {
+ if (blockId.state > 8)
+ break;
+ static const std::pair<std::string, std::string> ids[] = {
+ std::pair<std::string,std::string>("poppy", "normal"),
+ std::pair<std::string,std::string>("blue_orchid", "normal"),
+ std::pair<std::string,std::string>("allium", "normal"),
+ std::pair<std::string,std::string>("Azure Bluet", "normal"),
+ std::pair<std::string,std::string>("red_tulip", "normal"),
+ std::pair<std::string,std::string>("orange_tulip", "normal"),
+ std::pair<std::string,std::string>("white_tulip", "normal"),
+ std::pair<std::string,std::string>("pink_tulip", "normal"),
+ std::pair<std::string,std::string>("oxeye_daisy", "normal"),
+ };
+ return ids[blockId.state];
+ }
+ case 175: {
+ bool high = ((blockId.state >> 3) & 0x1);
+ unsigned char type = blockId.state & 0x7;
+ static const std::string types[] = {
+ "sunflower",
+ "Lilac",
+ "double_grass",
+ "double_fern",
+ "double_rose",
+ "Peony",
+ };
+
+ static const std::string isHigh[] = {
+ "half=lower",
+ "half=upper",
+ };
+ return std::make_pair(types[type], isHigh[high]);
+ }
default:
break;
}