4jcraft/Minecraft.Client/Rendering/EntityRenderers/SkeletonRenderer.cpp
2026-03-21 22:28:58 -05:00

34 lines
1.1 KiB
C++

#include "../../Platform/stdafx.h"
#include "SkeletonRenderer.h"
#include "../Models/SkeletonModel.h"
#include "../../../Minecraft.World/Entities/Mobs/Skeleton.h"
ResourceLocation SkeletonRenderer::SKELETON_LOCATION =
ResourceLocation(TN_MOB_SKELETON);
ResourceLocation SkeletonRenderer::WITHER_SKELETON_LOCATION =
ResourceLocation(TN_MOB_WITHER_SKELETON);
SkeletonRenderer::SkeletonRenderer()
: HumanoidMobRenderer(new SkeletonModel(), .5f) {}
void SkeletonRenderer::scale(std::shared_ptr<LivingEntity> mob, float a) {
if (std::dynamic_pointer_cast<Skeleton>(mob)->getSkeletonType() ==
Skeleton::TYPE_WITHER) {
glScalef(1.2f, 1.2f, 1.2f);
}
}
void SkeletonRenderer::translateWeaponItem() {
glTranslatef(1.5f / 16.0f, 3 / 16.0f, 0);
}
ResourceLocation* SkeletonRenderer::getTextureLocation(
std::shared_ptr<Entity> entity) {
std::shared_ptr<Skeleton> skeleton =
std::dynamic_pointer_cast<Skeleton>(entity);
if (skeleton->getSkeletonType() == Skeleton::TYPE_WITHER) {
return &WITHER_SKELETON_LOCATION;
}
return &SKELETON_LOCATION;
}