diff options
Diffstat (limited to 'Minecraft.World/OcelotSitOnTileGoal.cpp')
| -rw-r--r-- | Minecraft.World/OcelotSitOnTileGoal.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Minecraft.World/OcelotSitOnTileGoal.cpp b/Minecraft.World/OcelotSitOnTileGoal.cpp index f5cf7066..a35537fb 100644 --- a/Minecraft.World/OcelotSitOnTileGoal.cpp +++ b/Minecraft.World/OcelotSitOnTileGoal.cpp @@ -15,7 +15,7 @@ const int OcelotSitOnTileGoal::SIT_TICKS = 60 * SharedConstants::TICKS_PER_SECON const int OcelotSitOnTileGoal::SEARCH_RANGE = 8; const double OcelotSitOnTileGoal::SIT_CHANCE = 0.0065f; -OcelotSitOnTileGoal::OcelotSitOnTileGoal(Ozelot *ocelot, float speed) +OcelotSitOnTileGoal::OcelotSitOnTileGoal(Ocelot *ocelot, double speedModifier) { _tick = 0; tryTicks = 0; @@ -25,7 +25,7 @@ OcelotSitOnTileGoal::OcelotSitOnTileGoal(Ozelot *ocelot, float speed) tileZ = 0; this->ocelot = ocelot; - this->speed = speed; + this->speedModifier = speedModifier; setRequiredControlFlags(Control::MoveControlFlag | Control::JumpControlFlag); } @@ -41,16 +41,20 @@ bool OcelotSitOnTileGoal::canContinueToUse() void OcelotSitOnTileGoal::start() { - ocelot->getNavigation()->moveTo((float) tileX + 0.5, tileY + 1, (float) tileZ + 0.5, speed); + ocelot->getNavigation()->moveTo((float) tileX + 0.5, tileY + 1, (float) tileZ + 0.5, speedModifier); _tick = 0; tryTicks = 0; maxTicks = ocelot->getRandom()->nextInt(ocelot->getRandom()->nextInt(SIT_TICKS) + SIT_TICKS) + SIT_TICKS; ocelot->getSitGoal()->wantToSit(false); + + ocelot->setSittingOnTile(true); // 4J-Added. } void OcelotSitOnTileGoal::stop() { ocelot->setSitting(false); + + ocelot->setSittingOnTile(false); // 4J-Added. } void OcelotSitOnTileGoal::tick() @@ -60,7 +64,7 @@ void OcelotSitOnTileGoal::tick() if (ocelot->distanceToSqr(tileX, tileY + 1, tileZ) > 1) { ocelot->setSitting(false); - ocelot->getNavigation()->moveTo((float) tileX + 0.5, tileY + 1, (float) tileZ + 0.5, speed); + ocelot->getNavigation()->moveTo((float) tileX + 0.5, tileY + 1, (float) tileZ + 0.5, speedModifier); tryTicks++; } else if (!ocelot->isSitting()) @@ -88,9 +92,9 @@ bool OcelotSitOnTileGoal::findNearestTile() if (dist < distSqr) { - this->tileX = x; - this->tileY = y; - this->tileZ = z; + tileX = x; + tileY = y; + tileZ = z; distSqr = dist; } } |
