aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/BatRenderer.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/BatRenderer.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/BatRenderer.cpp')
-rw-r--r--Minecraft.Client/BatRenderer.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/Minecraft.Client/BatRenderer.cpp b/Minecraft.Client/BatRenderer.cpp
new file mode 100644
index 00000000..629fe014
--- /dev/null
+++ b/Minecraft.Client/BatRenderer.cpp
@@ -0,0 +1,50 @@
+#include "stdafx.h"
+#include "..\Minecraft.World\net.minecraft.world.entity.ambient.h"
+#include "BatRenderer.h"
+#include "BatModel.h"
+
+ResourceLocation BatRenderer::BAT_LOCATION = ResourceLocation(TN_MOB_BAT);
+
+BatRenderer::BatRenderer() : MobRenderer(new BatModel(), 0.25f)
+{
+ modelVersion = ((BatModel *)model)->modelVersion();
+}
+
+void BatRenderer::render(shared_ptr<Entity> _mob, double x, double y, double z, float rot, float a)
+{
+ int modelVersion = (dynamic_cast<BatModel*>(model))->modelVersion();
+ if (modelVersion != this->modelVersion) {
+ this->modelVersion = modelVersion;
+ model = new BatModel();
+ }
+ MobRenderer::render(_mob, x, y, z, rot, a);
+}
+
+ResourceLocation *BatRenderer::getTextureLocation(shared_ptr<Entity> mob)
+{
+ return &BAT_LOCATION;
+}
+
+void BatRenderer::scale(shared_ptr<LivingEntity> mob, float a)
+{
+ glScalef(.35f, .35f, .35f);
+}
+
+void BatRenderer::setupPosition(shared_ptr<LivingEntity> mob, double x, double y, double z)
+{
+ MobRenderer::setupPosition(mob, x, y, z);
+}
+
+void BatRenderer::setupRotations(shared_ptr<LivingEntity> _mob, float bob, float bodyRot, float a)
+{
+ shared_ptr<Bat> mob = dynamic_pointer_cast<Bat>(_mob);
+ if (!mob->isResting())
+ {
+ glTranslatef(0, cos(bob * .3f) * .1f, 0);
+ }
+ else
+ {
+ glTranslatef(0, -.1f, 0);
+ }
+ MobRenderer::setupRotations(mob, bob, bodyRot, a);
+} \ No newline at end of file