]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapnode.h
Use Buffer not SharedBuffer in NetworkPacket::oldForgePacket
[minetest.git] / src / mapnode.h
index e67724ec1b8af8699cda2bbab3bec8779de5f051..7cc25c60cfabde4b70036e1b80667ad67f69ebad 100644 (file)
@@ -62,11 +62,11 @@ typedef u16 content_t;
 
 /*
        Ignored node.
-       
+
        Unloaded chunks are considered to consist of this. Several other
        methods return this when an error occurs. Also, during
        map generation this means the node has not been set yet.
-       
+
        Doesn't create faces with anything and is considered being
        out-of-map in the game map.
 */
@@ -132,19 +132,22 @@ struct MapNode
                - Uhh... well, most blocks have light or nothing in here.
        */
        u8 param1;
-       
+
        /*
                The second parameter. Initialized to 0.
                E.g. direction for torches and flowing water.
        */
        u8 param2;
 
+       MapNode()
+       { }
+
        MapNode(const MapNode & n)
        {
                *this = n;
        }
 
-       MapNode(content_t content = CONTENT_AIR, u8 a_param1=0, u8 a_param2=0)
+       MapNode(content_t content, u8 a_param1=0, u8 a_param2=0)
                : param0(content),
                  param1(a_param1),
                  param2(a_param2)
@@ -161,7 +164,7 @@ struct MapNode
                                && param1 == other.param1
                                && param2 == other.param2);
        }
-       
+
        // To be used everywhere
        content_t getContent() const
        {
@@ -187,8 +190,16 @@ struct MapNode
        {
                param2 = p;
        }
-       
+
        void setLight(enum LightBank bank, u8 a_light, INodeDefManager *nodemgr);
+
+       /**
+        * Check if the light value for night differs from the light value for day.
+        *
+        * @return If the light values are equal, returns true; otherwise false
+        */
+       bool isLightDayNightEq(INodeDefManager *nodemgr) const;
+
        u8 getLight(enum LightBank bank, INodeDefManager *nodemgr) const;
 
        /**
@@ -206,10 +217,10 @@ struct MapNode
         * @pre f != NULL
         * @pre f->param_type == CPT_LIGHT
         */
-       u8 getLightNoChecks(LightBank bank, const ContentFeatures *f);
+       u8 getLightNoChecks(LightBank bank, const ContentFeatures *f) const;
 
        bool getLightBanks(u8 &lightday, u8 &lightnight, INodeDefManager *nodemgr) const;
-       
+
        // 0 <= daylight_factor <= 1000
        // 0 <= return value <= LIGHT_SUN
        u8 getLightBlend(u32 daylight_factor, INodeDefManager *nodemgr) const
@@ -220,20 +231,10 @@ struct MapNode
                return blend_light(daylight_factor, lightday, lightnight);
        }
 
-       // 0.0 <= daylight_factor <= 1.0
-       // 0 <= return value <= LIGHT_SUN
-       u8 getLightBlendF1(float daylight_factor, INodeDefManager *nodemgr) const
-       {
-               u8 lightday = 0;
-               u8 lightnight = 0;
-               getLightBanks(lightday, lightnight, nodemgr);
-               return blend_light_f1(daylight_factor, lightday, lightnight);
-       }
-
        u8 getFaceDir(INodeDefManager *nodemgr) const;
        u8 getWallMounted(INodeDefManager *nodemgr) const;
        v3s16 getWallMountedDir(INodeDefManager *nodemgr) const;
-       
+
        void rotateAlongYAxis(INodeDefManager *nodemgr, Rotation rot);
 
        /*
@@ -251,12 +252,13 @@ struct MapNode
        */
        std::vector<aabb3f> getCollisionBoxes(INodeDefManager *nodemgr) const;
 
-       /* Liquid helpers */
+       /*
+               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
@@ -265,7 +267,7 @@ struct MapNode
        static u32 serializedLength(u8 version);
        void serialize(u8 *dest, u8 version);
        void deSerialize(u8 *source, u8 version);
-       
+
        // Serializes or deserializes a list of nodes in bulk format (first the
        // content of all nodes, then the param1 of all nodes, then the param2
        // of all nodes).