From c1d92d72e1af6d99c6fdbeec0900326dd9938fd2 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sat, 5 Nov 2011 23:30:27 +0200
Subject: [PATCH] Make water invisible next to underwater glass

---
 src/mapnode.h | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/mapnode.h b/src/mapnode.h
index fb7244322..81445b9ac 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -395,8 +395,22 @@ inline u8 face_contents(content_t m1, content_t m2)
 
 	if(makes_face == false)
 		return 0;
+	
+	u8 c1 = content_solidness(m1);
+	u8 c2 = content_solidness(m2);
+	
+	/*
+		Special case for half-transparent content.
+
+		This makes eg. the water (solidness=1) surrounding an underwater
+		glass block (solidness=0, visual_solidness=1) not get drawn.
+	*/
+	if(c1 == 1 && c2 == 0 && content_features(m2).visual_solidness != 0)
+		return 0;
+	if(c2 == 1 && c1 == 0 && content_features(m1).visual_solidness != 0)
+		return 0;
 
-	if(content_solidness(m1) > content_solidness(m2))
+	if(c1 > c2)
 		return 1;
 	else
 		return 2;
-- 
GitLab