diff options
author | stujones11 <stujones111@gmail.com> | 2017-08-24 09:01:16 +0100 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-08-24 10:01:16 +0200 |
commit | ac4884c3d677ef51bcce47f95ccd49d874022692 (patch) | |
tree | d7474c9c8914a6147a157245182fa8f201b51646 /src/content_cao.cpp | |
parent | 01c319d7784c3db614a53745e5af62c43cf45c90 (diff) | |
download | hax-minetest-server-ac4884c3d677ef51bcce47f95ccd49d874022692.tar.gz hax-minetest-server-ac4884c3d677ef51bcce47f95ccd49d874022692.zip |
Make entity selection and collision boxes independently settable (#6218)
* Make entity selection and collision boxes independently settable
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r-- | src/content_cao.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp index 8f6847bc0..c34b47d51 100644 --- a/src/content_cao.cpp +++ b/src/content_cao.cpp @@ -346,7 +346,7 @@ GenericCAO::~GenericCAO() bool GenericCAO::getSelectionBox(aabb3f *toset) const { if (!m_prop.is_visible || !m_is_visible || m_is_local_player - || getParent() != NULL){ + || !m_prop.pointable || getParent() != NULL) { return false; } *toset = m_selection_box; @@ -1226,7 +1226,7 @@ void GenericCAO::processMessage(const std::string &data) if (cmd == GENERIC_CMD_SET_PROPERTIES) { m_prop = gob_read_set_properties(is); - m_selection_box = m_prop.collisionbox; + m_selection_box = m_prop.selectionbox; m_selection_box.MinEdge *= BS; m_selection_box.MaxEdge *= BS; @@ -1240,7 +1240,10 @@ void GenericCAO::processMessage(const std::string &data) if (m_is_local_player) { LocalPlayer *player = m_env->getLocalPlayer(); player->makes_footstep_sound = m_prop.makes_footstep_sound; - player->setCollisionbox(m_selection_box); + aabb3f collision_box = m_prop.collisionbox; + collision_box.MinEdge *= BS; + collision_box.MaxEdge *= BS; + player->setCollisionbox(collision_box); } if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty()) |