Fixed a few issues and added more functionality
Fixed player not rendering in third person and armor arm0 not moving with 64x64 skins. Added offsets to held item (main hand) and armor (boots).
This commit is contained in:
@@ -286,6 +286,7 @@ void ItemInHandRenderer::renderItem(shared_ptr<LivingEntity> mob, shared_ptr<Ite
|
||||
|
||||
float xo = 0.0f;
|
||||
float yo = 0.3f;
|
||||
float zo = 0.0f;
|
||||
|
||||
|
||||
// Re position height of held item if skin is small
|
||||
@@ -301,8 +302,39 @@ void ItemInHandRenderer::renderItem(shared_ptr<LivingEntity> mob, shared_ptr<Ite
|
||||
}
|
||||
}
|
||||
|
||||
// Change height of held item by tool0 and arm0 offset
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(mob);
|
||||
vector<SKIN_OFFSET *>* pModelOffsets = nullptr;
|
||||
if (player != nullptr)
|
||||
pModelOffsets = player->GetModelOffsets();
|
||||
if (pModelOffsets != nullptr)
|
||||
{
|
||||
for( SKIN_OFFSET *pModelOffset : *pModelOffsets )
|
||||
{
|
||||
switch (pModelOffset->ePart)
|
||||
{
|
||||
case eBodyOffset_Arm0:
|
||||
if(pModelOffset->fD == 1)
|
||||
xo += pModelOffset->fO / 16.0f;
|
||||
else if(pModelOffset->fD == 2)
|
||||
zo += pModelOffset->fO / 16.0f;
|
||||
else if(pModelOffset->fD == 3)
|
||||
yo += pModelOffset->fO / 16.0f;
|
||||
break;
|
||||
case eBodyOffset_Tool0:
|
||||
if(pModelOffset->fD == 1)
|
||||
xo += pModelOffset->fO / 16.0f;
|
||||
else if(pModelOffset->fD == 2)
|
||||
zo += pModelOffset->fO / 16.0f;
|
||||
else if(pModelOffset->fD == 3)
|
||||
yo += pModelOffset->fO / 16.0f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glEnable(GL_RESCALE_NORMAL);
|
||||
glTranslatef(-xo, -yo, 0);
|
||||
glTranslatef(-xo, -yo, -zo);
|
||||
float s = 1.5f;
|
||||
glScalef(s, s, s);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user