From 95c4b00dd0c2b23a6cf85f9f68cbd378d30989ad Mon Sep 17 00:00:00 2001 From: Samuel Barney Date: Mon, 25 Aug 2014 17:22:56 -0600 Subject: Added some missing code --- src/Mobs/Components/MovementComponent.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Mobs/Components/MovementComponent.cpp b/src/Mobs/Components/MovementComponent.cpp index 6e92928d4..f99e89103 100644 --- a/src/Mobs/Components/MovementComponent.cpp +++ b/src/Mobs/Components/MovementComponent.cpp @@ -2,4 +2,32 @@ #include "MovementComponent.h" #include "../Monster.h" +#include "../../World.h" + cMovementComponent::cMovementComponent(cMonster * a_Entity) : m_Self(a_Entity){} + + +int cMovementComponent::FindFirstNonAirBlockPosition(double a_PosX, double a_PosZ) +{ + int PosY = (int)floor(m_Self->GetPosY()); + PosY = Clamp(PosY, 0, cChunkDef::Height); + + if (!cBlockInfo::IsSolid(m_Self->GetWorld()->GetBlock((int)floor(a_PosX), PosY, (int)floor(a_PosZ)))) + { + while (!cBlockInfo::IsSolid(m_Self->GetWorld()->GetBlock((int)floor(a_PosX), PosY, (int)floor(a_PosZ))) && (PosY > 0)) + { + PosY--; + } + + return PosY + 1; + } + else + { + while (cBlockInfo::IsSolid(m_Self->GetWorld()->GetBlock((int)floor(a_PosX), PosY, (int)floor(a_PosZ))) && (PosY < cChunkDef::Height)) + { + PosY++; + } + + return PosY; + } +} -- cgit v1.2.3