commit
0571b1a7e6
|
@ -750,7 +750,8 @@ void cMinecartWithChest::OnRightClicked(cPlayer & a_Player)
|
||||||
|
|
||||||
cMinecartWithFurnace::cMinecartWithFurnace(double a_X, double a_Y, double a_Z) :
|
cMinecartWithFurnace::cMinecartWithFurnace(double a_X, double a_Y, double a_Z) :
|
||||||
super(mpFurnace, a_X, a_Y, a_Z),
|
super(mpFurnace, a_X, a_Y, a_Z),
|
||||||
m_IsFueled(false)
|
m_IsFueled(false),
|
||||||
|
m_FueledTimeLeft(-1)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -766,8 +767,12 @@ void cMinecartWithFurnace::OnRightClicked(cPlayer & a_Player)
|
||||||
{
|
{
|
||||||
a_Player.GetInventory().RemoveOneEquippedItem();
|
a_Player.GetInventory().RemoveOneEquippedItem();
|
||||||
}
|
}
|
||||||
|
if (!m_IsFueled) // We don't want to change the direction by right clicking it.
|
||||||
|
{
|
||||||
|
AddSpeed(a_Player.GetLookVector().x, 0, a_Player.GetLookVector().z);
|
||||||
|
}
|
||||||
m_IsFueled = true;
|
m_IsFueled = true;
|
||||||
|
m_FueledTimeLeft = m_FueledTimeLeft + 600; // The minecart will be active 600 more ticks.
|
||||||
m_World->BroadcastEntityMetadata(*this);
|
m_World->BroadcastEntityMetadata(*this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -776,6 +781,32 @@ void cMinecartWithFurnace::OnRightClicked(cPlayer & a_Player)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cMinecartWithFurnace::Tick(float a_Dt, cChunk & a_Chunk)
|
||||||
|
{
|
||||||
|
super::Tick(a_Dt, a_Chunk);
|
||||||
|
|
||||||
|
if (m_IsFueled)
|
||||||
|
{
|
||||||
|
m_FueledTimeLeft--;
|
||||||
|
if (m_FueledTimeLeft < 0)
|
||||||
|
{
|
||||||
|
m_IsFueled = false;
|
||||||
|
m_World->BroadcastEntityMetadata(*this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetSpeed().Length() > 6)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AddSpeed(GetSpeed() / 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// cMinecartWithTNT:
|
// cMinecartWithTNT:
|
||||||
|
|
||||||
|
|
|
@ -151,10 +151,18 @@ public:
|
||||||
|
|
||||||
// cEntity overrides:
|
// cEntity overrides:
|
||||||
virtual void OnRightClicked(cPlayer & a_Player) override;
|
virtual void OnRightClicked(cPlayer & a_Player) override;
|
||||||
bool IsFueled (void) const { return m_IsFueled; }
|
virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
|
||||||
|
|
||||||
|
// Set functions.
|
||||||
|
void SetIsFueled(bool a_IsFueled, int a_FueledTimeLeft = -1) {m_IsFueled = a_IsFueled; m_FueledTimeLeft = a_FueledTimeLeft;}
|
||||||
|
|
||||||
|
// Get functions.
|
||||||
|
int GetFueledTimeLeft(void) const {return m_FueledTimeLeft; }
|
||||||
|
bool IsFueled (void) const {return m_IsFueled;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
int m_FueledTimeLeft;
|
||||||
bool m_IsFueled;
|
bool m_IsFueled;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|
Loading…
Reference in New Issue