]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapblock_mesh.cpp
Add '/clearobjects quick'
[minetest.git] / src / mapblock_mesh.cpp
index 9bcc4fa6a0df816943013b8e40b14d171eaa87db..9486220e0138bdf3c33a07f2a92e889fa01a0c6c 100644 (file)
@@ -47,10 +47,8 @@ MeshMakeData::MeshMakeData(IGameDef *gamedef, bool use_shaders):
        m_vmanip(),
        m_blockpos(-1337,-1337,-1337),
        m_crack_pos_relative(-1337, -1337, -1337),
-       m_highlighted_pos_relative(-1337, -1337, -1337),
        m_smooth_lighting(false),
        m_show_hud(false),
-       m_highlight_mesh_color(255, 255, 255, 255),
        m_gamedef(gamedef),
        m_use_shaders(use_shaders)
 {}
@@ -138,12 +136,6 @@ void MeshMakeData::setCrack(int crack_level, v3s16 crack_pos)
                m_crack_pos_relative = crack_pos - m_blockpos*MAP_BLOCKSIZE;
 }
 
-void MeshMakeData::setHighlighted(v3s16 highlighted_pos, bool show_hud)
-{
-       m_show_hud = show_hud;
-       m_highlighted_pos_relative = highlighted_pos - m_blockpos*MAP_BLOCKSIZE;
-}
-
 void MeshMakeData::setSmoothLighting(bool smooth_lighting)
 {
        m_smooth_lighting = smooth_lighting;
@@ -1036,12 +1028,10 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
        m_animation_force_timer(0), // force initial animation
        m_last_crack(-1),
        m_crack_materials(),
-       m_highlighted_materials(),
        m_last_daynight_ratio((u32) -1),
        m_daynight_diffs()
 {
        m_enable_shaders = data->m_use_shaders;
-       m_enable_highlighting = g_settings->getBool("enable_node_highlighting");
 
        if (g_settings->getBool("enable_minimap")) {
                m_minimap_mapblock = new MinimapMapblock;
@@ -1116,8 +1106,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
 
        mapblock_mesh_generate_special(data, collector);
 
-       m_highlight_mesh_color = data->m_highlight_mesh_color;
-
        /*
                Convert MeshCollector to SMesh
        */
@@ -1162,9 +1150,6 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
                        p.tile.texture = animation_frame.texture;
                }
 
-               if(m_enable_highlighting && p.tile.material_flags & MATERIAL_FLAG_HIGHLIGHTED)
-                       m_highlighted_materials.push_back(i);
-
                for(u32 j = 0; j < p.vertices.size(); j++)
                {
                        video::S3DVertex *vertex = &p.vertices[j];
@@ -1205,19 +1190,15 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
                material.setFlag(video::EMF_FOG_ENABLE, true);
                material.setTexture(0, p.tile.texture);
 
-               if (p.tile.material_flags & MATERIAL_FLAG_HIGHLIGHTED) {
-                       material.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
-               } else {
-                       if (m_enable_shaders) {
-                               material.MaterialType = m_shdrsrc->getShaderInfo(p.tile.shader_id).material;
-                               p.tile.applyMaterialOptionsWithShaders(material);
-                               if (p.tile.normal_texture) {
-                                       material.setTexture(1, p.tile.normal_texture);
-                               }
-                               material.setTexture(2, p.tile.flags_texture);
-                       } else {
-                               p.tile.applyMaterialOptions(material);
+               if (m_enable_shaders) {
+                       material.MaterialType = m_shdrsrc->getShaderInfo(p.tile.shader_id).material;
+                       p.tile.applyMaterialOptionsWithShaders(material);
+                       if (p.tile.normal_texture) {
+                               material.setTexture(1, p.tile.normal_texture);
                        }
+                       material.setTexture(2, p.tile.flags_texture);
+               } else {
+                       p.tile.applyMaterialOptions(material);
                }
 
        // Create meshbuffer
@@ -1273,8 +1254,7 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
        m_has_animation =
                !m_crack_materials.empty() ||
                !m_daynight_diffs.empty() ||
-               !m_animation_tiles.empty() ||
-               !m_highlighted_materials.empty();
+               !m_animation_tiles.empty();
 }
 
 MapBlockMesh::~MapBlockMesh()
@@ -1377,30 +1357,6 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, u32 daynight_rat
                m_last_daynight_ratio = daynight_ratio;
        }
 
-       // Node highlighting
-       if (m_enable_highlighting) {
-               u8 day = m_highlight_mesh_color.getRed();
-               u8 night = m_highlight_mesh_color.getGreen();
-               video::SColor hc;
-               finalColorBlend(hc, day, night, daynight_ratio);
-               float sin_r = 0.07 * sin(1.5 * time);
-               float sin_g = 0.07 * sin(1.5 * time + irr::core::PI * 0.5);
-               float sin_b = 0.07 * sin(1.5 * time + irr::core::PI);
-               hc.setRed(core::clamp(core::round32(hc.getRed() * (0.8 + sin_r)), 0, 255));
-               hc.setGreen(core::clamp(core::round32(hc.getGreen() * (0.8 + sin_g)), 0, 255));
-               hc.setBlue(core::clamp(core::round32(hc.getBlue() * (0.8 + sin_b)), 0, 255));
-
-               for(std::list<u32>::iterator
-                       i = m_highlighted_materials.begin();
-                       i != m_highlighted_materials.end(); ++i)
-               {
-                       scene::IMeshBuffer *buf = m_mesh->getMeshBuffer(*i);
-                       video::S3DVertex *vertices = (video::S3DVertex *)buf->getVertices();
-                       for (u32 j = 0; j < buf->getVertexCount() ;j++)
-                               vertices[j].Color = hc;
-               }
-       }
-
        return true;
 }