@@ -1031,9 +1031,9 @@ static void loadBiomeChunk(const char* path, const int chunkX, const int chunkZ)
1031
1031
static inline void assignBlock (const uint8_t &block, uint8_t * &targetBlock, int &x, int &y, int &z, uint8_t * &justData)
1032
1032
{
1033
1033
if (block == WOOL || block == LOG || block == LEAVES || block == STEP || block == DOUBLESTEP || block == WOOD || block == WOODEN_STEP || block == WOODEN_DOUBLE_STEP
1034
- || block == 95 || block == 160 || block == 159 || block == 171 || block == 38 || block == 175 || block == SAND || block == 153 || block == 166 || block == 167
1035
- || (g_NoWater && (block == WATER || block == STAT_WATER))
1036
- || block == 141 || block == 142 || block == 158 || block == 149 || block == 157
1034
+ || block == 95 || block == 160 || block == 159 || block == 171 || block == 38 || block == 175 || block == SAND || block == 153
1035
+ || (g_NoWater && (block == WATER || block == STAT_WATER)) || (block >= 176 && block <= 197 ) || (block >= 166 && block <= 169 ) || block == STONE
1036
+ || block == 141 || block == 142 || block == 158 || block == 149 || block == 157 || block == 140 || block == 144
1037
1037
|| block == 131 || block == 132 || block == 150 || block == 147 || block == 148 || block == 68 || block == 69 || block == 70
1038
1038
|| block == 72 || block == 77 || block == 143 || block == 36 ) { // three last lines contains colors for carpets
1039
1039
uint8_t col;
@@ -1043,21 +1043,29 @@ static inline void assignBlock(const uint8_t &block, uint8_t* &targetBlock, int
1043
1043
col = (justData[(y + (z + (x * CHUNKSIZE_Z)) * CHUNKSIZE_Y) / 2 ] >> ((y % 2 ) * 4 )) & 0xF ;
1044
1044
}
1045
1045
if (block == 131 || block == 132 || block == 150 || block == 147 || block == 148 || block == 68 || block == 69 || block == 70
1046
- || block == 72 || block == 77 || block == 143 || block == 36 || block == 166
1046
+ || block == 72 || block == 77 || block == 143 || block == 36 || block == 166 || block == 140 || block == 144
1047
1047
|| block == WATER || block == STAT_WATER) { // not visible blocks replaced to air, therefore we have few ID's more
1048
1048
*targetBlock++ = 0 ;
1049
- } else if (block == 141 || block == 142 ) { // carrots and potatoes -> wheat
1050
- *targetBlock++ = 59 ;
1051
- } else if (block == 158 ) { // dropper -> dispenser
1052
- *targetBlock++ = 23 ;
1053
- } else if (block == 149 ) { // comparator -> repeater
1054
- *targetBlock++ = 93 ;
1055
- } else if (block == 153 ) { // nether ore -> netherrack
1056
- *targetBlock++ = 87 ;
1057
- } else if (block == 157 ) { // activator rail -> detector rail
1058
- *targetBlock++ = 28 ;
1059
- } else if (block == 167 ) { // iron trapdoor -> wooden trapdoor
1060
- *targetBlock++ = 96 ;
1049
+ } else if (block == STONE) {
1050
+ switch (col)
1051
+ {
1052
+ case 0 :
1053
+ *targetBlock++ = 1 ;
1054
+ break ;
1055
+ case 1 :
1056
+ case 2 :
1057
+ *targetBlock++ = 140 ;
1058
+ break ;
1059
+ case 3 :
1060
+ case 4 :
1061
+ *targetBlock++ = 144 ;
1062
+ break ;
1063
+ case 5 :
1064
+ case 6 :
1065
+ *targetBlock++ = 157 ;
1066
+ break ;
1067
+ }
1068
+
1061
1069
} else if (block == LEAVES) {
1062
1070
if ((col & 0x3 ) != 0 ) { // Map to pine or birch
1063
1071
*targetBlock++ = 228 + (col & 0x3 );
@@ -1231,7 +1239,7 @@ static inline void assignBlock(const uint8_t &block, uint8_t* &targetBlock, int
1231
1239
} else {
1232
1240
*targetBlock++ = block;
1233
1241
}
1234
- } else /* if (block == DOUBLESTEP)*/ {
1242
+ } else if (block == DOUBLESTEP) {
1235
1243
if (col == 1 ) {
1236
1244
*targetBlock++ = SANDSTONE;
1237
1245
} else if (col == 2 ) {
@@ -1241,7 +1249,33 @@ static inline void assignBlock(const uint8_t &block, uint8_t* &targetBlock, int
1241
1249
} else {
1242
1250
*targetBlock++ = block;
1243
1251
}
1244
- }
1252
+ } else if (block == 141 || block == 142 ) { // carrots and potatoes -> wheat
1253
+ *targetBlock++ = 59 ;
1254
+ } else if (block == 158 ) { // dropper -> dispenser
1255
+ *targetBlock++ = 23 ;
1256
+ } else if (block == 149 ) { // comparator -> repeater
1257
+ *targetBlock++ = 93 ;
1258
+ } else if (block == 153 ) { // nether ore -> netherrack
1259
+ *targetBlock++ = 87 ;
1260
+ } else if (block == 157 ) { // activator rail -> detector rail
1261
+ *targetBlock++ = 28 ;
1262
+ } else if (block == 167 ) { // iron trapdoor -> wooden trapdoor
1263
+ *targetBlock++ = 96 ;
1264
+ } else if (block == 179 || block == 180 || block == 181 || block == 182 ) { // red sandstone -> red sand
1265
+ *targetBlock++ = 153 ;
1266
+ } else if (block == 178 ) { // daylight detector inverted -> daylight detector
1267
+ *targetBlock++ = 151 ;
1268
+ } else if (block == 168 ) { // prismarine
1269
+ *targetBlock++ = 232 ;
1270
+ } else if (block == 169 ) { // sea lantern
1271
+ *targetBlock++ = 236 ;
1272
+ } else if (block >= 193 && block <= 197 ) { // doors 1.8+
1273
+ *targetBlock++ = 64 ;
1274
+ } else if (block >= 188 && block <= 192 ) { // fences 1.8+
1275
+ *targetBlock++ = 85 ;
1276
+ } else if (block >= 183 && block <= 187 ) { // fence gates 1.8+
1277
+ *targetBlock++ = 107 ;
1278
+ } else *targetBlock++ = block;
1245
1279
} else {
1246
1280
*targetBlock++ = block;
1247
1281
}
0 commit comments