]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapnode.h
Let lighting be done only CPU side. Remove finalColorBlend implementation from shaders.
[minetest.git] / src / mapnode.h
index 74b079c6d5e46557df8e180f5224707f788599b2..f19885d87614f6e38e04254ce59bf06c2a94b3d2 100644 (file)
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "irr_v3d.h"
 #include "irr_aabb3d.h"
 #include "light.h"
+#include <string>
 #include <vector>
 
 class INodeDefManager;
@@ -42,7 +43,7 @@ typedef u16 content_t;
        there is enough room for dummy node IDs, which are created when
        a MapBlock containing unknown node names is loaded from disk.
 */
-#define MAX_REGISTERED_CONTENT 0xfffU
+#define MAX_REGISTERED_CONTENT 0x7fffU
 
 /*
        A solid walkable node with the texture unknown_node.png.
@@ -104,7 +105,7 @@ enum Rotation {
 #define LIQUID_INFINITY_MASK 0x80 //0b10000000
 
 // mask for param2, now as for liquid
-#define LEVELED_MASK 0x07
+#define LEVELED_MASK 0x3F
 #define LEVELED_MAX LEVELED_MASK
 
 /*
@@ -227,7 +228,11 @@ struct MapNode
        std::vector<aabb3f> getSelectionBoxes(INodeDefManager *nodemgr) const;
 
        /* Liquid helpers */
+       u8 getMaxLevel(INodeDefManager *nodemgr) const;
        u8 getLevel(INodeDefManager *nodemgr) const;
+       u8 setLevel(INodeDefManager *nodemgr, s8 level = 1);
+       u8 addLevel(INodeDefManager *nodemgr, s8 add = 1);
+       void freezeMelt(INodeDefManager *nodemgr);
 
        /*
                Serialization functions