From b57dc70769873e00ca7a7642862eb209a5528ce2 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 9 Nov 2019 00:22:42 +0100 Subject: [CSM] Expose more env functions --- src/client/client.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/client/client.cpp') diff --git a/src/client/client.cpp b/src/client/client.cpp index 89873ade3..36d4f8df9 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1337,6 +1337,19 @@ int Client::CSMClampRadius(v3s16 pos, int radius) return std::min(radius, m_csm_restriction_noderange - distance); } +v3s16 Client::CSMClampPos(v3s16 pos) +{ + if (!checkCSMRestrictionFlag(CSMRestrictionFlags::CSM_RF_LOOKUP_NODES)) + return pos; + v3s16 ppos = floatToInt(m_env.getLocalPlayer()->getPosition(), BS); + const int range = m_csm_restriction_noderange; + return v3s16( + core::clamp(pos.X, (int)ppos.X - range, (int)ppos.X + range), + core::clamp(pos.Y, (int)ppos.Y - range, (int)ppos.Y + range), + core::clamp(pos.Z, (int)ppos.Z - range, (int)ppos.Z + range) + ); +} + void Client::addNode(v3s16 p, MapNode n, bool remove_metadata) { //TimeTaker timer1("Client::addNode()"); -- cgit v1.2.3