summaryrefslogtreecommitdiffstats
path: root/src/Entities/Minecart.cpp
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-04-26 00:32:30 +0200
committerHowaner <franzi.moos@googlemail.com>2014-04-26 00:32:30 +0200
commit7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f (patch)
treec06c0e15699d0a120820176fe979dcbceb63b8b0 /src/Entities/Minecart.cpp
parentMerge pull request #935 from archshift/projectile-fixes (diff)
downloadcuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar.gz
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar.bz2
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar.lz
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar.xz
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.tar.zst
cuberite-7e76f030aa2e6d39ac7fe9fb6a8a3db44bf3dd5f.zip
Diffstat (limited to 'src/Entities/Minecart.cpp')
-rw-r--r--src/Entities/Minecart.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Entities/Minecart.cpp b/src/Entities/Minecart.cpp
index db55eb058..7bd440d6d 100644
--- a/src/Entities/Minecart.cpp
+++ b/src/Entities/Minecart.cpp
@@ -902,18 +902,21 @@ bool cMinecart::TestEntityCollision(NIBBLETYPE a_RailMeta)
-void cMinecart::DoTakeDamage(TakeDamageInfo & TDI)
+bool cMinecart::DoTakeDamage(TakeDamageInfo & TDI)
{
if ((TDI.Attacker != NULL) && TDI.Attacker->IsPlayer() && ((cPlayer *)TDI.Attacker)->IsGameModeCreative())
{
Destroy();
TDI.FinalDamage = GetMaxHealth(); // Instant hit for creative
- super::DoTakeDamage(TDI);
- return; // No drops for creative
+ SetInvulnerableTicks(0);
+ return super::DoTakeDamage(TDI); // No drops for creative
}
m_LastDamage = TDI.FinalDamage;
- super::DoTakeDamage(TDI);
+ if (!super::DoTakeDamage(TDI))
+ {
+ return false;
+ }
m_World->BroadcastEntityMetadata(*this);
@@ -952,12 +955,13 @@ void cMinecart::DoTakeDamage(TakeDamageInfo & TDI)
default:
{
ASSERT(!"Unhandled minecart type when spawning pickup!");
- return;
+ return true;
}
}
m_World->SpawnItemPickups(Drops, GetPosX(), GetPosY(), GetPosZ());
}
+ return true;
}