1
0

Floater now dissapears when the player doesn't have an fishing rod equipped.

This commit is contained in:
STRWarrior 2013-12-21 17:31:05 +01:00
parent 0d14229ffd
commit bd6574230a
2 changed files with 32 additions and 0 deletions

View File

@ -240,6 +240,11 @@ void cPlayer::Tick(float a_Dt, cChunk & a_Chunk)
HandleFood();
}
if (m_IsFishing)
{
HandleFloater();
}
// Send Player List (Once per m_LastPlayerListTime/1000 ms)
cTimer t1;
if (m_LastPlayerListTime + cPlayer::PLAYER_LIST_TIME_MS <= t1.GetNowTime())
@ -1781,6 +1786,30 @@ void cPlayer::HandleFood(void)
void cPlayer::HandleFloater()
{
if (GetEquippedItem().m_ItemType == E_ITEM_FISHING_ROD)
{
return;
}
class cFloaterCallback :
public cEntityCallback
{
public:
virtual bool Item(cEntity * a_Entity) override
{
a_Entity->Destroy(true);
return true;
}
} Callback;
m_World->DoWithEntityByID(m_FloaterID, Callback);
SetIsFishing(false);
}
void cPlayer::ApplyFoodExhaustionFromMovement()
{
if (IsGameModeCreative())

View File

@ -466,6 +466,9 @@ protected:
/// Called in each tick to handle food-related processing
void HandleFood(void);
/// Called in each tick if the player is fishing to make sure the floater dissapears when the player doesn't have a fishing rod as equipped item.
void HandleFloater(void);
/// Called in each tick to handle air-related processing i.e. drowning
void HandleAir();