mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-17 20:10:23 +03:00
* Add Player::drop
This commit is contained in:
@@ -220,6 +220,45 @@ void Player::displayClientMessage(const std::string& msg)
|
||||
|
||||
}
|
||||
|
||||
void Player::drop(ItemInstance* pItemInstance)
|
||||
{
|
||||
drop(pItemInstance, false);
|
||||
}
|
||||
|
||||
void Player::drop(ItemInstance* pItemInstance, bool b)
|
||||
{
|
||||
if (!pItemInstance)
|
||||
return;
|
||||
|
||||
ItemEntity* pItemEntity = new ItemEntity(m_pLevel, m_pos.x, m_pos.y - 0.3f + getHeadHeight(), m_pos.z, pItemInstance);
|
||||
pItemEntity->field_E4 = 40;
|
||||
|
||||
if (b)
|
||||
{
|
||||
float throwPower = 0.5f * m_random.nextFloat();
|
||||
float throwAngle = m_random.nextFloat();
|
||||
|
||||
pItemEntity->m_vel.x = -(throwPower * Mth::sin(2 * float(M_PI) * throwAngle));
|
||||
pItemEntity->m_vel.z = (throwPower * Mth::cos(2 * float(M_PI) * throwAngle));
|
||||
pItemEntity->m_vel.y = 0.2f;
|
||||
}
|
||||
else
|
||||
{
|
||||
pItemEntity->m_vel.x = -(Mth::sin(m_yaw / 180.0f * float(M_PI)) * Mth::cos(m_pitch / 180.0f * float(M_PI))) * 0.3f;
|
||||
pItemEntity->m_vel.z = (Mth::cos(m_yaw / 180.0f * float(M_PI)) * Mth::cos(m_pitch / 180.0f * float(M_PI))) * 0.3f;
|
||||
pItemEntity->m_vel.y = 0.1f - Mth::sin(m_pitch / 180.0f * float(M_PI)) * 0.3f;
|
||||
|
||||
float f1 = m_random.nextFloat();
|
||||
float f2 = m_random.nextFloat();
|
||||
|
||||
pItemEntity->m_vel.x += 0.02f * f2 * Mth::cos(2 * float(M_PI) * f1);
|
||||
pItemEntity->m_vel.y += 0.1f * (m_random.nextFloat() - m_random.nextFloat());
|
||||
pItemEntity->m_vel.z += 0.02f * f2 * Mth::sin(2 * float(M_PI) * f1);
|
||||
}
|
||||
|
||||
reallyDrop(pItemEntity);
|
||||
}
|
||||
|
||||
void Player::drop()
|
||||
{
|
||||
|
||||
@@ -250,6 +289,11 @@ void Player::prepareCustomTextures()
|
||||
|
||||
}
|
||||
|
||||
void Player::reallyDrop(ItemEntity* pEnt)
|
||||
{
|
||||
m_pLevel->addEntity(pEnt);
|
||||
}
|
||||
|
||||
void Player::respawn()
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user