mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-06-24 03:57:04 +00:00
Reduced code by adding functions
Reduced repetitive code by moving it into functions. New functions are setModelType() in PlayerRenderer.cpp and setPlayerModelType in LivingEntityRenderer.
This commit is contained in:
parent
6f12950c6b
commit
fe8e26867f
|
|
@ -24,6 +24,7 @@ LivingEntityRenderer::LivingEntityRenderer(Model *model, float shadow, bool isPl
|
|||
|
||||
shadowRadius = shadow;
|
||||
armor = nullptr;
|
||||
resModel = model;
|
||||
}
|
||||
|
||||
void LivingEntityRenderer::setArmor(Model *armor)
|
||||
|
|
@ -31,6 +32,11 @@ void LivingEntityRenderer::setArmor(Model *armor)
|
|||
this->armor = armor;
|
||||
}
|
||||
|
||||
void LivingEntityRenderer::setPlayerModelType(Model *humanoidModel)
|
||||
{
|
||||
resModel = humanoidModel;
|
||||
}
|
||||
|
||||
float LivingEntityRenderer::rotlerp(float from, float to, float a)
|
||||
{
|
||||
float diff = to - from;
|
||||
|
|
@ -49,8 +55,6 @@ void LivingEntityRenderer::render(shared_ptr<Entity> _mob, double x, double y, d
|
|||
}
|
||||
|
||||
shared_ptr<LivingEntity> mob = dynamic_pointer_cast<LivingEntity>(_mob);
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(_mob);
|
||||
Model *resModel;
|
||||
|
||||
if (mob == nullptr)
|
||||
{
|
||||
|
|
@ -60,10 +64,6 @@ void LivingEntityRenderer::render(shared_ptr<Entity> _mob, double x, double y, d
|
|||
glPushMatrix();
|
||||
glDisable(GL_CULL_FACE);
|
||||
|
||||
if (player != nullptr && modelWide != nullptr && (player->getCustomSkin() == 18 || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = modelWide;
|
||||
else if (player != nullptr && modelSlim != nullptr && ((player->getCustomSkin() >= 8 && player->getCustomSkin() <= 17) || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = modelSlim;
|
||||
else resModel = model;
|
||||
|
||||
resModel->attackTime = getAttackAnim(mob, a);
|
||||
if (armor != nullptr) armor->attackTime = resModel->attackTime;
|
||||
resModel->riding = mob->isRiding();
|
||||
|
|
@ -254,13 +254,6 @@ void LivingEntityRenderer::render(shared_ptr<Entity> _mob, double x, double y, d
|
|||
|
||||
void LivingEntityRenderer::renderModel(shared_ptr<LivingEntity> mob, float wp, float ws, float bob, float headRotMinusBodyRot, float headRotx, float scale)
|
||||
{
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(mob);
|
||||
Model *resModel;
|
||||
|
||||
if (player != nullptr && modelWide != nullptr && (player->getCustomSkin() == 18 || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = modelWide;
|
||||
else if (player != nullptr && modelSlim != nullptr && ((player->getCustomSkin() >= 8 && player->getCustomSkin() <= 17) || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = modelSlim;
|
||||
else resModel = model;
|
||||
|
||||
bindTexture(mob);
|
||||
if (!mob->isInvisible())
|
||||
{
|
||||
|
|
@ -332,13 +325,6 @@ void LivingEntityRenderer::additionalRendering(shared_ptr<LivingEntity> mob, flo
|
|||
|
||||
void LivingEntityRenderer::renderArrows(shared_ptr<LivingEntity> mob, float a)
|
||||
{
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(mob);
|
||||
Model *resModel;
|
||||
|
||||
if (player != nullptr && modelWide != nullptr && (player->getCustomSkin() == 18 || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = modelWide;
|
||||
else if (player != nullptr && modelSlim != nullptr && ((player->getCustomSkin() >= 8 && player->getCustomSkin() <= 17) || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = modelSlim;
|
||||
else resModel = model;
|
||||
|
||||
int arrowCount = mob->getArrowCount();
|
||||
|
||||
if (arrowCount > 0)
|
||||
|
|
|
|||
|
|
@ -17,11 +17,13 @@ class LivingEntityRenderer : public EntityRenderer
|
|||
protected:
|
||||
//Model *model; // 4J Stu - This shadows the one in EntityRenderer
|
||||
Model *armor;
|
||||
Model *resModel;
|
||||
|
||||
public:
|
||||
LivingEntityRenderer(Model *model, float shadow, bool isPlayer = false);
|
||||
virtual void render(shared_ptr<Entity> mob, double x, double y, double z, float rot, float a);
|
||||
virtual void setArmor(Model *armor);
|
||||
virtual void setPlayerModelType(Model *humanoidModel);
|
||||
|
||||
private:
|
||||
float rotlerp(float from, float to, float a);
|
||||
|
|
|
|||
|
|
@ -65,6 +65,13 @@ PlayerRenderer::PlayerRenderer() : LivingEntityRenderer( new HumanoidModel(0), 0
|
|||
armorParts2 = new HumanoidModel(0.5f, true);
|
||||
}
|
||||
|
||||
void PlayerRenderer::setModelType(shared_ptr<Player> player)
|
||||
{
|
||||
if (Player::GetModelTypeFromTextureId(player->getCustomSkin()) == 1 || Player::GetModelTypeFromAnimBitmask(player->getAnimOverrideBitmask()) == 1) resModel = humanoidModelWide;
|
||||
else if (Player::GetModelTypeFromTextureId(player->getCustomSkin()) == 2 || Player::GetModelTypeFromAnimBitmask(player->getAnimOverrideBitmask()) == 2) resModel = humanoidModelSlim;
|
||||
else resModel = humanoidModel;
|
||||
}
|
||||
|
||||
unsigned int PlayerRenderer::getNametagColour(int index)
|
||||
{
|
||||
if( index >= 0 && index < MINECRAFT_NET_MAX_PLAYERS)
|
||||
|
|
@ -76,11 +83,7 @@ int PlayerRenderer::prepareArmor(shared_ptr<LivingEntity> _player, int layer, fl
|
|||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(_player);
|
||||
HumanoidModel *resModel;
|
||||
|
||||
if (humanoidModelWide != nullptr && (player->getCustomSkin() == 18 || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = humanoidModelWide;
|
||||
else if (humanoidModelSlim != nullptr && ((player->getCustomSkin() >= 8 && player->getCustomSkin() <= 17) || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = humanoidModelSlim;
|
||||
else resModel = humanoidModel;
|
||||
setModelType(player);
|
||||
|
||||
// 4J-PB - need to disable rendering armour for some special skins (Daleks)
|
||||
unsigned int uiAnimOverrideBitmask=player->getAnimOverrideBitmask();
|
||||
|
|
@ -175,14 +178,12 @@ void PlayerRenderer::render(shared_ptr<Entity> _mob, double x, double y, double
|
|||
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<Player> mob = dynamic_pointer_cast<Player>(_mob);
|
||||
HumanoidModel *resModel;
|
||||
|
||||
if(mob == nullptr) return;
|
||||
if(mob->hasInvisiblePrivilege()) return;
|
||||
|
||||
if (humanoidModelWide != nullptr && (mob->getCustomSkin() == 18 || mob->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = humanoidModelWide;
|
||||
else if (humanoidModelSlim != nullptr && ((mob->getCustomSkin() >= 8 && mob->getCustomSkin() <= 17) || mob->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = humanoidModelSlim;
|
||||
else resModel = humanoidModel;
|
||||
setModelType(mob);
|
||||
setPlayerModelType(resModel);
|
||||
|
||||
shared_ptr<ItemInstance> item = mob->inventory->getSelected();
|
||||
|
||||
|
|
@ -316,11 +317,7 @@ void PlayerRenderer::additionalRendering(shared_ptr<LivingEntity> _mob, float a)
|
|||
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<Player> mob = dynamic_pointer_cast<Player>(_mob);
|
||||
HumanoidModel *resModel;
|
||||
|
||||
if (mob != nullptr && humanoidModelWide != nullptr && (mob->getCustomSkin() == 18 || mob->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = humanoidModelWide;
|
||||
else if (mob != nullptr && humanoidModelSlim != nullptr && ((mob->getCustomSkin() >= 8 && mob->getCustomSkin() <= 17) || mob->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = humanoidModelSlim;
|
||||
else resModel = humanoidModel;
|
||||
setModelType(mob);
|
||||
|
||||
shared_ptr<ItemInstance> headGear = mob->inventory->getArmor(3);
|
||||
if (headGear != nullptr)
|
||||
|
|
@ -565,11 +562,7 @@ void PlayerRenderer::scale(shared_ptr<LivingEntity> player, float a)
|
|||
void PlayerRenderer::renderHand()
|
||||
{
|
||||
shared_ptr<Player> player = dynamic_pointer_cast<Player>(Minecraft::GetInstance()->player);
|
||||
HumanoidModel *resModel;
|
||||
|
||||
if (player != nullptr && humanoidModelWide != nullptr && (player->getCustomSkin() == 18 || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_WideModel))) resModel = humanoidModelWide;
|
||||
else if (player != nullptr && humanoidModelSlim != nullptr && ((player->getCustomSkin() >= 8 && player->getCustomSkin() <= 17) || player->getAnimOverrideBitmask()&(1<<HumanoidModel::eAnim_SlimModel))) resModel = humanoidModelSlim;
|
||||
else resModel = humanoidModel;
|
||||
setModelType(player);
|
||||
|
||||
float brightness = 1;
|
||||
glColor3f(brightness, brightness, brightness);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ private:
|
|||
HumanoidModel *humanoidModel;
|
||||
HumanoidModel *humanoidModelWide;
|
||||
HumanoidModel *humanoidModelSlim;
|
||||
HumanoidModel *resModel;
|
||||
|
||||
HumanoidModel *armorParts1;
|
||||
HumanoidModel *armorParts2;
|
||||
|
|
@ -29,6 +30,7 @@ private:
|
|||
static const wstring MATERIAL_NAMES[5];
|
||||
|
||||
protected:
|
||||
virtual void setModelType(shared_ptr<Player> player);
|
||||
virtual int prepareArmor(shared_ptr<LivingEntity> _player, int layer, float a);
|
||||
virtual void prepareSecondPassArmor(shared_ptr<LivingEntity> mob, int layer, float a);
|
||||
|
||||
|
|
|
|||
|
|
@ -3214,7 +3214,9 @@ int Player::GetModelTypeFromAnimBitmask(unsigned int uiAnimOverrideBitmask)
|
|||
|
||||
int Player::GetModelTypeFromTextureId(int textureId)
|
||||
{
|
||||
if (textureId > 44 && textureId < 54) return 2;
|
||||
if (textureId > 8 && textureId < 18) return 2;
|
||||
else if (textureId == 18) return 1;
|
||||
else if (textureId > 44 && textureId < 54) return 2;
|
||||
else if (textureId == 54) return 1;
|
||||
else return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue