]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/main.cpp
commit before some more radical changes
[dragonfireclient.git] / src / main.cpp
index c9db0bdc45451b2a972d4bac5b4de8b99c48cdda..a901163df9554823ab8d492aff05dc06b06ec66f 100644 (file)
@@ -2701,6 +2701,55 @@ int main(int argc, char *argv[])
                                        }\r
                                }\r
                        }\r
+                       else if(n.d == CONTENT_SIGN_WALL)\r
+                       {\r
+                               v3s16 dir = unpackDir(n.dir);\r
+                               v3f dir_f = v3f(dir.X, dir.Y, dir.Z);\r
+                               dir_f *= BS/2 - BS/6 - BS/20;\r
+                               v3f cpf = npf + dir_f;\r
+                               f32 distance = (cpf - camera_position).getLength();\r
+\r
+                               v3f vertices[4] =\r
+                               {\r
+                                       v3f(BS*0.42,-BS*0.35,-BS*0.4),\r
+                                       v3f(BS*0.49, BS*0.35, BS*0.4),\r
+                               };\r
+\r
+                               for(s32 i=0; i<2; i++)\r
+                               {\r
+                                       if(dir == v3s16(1,0,0))\r
+                                               vertices[i].rotateXZBy(0);\r
+                                       if(dir == v3s16(-1,0,0))\r
+                                               vertices[i].rotateXZBy(180);\r
+                                       if(dir == v3s16(0,0,1))\r
+                                               vertices[i].rotateXZBy(90);\r
+                                       if(dir == v3s16(0,0,-1))\r
+                                               vertices[i].rotateXZBy(-90);\r
+                                       if(dir == v3s16(0,-1,0))\r
+                                               vertices[i].rotateXYBy(-90);\r
+                                       if(dir == v3s16(0,1,0))\r
+                                               vertices[i].rotateXYBy(90);\r
+\r
+                                       vertices[i] += npf;\r
+                               }\r
+\r
+                               core::aabbox3d<f32> box;\r
+\r
+                               box = core::aabbox3d<f32>(vertices[0]);\r
+                               box.addInternalPoint(vertices[1]);\r
+\r
+                               if(distance < mindistance)\r
+                               {\r
+                                       if(box.intersectsWithLine(shootline))\r
+                                       {\r
+                                               nodefound = true;\r
+                                               nodepos = np;\r
+                                               neighbourpos = np;\r
+                                               mindistance = distance;\r
+                                               nodehilightbox = box;\r
+                                       }\r
+                               }\r
+                       }\r
                        /*\r
                                Regular blocks\r
                        */\r
@@ -2765,11 +2814,20 @@ int main(int argc, char *argv[])
                        static float dig_time = 0.0;\r
                        static u16 dig_index = 0;\r
                        \r
-                       // Visualize selection\r
+                       /*\r
+                               Visualize selection\r
+                       */\r
 \r
                        hilightboxes.push_back(nodehilightbox);\r
 \r
-                       // Handle digging\r
+                       /*\r
+                               TODO:\r
+                               Check information text of node\r
+                       */\r
+\r
+                       /*\r
+                               Handle digging\r
+                       */\r
                        \r
                        if(g_input->getLeftReleased())\r
                        {\r