summaryrefslogtreecommitdiff
path: root/src/voxel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/voxel.h')
-rw-r--r--src/voxel.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/voxel.h b/src/voxel.h
index 52274ac19..054644889 100644
--- a/src/voxel.h
+++ b/src/voxel.h
@@ -413,10 +413,21 @@ public:
}
// Stuff explodes if non-emerged area is touched with this.
// Emerge first, and check VOXELFLAG_NO_DATA if appropriate.
- MapNode & getNodeRefUnsafe(v3s16 p)
+ MapNode & getNodeRefUnsafe(const v3s16 &p)
{
return m_data[m_area.index(p)];
}
+
+ const MapNode & getNodeRefUnsafeCheckFlags(const v3s16 &p)
+ {
+ s32 index = m_area.index(p);
+
+ if (m_flags[index] & VOXELFLAG_NO_DATA)
+ return ContentIgnoreNode;
+
+ return m_data[index];
+ }
+
u8 & getFlagsRefUnsafe(v3s16 p)
{
return m_flags[m_area.index(p)];
@@ -569,6 +580,8 @@ public:
*/
u8 *m_flags;
+ static const MapNode ContentIgnoreNode;
+
//TODO: Use these or remove them
//TODO: Would these make any speed improvement?
//bool m_pressure_route_valid;