Skip to content

Commit 651fc0b

Browse files
committed
Added music disc drops for Creepers
Minor Mob bugfixes
1 parent 4c50eeb commit 651fc0b

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

source/world/entity/Creeper.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ void Creeper::die(Entity* pCulprit)
4646
{
4747
Monster::die(pCulprit);
4848

49-
// @NOTE: Disc dropping not implemented yet
49+
if (pCulprit->getDescriptor().isType(EntityType::SKELETON))
50+
{
51+
spawnAtLocation(Item::record_01->m_itemID + m_random.nextInt(2), 1);
52+
}
5053
}
5154

5255
void Creeper::checkHurtTarget(Entity* pEnt, float f)

source/world/entity/Mob.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -671,14 +671,23 @@ void Mob::lookAt(Entity* pEnt, float a3, float a4)
671671
float diffX = pEnt->m_pos.x - m_pos.x;
672672
float diffZ = pEnt->m_pos.z - m_pos.z;
673673

674-
float q1 = (pEnt->m_hitbox.min.y + pEnt->m_hitbox.max.y) / 2 - (m_pos.y + getHeadHeight());
674+
float q1;
675+
if (pEnt->getDescriptor().hasCategory(EntityCategories::MOB))
676+
{
677+
Mob* pMob = (Mob*)pEnt;
678+
q1 = pMob->m_pos.y + pMob->getHeadHeight() - (m_pos.y + getHeadHeight());
679+
}
680+
else
681+
{
682+
q1 = (pEnt->m_hitbox.min.y + pEnt->m_hitbox.max.y) / 2 - (m_pos.y + getHeadHeight());
683+
}
675684
float p1 = Mth::sqrt(diffX * diffX + diffZ * diffZ);
676685

677686
float x1 = atan2f(diffZ, diffX);
678687
float x2 = atan2f(q1, p1);
679688

680-
setRot(Vec2(-rotlerp(m_rot.y, x2 * 180.0f / float(M_PI), a4),
681-
rotlerp(m_rot.x, x1 * 180.0f / float(M_PI) - 90.0f, a3)));
689+
setRot(Vec2(-rotlerp(m_rot.x, x2 * 180.0f / float(M_PI), a4),
690+
rotlerp(m_rot.y, x1 * 180.0f / float(M_PI) - 90.0f, a3)));
682691
}
683692

684693
bool Mob::canSpawn()

0 commit comments

Comments
 (0)