]> git.lizzy.rs Git - minetest.git/blobdiff - src/content_mapblock.cpp
Add shutdown hook interface to Lua API
[minetest.git] / src / content_mapblock.cpp
index d87ae32fbde761cf58ce7fc23d9517d49a188954..68895c396d4553ef971acb8c104e504ebdeb222b 100644 (file)
@@ -26,7 +26,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "tile.h"
 #include "gamedef.h"
 #include "util/numeric.h"
-#include "util/serialize.h"
 #include "util/directiontables.h"
 
 // Create a cuboid.
@@ -492,15 +491,15 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                                // -Z towards +Z, thus the direction is +Z.
                                // Rotate texture to make animation go in flow direction
                                // Positive if liquid moves towards +Z
-                               int dz = (corner_levels[side_corners[2][0]] +
-                                               corner_levels[side_corners[2][1]] <
-                                               corner_levels[side_corners[3][0]] +
-                                               corner_levels[side_corners[3][1]]);
+                               int dz = (corner_levels[side_corners[3][0]] +
+                                               corner_levels[side_corners[3][1]]) -
+                                               (corner_levels[side_corners[2][0]] +
+                                               corner_levels[side_corners[2][1]]);
                                // Positive if liquid moves towards +X
-                               int dx = (corner_levels[side_corners[0][0]] +
-                                               corner_levels[side_corners[0][1]] <
-                                               corner_levels[side_corners[1][0]] +
-                                               corner_levels[side_corners[1][1]]);
+                               int dx = (corner_levels[side_corners[1][0]] +
+                                               corner_levels[side_corners[1][1]]) -
+                                               (corner_levels[side_corners[0][0]] +
+                                               corner_levels[side_corners[0][1]]);
                                // -X
                                if(-dx >= abs(dz))
                                {
@@ -1029,10 +1028,20 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                break;}
                case NDT_NODEBOX:
                {
+                       static const v3s16 tile_dirs[6] = {
+                               v3s16(0, 1, 0),
+                               v3s16(0, -1, 0),
+                               v3s16(1, 0, 0),
+                               v3s16(-1, 0, 0),
+                               v3s16(0, 0, 1),
+                               v3s16(0, 0, -1)
+                       };
+
                        TileSpec tiles[6];
                        for(int i = 0; i < 6; i++)
                        {
-                               tiles[i] = getNodeTileN(n, p, i, data);
+                               // Handles facedir rotation for textures
+                               tiles[i] = getNodeTile(n, p, tile_dirs[i], data);
                        }
 
                        u16 l = getInteriorLight(n, 0, data);