diff options
Diffstat (limited to 'src/environment.cpp')
-rw-r--r-- | src/environment.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index b04f77557..547b3567e 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -45,6 +45,8 @@ Environment::Environment(IGameDef *gamedef): u32 Environment::getDayNightRatio() { MutexAutoLock lock(this->m_time_lock); + if (g_settings->getBool("no_night")) + return time_to_daynight_ratio(12000, m_cache_enable_shaders); if (m_enable_day_night_ratio_override) return m_day_night_ratio_override; return time_to_daynight_ratio(m_time_of_day_f * 24000, m_cache_enable_shaders); @@ -105,11 +107,13 @@ bool Environment::line_of_sight(v3f pos1, v3f pos2, v3s16 *p) Check if a node is pointable */ inline static bool isPointableNode(const MapNode &n, - const NodeDefManager *nodedef , bool liquids_pointable) + const NodeDefManager *nodedef , bool liquids_pointable, bool nodes_pointable) { + if (! nodes_pointable) + return false; const ContentFeatures &features = nodedef->get(n); return features.pointable || - (liquids_pointable && features.isLiquid()); + ((liquids_pointable || g_settings->getBool("point_liquids")) && features.isLiquid()); } void Environment::continueRaycast(RaycastState *state, PointedThing *result) @@ -185,7 +189,7 @@ void Environment::continueRaycast(RaycastState *state, PointedThing *result) n = map.getNode(np, &is_valid_position); if (!(is_valid_position && isPointableNode(n, nodedef, - state->m_liquids_pointable))) { + state->m_liquids_pointable, state->m_nodes_pointable))) { continue; } |