aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/ControlledByPlayerGoal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/ControlledByPlayerGoal.cpp')
-rw-r--r--Minecraft.World/ControlledByPlayerGoal.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/Minecraft.World/ControlledByPlayerGoal.cpp b/Minecraft.World/ControlledByPlayerGoal.cpp
index 1e035494..cea227cd 100644
--- a/Minecraft.World/ControlledByPlayerGoal.cpp
+++ b/Minecraft.World/ControlledByPlayerGoal.cpp
@@ -36,8 +36,7 @@ void ControlledByPlayerGoal::stop()
bool ControlledByPlayerGoal::canUse()
{
- shared_ptr<Player> player = dynamic_pointer_cast<Player>( mob->rider.lock() );
- return mob->isAlive() && player && (boosting || mob->canBeControlledByRider());
+ return mob->isAlive() && mob->rider.lock() != NULL && mob->rider.lock()->instanceof(eTYPE_PLAYER) && (boosting || mob->canBeControlledByRider());
}
void ControlledByPlayerGoal::tick()
@@ -120,7 +119,7 @@ void ControlledByPlayerGoal::tick()
if (carriedItem != NULL && carriedItem->id == Item::carrotOnAStick_Id)
{
- carriedItem->hurt(1, player);
+ carriedItem->hurtAndBreak(1, player);
if (carriedItem->count == 0)
{
@@ -134,6 +133,11 @@ void ControlledByPlayerGoal::tick()
mob->travel(0, moveSpeed);
}
+bool ControlledByPlayerGoal::isNoJumpTile(int tile)
+{
+ return Tile::tiles[tile] != NULL && (Tile::tiles[tile]->getRenderShape() == Tile::SHAPE_STAIRS || (dynamic_cast<HalfSlabTile *>(Tile::tiles[tile]) != NULL) );
+}
+
bool ControlledByPlayerGoal::isBoosting()
{
return boosting;