mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-17 20:10:23 +03:00
migrate ALMOST everything from source tree into client
This commit is contained in:
71
source/client/renderer/entity/HumanoidMobRenderer.cpp
Normal file
71
source/client/renderer/entity/HumanoidMobRenderer.cpp
Normal file
@@ -0,0 +1,71 @@
|
||||
/********************************************************************
|
||||
Minecraft: Pocket Edition - Decompilation Project
|
||||
Copyright (C) 2023 iProgramInCpp
|
||||
|
||||
The following code is licensed under the BSD 1 clause license.
|
||||
SPDX-License-Identifier: BSD-1-Clause
|
||||
********************************************************************/
|
||||
|
||||
#include "HumanoidMobRenderer.hpp"
|
||||
#include "EntityRenderDispatcher.hpp"
|
||||
#include "ItemInHandRenderer.hpp"
|
||||
#include "ItemInstance.hpp"
|
||||
#include "TileRenderer.hpp"
|
||||
#include "Player.hpp"
|
||||
|
||||
HumanoidMobRenderer::HumanoidMobRenderer(HumanoidModel* pModel, float f) : MobRenderer(pModel, f)
|
||||
{
|
||||
m_pHumanoidModel = pModel;
|
||||
}
|
||||
|
||||
void HumanoidMobRenderer::additionalRendering(Mob* mob, float f)
|
||||
{
|
||||
if (!mob->isPlayer()) return;
|
||||
Player* player = (Player*)mob;
|
||||
|
||||
int itemID = player->m_pInventory->getSelectedItemId();
|
||||
if (itemID < 0)
|
||||
return;
|
||||
|
||||
ItemInstance inst(itemID, 1, 0);
|
||||
glPushMatrix();
|
||||
m_pHumanoidModel->m_armL.translateTo(0.0625f);
|
||||
glTranslatef(-0.0625f, 0.4375f, 0.0625f);
|
||||
if (itemID <= C_MAX_TILES && TileRenderer::canRender(Tile::tiles[itemID]->getRenderShape()))
|
||||
{
|
||||
glTranslatef(0.0f, 0.1875f, -0.3125f);
|
||||
glRotatef(20.0f, 1.0f, 0.0f, 0.0f);
|
||||
glRotatef(45.0f, 0.0f, 1.0f, 0.0f);
|
||||
glScalef(0.375f, -0.375f, 0.375f);
|
||||
}
|
||||
else if (Item::items[itemID]->isHandEquipped())
|
||||
{
|
||||
glTranslatef(0.0f, 0.1875f, 0.0f);
|
||||
glScalef(0.625f, -0.625f, 0.625f);
|
||||
glRotatef(-100.0f, 1.0f, 0.0f, 0.0f);
|
||||
glRotatef(45.0f, 0.0f, 1.0f, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
glTranslatef(0.25f, 0.1875f, -0.1875f);
|
||||
glScalef(0.375f, 0.375f, 0.375f);
|
||||
glRotatef(60.0f, 0.0f, 0.0f, 1.0f);
|
||||
glRotatef(-90.0f, 1.0f, 0.0f, 0.0f);
|
||||
glRotatef(20.0f, 0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
m_pDispatcher->m_pItemInHandRenderer->renderItem(&inst);
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
void HumanoidMobRenderer::onGraphicsReset()
|
||||
{
|
||||
m_pHumanoidModel->onGraphicsReset();
|
||||
}
|
||||
|
||||
void HumanoidMobRenderer::renderHand()
|
||||
{
|
||||
m_pHumanoidModel->field_4 = 0;
|
||||
m_pHumanoidModel->setupAnim(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f);
|
||||
m_pHumanoidModel->m_armL.render(0.0625f);
|
||||
}
|
||||
Reference in New Issue
Block a user