summaryrefslogtreecommitdiff
path: root/src/content_cao.cpp
diff options
context:
space:
mode:
authorstujones11 <stujones111@gmail.com>2017-08-24 09:01:16 +0100
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-08-24 10:01:16 +0200
commitac4884c3d677ef51bcce47f95ccd49d874022692 (patch)
treed7474c9c8914a6147a157245182fa8f201b51646 /src/content_cao.cpp
parent01c319d7784c3db614a53745e5af62c43cf45c90 (diff)
downloadminetest-ac4884c3d677ef51bcce47f95ccd49d874022692.tar.gz
minetest-ac4884c3d677ef51bcce47f95ccd49d874022692.tar.bz2
minetest-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.cpp9
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())