diff options
Diffstat (limited to 'src/mapblock_mesh.cpp')
-rw-r--r-- | src/mapblock_mesh.cpp | 62 |
1 files changed, 9 insertions, 53 deletions
diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp index 9bcc4fa6a..9486220e0 100644 --- a/src/mapblock_mesh.cpp +++ b/src/mapblock_mesh.cpp @@ -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; } |