@@ -1157,156 +1157,124 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
1157
1157
u16 l = getInteriorLight (n, 1 , nodedef);
1158
1158
video::SColor c = MapBlock_LightColor (255 , l, f.light_source );
1159
1159
1160
- float s = BS/ 2 * f.visual_scale ;
1160
+ float s = BS / 2 * f.visual_scale ;
1161
1161
1162
1162
content_t current = n.getContent ();
1163
1163
content_t n2c;
1164
1164
MapNode n2;
1165
1165
v3s16 n2p;
1166
1166
1167
1167
static const v3s16 dirs[6 ] = {
1168
- v3s16 ( 0 , 1 , 0 ),
1169
- v3s16 ( 0 ,-1 , 0 ),
1170
- v3s16 ( 1 , 0 , 0 ),
1171
- v3s16 (-1 , 0 , 0 ),
1172
- v3s16 ( 0 , 0 , 1 ),
1173
- v3s16 ( 0 , 0 , -1 )
1168
+ v3s16 ( 0 , 1 , 0 ),
1169
+ v3s16 ( 0 , -1 , 0 ),
1170
+ v3s16 ( 1 , 0 , 0 ),
1171
+ v3s16 (-1 , 0 , 0 ),
1172
+ v3s16 ( 0 , 0 , 1 ),
1173
+ v3s16 ( 0 , 0 , -1 )
1174
1174
};
1175
1175
1176
- int doDraw[6 ] = {0 ,0 , 0 , 0 , 0 , 0 };
1176
+ int doDraw[6 ] = {0 , 0 , 0 , 0 , 0 , 0 };
1177
1177
1178
1178
bool drawAllFaces = true ;
1179
1179
1180
- bool drawBottomFacesOnly = false ; // Currently unused
1181
-
1182
1180
// Check for adjacent nodes
1183
- for (int i = 0 ; i < 6 ; i++)
1184
- {
1181
+ for (int i = 0 ; i < 6 ; i++) {
1185
1182
n2p = blockpos_nodes + p + dirs[i];
1186
1183
n2 = data->m_vmanip .getNodeNoEx (n2p);
1187
1184
n2c = n2.getContent ();
1188
1185
if (n2c != CONTENT_IGNORE && n2c != CONTENT_AIR && n2c != current) {
1189
1186
doDraw[i] = 1 ;
1190
- if (drawAllFaces)
1187
+ if (drawAllFaces)
1191
1188
drawAllFaces = false ;
1192
1189
1193
1190
}
1194
1191
}
1195
1192
1196
- for (int j = 0 ; j < 6 ; j++)
1197
- {
1198
- int vOffset = 0 ; // Vertical offset of faces after rotation
1199
- int hOffset = 4 ; // Horizontal offset of faces to reach the edge
1193
+ for (int j = 0 ; j < 6 ; j++) {
1200
1194
1201
- video::S3DVertex vertices[4 ] =
1202
- {
1203
- video::S3DVertex (-s,-BS/2 , 0 , 0 ,0 ,0 , c, 0 ,1 ),
1204
- video::S3DVertex ( s,-BS/2 , 0 , 0 ,0 ,0 , c, 1 ,1 ),
1205
- video::S3DVertex ( s,-BS/2 + s*2 ,0 , 0 ,0 ,0 , c, 1 ,0 ),
1206
- video::S3DVertex (-s,-BS/2 + s*2 ,0 , 0 ,0 ,0 , c, 0 ,0 ),
1195
+ video::S3DVertex vertices[4 ] = {
1196
+ video::S3DVertex (-s, -BS / 2 , 0 , 0 , 0 , 0 , c, 0 , 1 ),
1197
+ video::S3DVertex ( s, -BS / 2 , 0 , 0 , 0 , 0 , c, 1 , 1 ),
1198
+ video::S3DVertex ( s, -BS / 2 + s * 2 , 0 , 0 , 0 , 0 , c, 1 , 0 ),
1199
+ video::S3DVertex (-s, -BS / 2 + s * 2 , 0 , 0 , 0 , 0 , c, 0 , 0 ),
1207
1200
};
1208
1201
1209
1202
// Calculate which faces should be drawn, (top or sides)
1210
- if (j == 0 && (drawAllFaces || (doDraw[ 3 ] == 1 || doDraw[ 1 ] == 1 )))
1211
- {
1212
- for (int i = 0 ; i < 4 ; i++) {
1213
- vertices[i].Pos .rotateXZBy (90 + n. param2 * 2 );
1203
+ if (j == 0 && (drawAllFaces ||
1204
+ (doDraw[ 3 ] == 1 || doDraw[ 1 ] == 1 ))) {
1205
+ for (int i = 0 ; i < 4 ; i++) {
1206
+ vertices[i].Pos .rotateXZBy (90 );
1214
1207
vertices[i].Pos .rotateXYBy (-10 );
1215
- vertices[i].Pos .Y -= vOffset;
1216
- vertices[i].Pos .X -= hOffset;
1208
+ vertices[i].Pos .X -= 4.0 ;
1217
1209
}
1218
- }
1219
- else if (j == 1 && (drawAllFaces || (doDraw[5 ] == 1 || doDraw[1 ] == 1 )))
1220
- {
1221
- for (int i = 0 ; i < 4 ; i++) {
1222
- vertices[i].Pos .rotateXZBy (180 + n.param2 * 2 );
1210
+ } else if (j == 1 && (drawAllFaces ||
1211
+ (doDraw[5 ] == 1 || doDraw[1 ] == 1 ))) {
1212
+ for (int i = 0 ; i < 4 ; i++) {
1213
+ vertices[i].Pos .rotateXZBy (180 );
1223
1214
vertices[i].Pos .rotateYZBy (10 );
1224
- vertices[i].Pos .Y -= vOffset;
1225
- vertices[i].Pos .Z -= hOffset;
1215
+ vertices[i].Pos .Z -= 4.0 ;
1226
1216
}
1227
- }
1228
- else if (j == 2 && (drawAllFaces || (doDraw[2 ] == 1 || doDraw[1 ] == 1 )))
1229
- {
1230
- for (int i = 0 ; i < 4 ; i++) {
1231
- vertices[i].Pos .rotateXZBy (270 + n.param2 * 2 );
1217
+ } else if (j == 2 && (drawAllFaces ||
1218
+ (doDraw[2 ] == 1 || doDraw[1 ] == 1 ))) {
1219
+ for (int i = 0 ; i < 4 ; i++) {
1220
+ vertices[i].Pos .rotateXZBy (270 );
1232
1221
vertices[i].Pos .rotateXYBy (10 );
1233
- vertices[i].Pos .Y -= vOffset;
1234
- vertices[i].Pos .X += hOffset;
1222
+ vertices[i].Pos .X += 4.0 ;
1235
1223
}
1236
- }
1237
- else if (j == 3 && (drawAllFaces || (doDraw[4 ] == 1 || doDraw[1 ] == 1 )))
1238
- {
1239
- for (int i = 0 ; i < 4 ; i++) {
1224
+ } else if (j == 3 && (drawAllFaces ||
1225
+ (doDraw[4 ] == 1 || doDraw[1 ] == 1 ))) {
1226
+ for (int i = 0 ; i < 4 ; i++) {
1240
1227
vertices[i].Pos .rotateYZBy (-10 );
1241
- vertices[i].Pos .Y -= vOffset;
1242
- vertices[i].Pos .Z += hOffset;
1228
+ vertices[i].Pos .Z += 4.0 ;
1243
1229
}
1244
- }
1245
-
1246
1230
// Center cross-flames
1247
- else if (j == 4 && (drawAllFaces || doDraw[1 ] == 1 ))
1248
- {
1249
- for (int i=0 ; i<4 ; i++) {
1250
- vertices[i].Pos .rotateXZBy (45 + n.param2 * 2 );
1251
- vertices[i].Pos .Y -= vOffset;
1231
+ } else if (j == 4 && (drawAllFaces || doDraw[1 ] == 1 )) {
1232
+ for (int i = 0 ; i < 4 ; i++) {
1233
+ vertices[i].Pos .rotateXZBy (45 );
1252
1234
}
1253
- }
1254
- else if (j == 5 && (drawAllFaces || doDraw[1 ] == 1 ))
1255
- {
1256
- for (int i=0 ; i<4 ; i++) {
1257
- vertices[i].Pos .rotateXZBy (-45 + n.param2 * 2 );
1258
- vertices[i].Pos .Y -= vOffset;
1235
+ } else if (j == 5 && (drawAllFaces || doDraw[1 ] == 1 )) {
1236
+ for (int i = 0 ; i < 4 ; i++) {
1237
+ vertices[i].Pos .rotateXZBy (-45 );
1259
1238
}
1260
- }
1261
-
1262
- // Render flames on bottom
1263
- else if (j == 0 && (drawBottomFacesOnly || (doDraw[0 ] == 1 && doDraw[1 ] == 0 )))
1264
- {
1265
- for (int i = 0 ; i < 4 ; i++) {
1239
+ // Render flames on bottom of node above
1240
+ } else if (j == 0 && doDraw[0 ] == 1 && doDraw[1 ] == 0 ) {
1241
+ for (int i = 0 ; i < 4 ; i++) {
1266
1242
vertices[i].Pos .rotateYZBy (70 );
1267
- vertices[i].Pos .rotateXZBy (90 + n. param2 * 2 );
1243
+ vertices[i].Pos .rotateXZBy (90 );
1268
1244
vertices[i].Pos .Y += 4.84 ;
1269
- vertices[i].Pos .X -= hOffset+ 0 .7 ;
1245
+ vertices[i].Pos .X -= 4 .7 ;
1270
1246
}
1271
- }
1272
- else if (j == 1 && (drawBottomFacesOnly || (doDraw[0 ] == 1 && doDraw[1 ] == 0 )))
1273
- {
1274
- for (int i = 0 ; i < 4 ; i++) {
1247
+ } else if (j == 1 && doDraw[0 ] == 1 && doDraw[1 ] == 0 ) {
1248
+ for (int i = 0 ; i < 4 ; i++) {
1275
1249
vertices[i].Pos .rotateYZBy (70 );
1276
- vertices[i].Pos .rotateXZBy (180 + n. param2 * 2 );
1250
+ vertices[i].Pos .rotateXZBy (180 );
1277
1251
vertices[i].Pos .Y += 4.84 ;
1278
- vertices[i].Pos .Z -= hOffset+ 0 .7 ;
1252
+ vertices[i].Pos .Z -= 4 .7 ;
1279
1253
}
1280
- }
1281
- else if (j == 2 && (drawBottomFacesOnly || (doDraw[0 ] == 1 && doDraw[1 ] == 0 )))
1282
- {
1283
- for (int i = 0 ; i < 4 ; i++) {
1254
+ } else if (j == 2 && doDraw[0 ] == 1 && doDraw[1 ] == 0 ) {
1255
+ for (int i = 0 ; i < 4 ; i++) {
1284
1256
vertices[i].Pos .rotateYZBy (70 );
1285
- vertices[i].Pos .rotateXZBy (270 + n. param2 * 2 );
1257
+ vertices[i].Pos .rotateXZBy (270 );
1286
1258
vertices[i].Pos .Y += 4.84 ;
1287
- vertices[i].Pos .X += hOffset+ 0 .7 ;
1259
+ vertices[i].Pos .X += 4 .7 ;
1288
1260
}
1289
- }
1290
- else if (j == 3 && (drawBottomFacesOnly || (doDraw[0 ] == 1 && doDraw[1 ] == 0 )))
1291
- {
1292
- for (int i = 0 ; i < 4 ; i++) {
1261
+ } else if (j == 3 && doDraw[0 ] == 1 && doDraw[1 ] == 0 ) {
1262
+ for (int i = 0 ; i < 4 ; i++) {
1293
1263
vertices[i].Pos .rotateYZBy (70 );
1294
1264
vertices[i].Pos .Y += 4.84 ;
1295
- vertices[i].Pos .Z += hOffset+ 0 .7 ;
1265
+ vertices[i].Pos .Z += 4 .7 ;
1296
1266
}
1297
- }
1298
- else {
1267
+ } else {
1299
1268
// Skip faces that aren't adjacent to a node
1300
1269
continue ;
1301
1270
}
1302
1271
1303
- for (int i=0 ; i<4 ; i++)
1304
- {
1272
+ for (int i = 0 ; i < 4 ; i++) {
1305
1273
vertices[i].Pos *= f.visual_scale ;
1306
1274
vertices[i].Pos += intToFloat (p, BS);
1307
1275
}
1308
1276
1309
- u16 indices[] = {0 ,1 , 2 , 2 , 3 , 0 };
1277
+ u16 indices[] = {0 , 1 , 2 , 2 , 3 , 0 };
1310
1278
// Add to mesh collector
1311
1279
collector.append (tile, vertices, 4 , indices, 6 );
1312
1280
}
0 commit comments