diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-07-23 19:04:37 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-07-23 19:04:37 +0300 |
commit | 2587bb361cfc96b3a695d1476e39b9c0ecaa6553 (patch) | |
tree | 6e6a35e0ee35883201189df9c545cc44b7a06658 /src/game.cpp | |
parent | 90d793f8f369bf1431d7a915198cd49b98bbe2d7 (diff) | |
parent | 976ec31c1faedc3a34935c3aafd6a868e222d1ad (diff) | |
download | minetest-2587bb361cfc96b3a695d1476e39b9c0ecaa6553.tar.gz minetest-2587bb361cfc96b3a695d1476e39b9c0ecaa6553.tar.bz2 minetest-2587bb361cfc96b3a695d1476e39b9c0ecaa6553.zip |
merged the content type extension and delta
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/src/game.cpp b/src/game.cpp index 7e2ee44fc..b26d48967 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -538,6 +538,43 @@ void getPointedNode(Client *client, v3f player_position, } } } + else if(n.getContent() == CONTENT_RAIL) + { + v3s16 dir = unpackDir(n.param0); + v3f dir_f = v3f(dir.X, dir.Y, dir.Z); + dir_f *= BS/2 - BS/6 - BS/20; + v3f cpf = npf + dir_f; + f32 distance = (cpf - camera_position).getLength(); + + float d = (float)BS/16; + v3f vertices[4] = + { + v3f(BS/2, -BS/2+d, -BS/2), + v3f(-BS/2, -BS/2, BS/2), + }; + + for(s32 i=0; i<2; i++) + { + vertices[i] += npf; + } + + core::aabbox3d<f32> box; + + box = core::aabbox3d<f32>(vertices[0]); + box.addInternalPoint(vertices[1]); + + if(distance < mindistance) + { + if(box.intersectsWithLine(shootline)) + { + nodefound = true; + nodepos = np; + neighbourpos = np; + mindistance = distance; + nodehilightbox = box; + } + } + } /* Regular blocks */ @@ -1915,15 +1952,9 @@ void the_game( */ if(farmesh) { - farmesh_range = draw_control.wanted_range * 10; - if(draw_control.range_all && farmesh_range < 500) - farmesh_range = 500; - if(farmesh_range > 1000) - farmesh_range = 1000; - farmesh->step(dtime); farmesh->update(v2f(player_position.X, player_position.Z), - 0.05+brightness*0.95, farmesh_range); + 0.05+brightness*0.95); } // Store brightness value @@ -1990,7 +2021,7 @@ void the_game( endscenetime_avg = endscenetime_avg * 0.95 + (float)endscenetime*0.05; char temptext[300]; - snprintf(temptext, 300, "Minetest-c55 %s (" + snprintf(temptext, 300, "Minetest-delta %s (" "R: range_all=%i" ")" " drawtime=%.0f, beginscenetime=%.0f" |