diff options
author | madmaxoft <github@xoft.cz> | 2014-03-29 23:05:17 +0100 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-03-29 23:05:17 +0100 |
commit | 47a427d3dc1aafa1de5d55faa60e666e64ba7bd3 (patch) | |
tree | 3d9e203397178a6874b0430773731693cbd03ab6 /src/Entities | |
parent | NetherFortGen: Added several more prefabs. (diff) | |
parent | cPrefab now uses a struct for block type definition in CharMap. (diff) | |
download | cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar.gz cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar.bz2 cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar.lz cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar.xz cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.tar.zst cuberite-47a427d3dc1aafa1de5d55faa60e666e64ba7bd3.zip |
Diffstat (limited to 'src/Entities')
-rw-r--r-- | src/Entities/Player.cpp | 1 | ||||
-rw-r--r-- | src/Entities/ProjectileEntity.cpp | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index 863aaa799..646aad50f 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -1489,6 +1489,7 @@ bool cPlayer::MoveToWorld(const char * a_WorldName) // Add player to all the necessary parts of the new world SetWorld(World); + m_ClientHandle->StreamChunks(); World->AddEntity(this); World->AddPlayer(this); diff --git a/src/Entities/ProjectileEntity.cpp b/src/Entities/ProjectileEntity.cpp index f4ab825f2..a9735a53c 100644 --- a/src/Entities/ProjectileEntity.cpp +++ b/src/Entities/ProjectileEntity.cpp @@ -4,6 +4,7 @@ // Implements the cProjectileEntity class representing the common base class for projectiles, as well as individual projectile types #include "Globals.h" +#include "../Bindings/PluginManager.h" #include "ProjectileEntity.h" #include "../ClientHandle.h" #include "Player.h" @@ -66,6 +67,11 @@ protected: eBlockFace Face; if (bb.CalcLineIntersection(Line1, Line2, LineCoeff, Face)) { + if (cPluginManager::Get()->CallHookProjectileHitBlock(*m_Projectile)) + { + return false; + } + Vector3d Intersection = Line1 + m_Projectile->GetSpeed() * LineCoeff; m_Projectile->OnHitSolidBlock(Intersection, Face); return true; @@ -147,7 +153,11 @@ public: } // TODO: Some entities don't interact with the projectiles (pickups, falling blocks) - // TODO: Allow plugins to interfere about which entities can be hit + if (cPluginManager::Get()->CallHookProjectileHitEntity(*m_Projectile, *a_Entity)) + { + // A plugin disagreed. + return false; + } if (LineCoeff < m_MinCoeff) { |