]> git.lizzy.rs Git - minetest.git/blobdiff - src/camera.cpp
Use numeric indices and raw table access with LUA_REGISTRYINDEX
[minetest.git] / src / camera.cpp
index 0152f704112b63cbf6ca68c0589fa20428749b02..0c6d03e4e5034e66d9126323642a23655e27743a 100644 (file)
@@ -20,14 +20,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "camera.h"
 #include "debug.h"
 #include "client.h"
-#include "main.h" // for g_settings
 #include "map.h"
-#include "clientmap.h" // MapDrawControl
+#include "clientmap.h"     // MapDrawControl
 #include "player.h"
 #include <cmath>
 #include "settings.h"
 #include "wieldmesh.h"
-#include "noise.h" // easeCurve
+#include "noise.h"         // easeCurve
 #include "gamedef.h"
 #include "sound.h"
 #include "event.h"
@@ -93,10 +92,9 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
        // all other 3D scene nodes and before the GUI.
        m_wieldmgr = smgr->createNewSceneManager();
        m_wieldmgr->addCameraSceneNode();
-       m_wieldnode = new WieldMeshSceneNode(m_wieldmgr->getRootSceneNode(), m_wieldmgr, -1, true);
+       m_wieldnode = new WieldMeshSceneNode(m_wieldmgr->getRootSceneNode(), m_wieldmgr, -1, false);
        m_wieldnode->setItem(ItemStack(), m_gamedef);
        m_wieldnode->drop(); // m_wieldmgr grabbed it
-       m_wieldlightnode = m_wieldmgr->addLightSceneNode(NULL, v3f(0.0, 50.0, 0.0));
 
        /* TODO: Add a callback function so these can be updated when a setting
         *       changes.  At this point in time it doesn't matter (e.g. /set
@@ -163,55 +161,37 @@ void Camera::step(f32 dtime)
        {
                //f32 offset = dtime * m_view_bobbing_speed * 0.035;
                f32 offset = dtime * m_view_bobbing_speed * 0.030;
-               if (m_view_bobbing_state == 2)
-               {
-#if 0
+               if (m_view_bobbing_state == 2) {
                        // Animation is getting turned off
-                       if (m_view_bobbing_anim < 0.5)
+                       if (m_view_bobbing_anim < 0.25) {
                                m_view_bobbing_anim -= offset;
-                       else
+                       } else if (m_view_bobbing_anim > 0.75) {
                                m_view_bobbing_anim += offset;
-                       if (m_view_bobbing_anim <= 0 || m_view_bobbing_anim >= 1)
-                       {
-                               m_view_bobbing_anim = 0;
-                               m_view_bobbing_state = 0;
                        }
-#endif
-#if 1
-                       // Animation is getting turned off
-                       if(m_view_bobbing_anim < 0.25)
-                       {
-                               m_view_bobbing_anim -= offset;
-                       } else if(m_view_bobbing_anim > 0.75) {
-                               m_view_bobbing_anim += offset;
-                       }
-                       if(m_view_bobbing_anim < 0.5)
-                       {
+
+                       if (m_view_bobbing_anim < 0.5) {
                                m_view_bobbing_anim += offset;
-                               if(m_view_bobbing_anim > 0.5)
+                               if (m_view_bobbing_anim > 0.5)
                                        m_view_bobbing_anim = 0.5;
                        } else {
                                m_view_bobbing_anim -= offset;
-                               if(m_view_bobbing_anim < 0.5)
+                               if (m_view_bobbing_anim < 0.5)
                                        m_view_bobbing_anim = 0.5;
                        }
-                       if(m_view_bobbing_anim <= 0 || m_view_bobbing_anim >= 1 ||
-                                       fabs(m_view_bobbing_anim - 0.5) < 0.01)
-                       {
+
+                       if (m_view_bobbing_anim <= 0 || m_view_bobbing_anim >= 1 ||
+                                       fabs(m_view_bobbing_anim - 0.5) < 0.01) {
                                m_view_bobbing_anim = 0;
                                m_view_bobbing_state = 0;
                        }
-#endif
                }
-               else
-               {
+               else {
                        float was = m_view_bobbing_anim;
                        m_view_bobbing_anim = my_modf(m_view_bobbing_anim + offset);
                        bool step = (was == 0 ||
                                        (was < 0.5f && m_view_bobbing_anim >= 0.5f) ||
                                        (was > 0.5f && m_view_bobbing_anim <= 0.5f));
-                       if(step)
-                       {
+                       if(step) {
                                MtEvent *e = new SimpleTriggerEvent("ViewBobbingStep");
                                m_gamedef->event()->put(e);
                        }
@@ -470,11 +450,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
        m_wieldnode->setPosition(wield_position);
        m_wieldnode->setRotation(wield_rotation);
 
-       // Shine light upon the wield mesh
-       video::SColor black(255,0,0,0);
-       m_wieldmgr->setAmbientLight(player->light_color.getInterpolated(black, 0.7));
-       m_wieldlightnode->getLightData().DiffuseColor = player->light_color.getInterpolated(black, 0.3);
-       m_wieldlightnode->setPosition(v3f(30+5*sin(2*player->getYaw()*M_PI/180), -50, 0));
+       m_wieldnode->setColor(player->light_color);
 
        // Render distance feedback loop
        updateViewingRange(frametime, busytime);