aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/WolfRenderer.cpp
diff options
context:
space:
mode:
authorLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
committerLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
commit42aec6dac53dffa6afe072560a7e1d4986112538 (patch)
tree0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.Client/WolfRenderer.cpp
parentc9d58eeac7c72f0b3038e084667b4d89a6249fce (diff)
parentef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff)
Merge branch 'main' into pr/win64-world-saves
# Conflicts: # Minecraft.Client/MinecraftServer.cpp # README.md
Diffstat (limited to 'Minecraft.Client/WolfRenderer.cpp')
-rw-r--r--Minecraft.Client/WolfRenderer.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/Minecraft.Client/WolfRenderer.cpp b/Minecraft.Client/WolfRenderer.cpp
index a21affa2..c4577db8 100644
--- a/Minecraft.Client/WolfRenderer.cpp
+++ b/Minecraft.Client/WolfRenderer.cpp
@@ -3,12 +3,17 @@
#include "MultiPlayerLocalPlayer.h"
#include "..\Minecraft.World\net.minecraft.world.entity.animal.h"
+ResourceLocation *WolfRenderer::WOLF_LOCATION = new ResourceLocation(TN_MOB_WOLF);
+ResourceLocation *WolfRenderer::WOLF_TAME_LOCATION = new ResourceLocation(TN_MOB_WOLF_TAME);
+ResourceLocation *WolfRenderer::WOLF_ANGRY_LOCATION = new ResourceLocation(TN_MOB_WOLF_ANGRY);
+ResourceLocation *WolfRenderer::WOLF_COLLAR_LOCATION = new ResourceLocation(TN_MOB_WOLF_COLLAR);
+
WolfRenderer::WolfRenderer(Model *model, Model *armor, float shadow) : MobRenderer(model, shadow)
{
setArmor(armor);
}
-float WolfRenderer::getBob(shared_ptr<Mob> _mob, float a)
+float WolfRenderer::getBob(shared_ptr<LivingEntity> _mob, float a)
{
// 4J - dynamic cast required because we aren't using templates/generics in our version
shared_ptr<Wolf> mob = dynamic_pointer_cast<Wolf>(_mob);
@@ -16,7 +21,7 @@ float WolfRenderer::getBob(shared_ptr<Mob> _mob, float a)
return mob->getTailAngle();
}
-int WolfRenderer::prepareArmor(shared_ptr<Mob> mob, int layer, float a)
+int WolfRenderer::prepareArmor(shared_ptr<LivingEntity> mob, int layer, float a)
{
if (mob->isInvisibleTo(Minecraft::GetInstance()->player)) return -1; // 4J-JEV: Todo, merge with java fix in '1.7.5'.
@@ -24,14 +29,14 @@ int WolfRenderer::prepareArmor(shared_ptr<Mob> mob, int layer, float a)
if (layer == 0 && wolf->isWet())
{
float brightness = wolf->getBrightness(a) * wolf->getWetShade(a);
- bindTexture(wolf->getTexture());
+ bindTexture(WOLF_LOCATION);
glColor3f(brightness, brightness, brightness);
return 1;
}
if (layer == 1 && wolf->isTame())
{
- bindTexture(TN_MOB_WOLF_COLLAR);
+ bindTexture(WOLF_COLLAR_LOCATION);
float brightness = SharedConstants::TEXTURE_LIGHTING ? 1 : wolf->getBrightness(a);
int color = wolf->getCollarColor();
glColor3f(brightness * Sheep::COLOR[color][0], brightness * Sheep::COLOR[color][1], brightness * Sheep::COLOR[color][2]);
@@ -40,3 +45,17 @@ int WolfRenderer::prepareArmor(shared_ptr<Mob> mob, int layer, float a)
}
return -1;
}
+
+ResourceLocation *WolfRenderer::getTextureLocation(shared_ptr<Entity> _mob)
+{
+ shared_ptr<Wolf> mob = dynamic_pointer_cast<Wolf>(_mob);
+ if (mob->isTame())
+ {
+ return WOLF_TAME_LOCATION;
+ }
+ if (mob->isAngry())
+ {
+ return WOLF_ANGRY_LOCATION;
+ }
+ return WOLF_LOCATION;
+}