]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/voxel.h
Merge pull request #13 from Bahamada/upstream_merge
[dragonfireclient.git] / src / voxel.h
index eced43ed544f50134badeaae38e8ed22e9834186..6d1a318f1e9b9f505d1a849d150806664cc67b14 100644 (file)
@@ -373,6 +373,42 @@ class VoxelManipulator /*: public NodeContainer*/
 
                return m_data[m_area.index(p)];
        }
+       MapNode getNodeNoEx(v3s16 p)
+       {
+               emerge(p);
+
+               if(m_flags[m_area.index(p)] & VOXELFLAG_INEXISTENT)
+               {
+                       return MapNode(CONTENT_IGNORE);
+               }
+
+               return m_data[m_area.index(p)];
+       }
+       MapNode getNodeNoExNoEmerge(v3s16 p)
+       {
+               if(m_area.contains(p) == false)
+                       return MapNode(CONTENT_IGNORE);
+               if(m_flags[m_area.index(p)] & VOXELFLAG_INEXISTENT)
+                       return MapNode(CONTENT_IGNORE);
+               return m_data[m_area.index(p)];
+       }
+       MapNode & getNodeRef(v3s16 p)
+       {
+               emerge(p);
+
+               if(m_flags[m_area.index(p)] & VOXELFLAG_INEXISTENT)
+               {
+                       dstream<<"EXCEPT: VoxelManipulator::getNode(): "
+                                       <<"p=("<<p.X<<","<<p.Y<<","<<p.Z<<")"
+                                       <<", index="<<m_area.index(p)
+                                       <<", flags="<<(int)m_flags[m_area.index(p)]
+                                       <<" is inexistent"<<std::endl;
+                       throw InvalidPositionException
+                       ("VoxelManipulator: getNode: inexistent");
+               }
+
+               return m_data[m_area.index(p)];
+       }
        void setNode(v3s16 p, MapNode &n)
        {
                emerge(p);
@@ -525,7 +561,7 @@ class VoxelManipulator /*: public NodeContainer*/
        /*
                Some settings
        */
-       bool m_disable_water_climb;
+       //bool m_disable_water_climb;
 
 private:
 };