the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "SlimeRenderer.h"
3#include "..\Minecraft.World\net.minecraft.world.entity.monster.h"
4
5ResourceLocation SlimeRenderer::SLIME_LOCATION = ResourceLocation(TN_MOB_SLIME);
6
7SlimeRenderer::SlimeRenderer(Model *model, Model *armor, float shadow) : MobRenderer(model, shadow)
8{
9 this->armor = armor;
10}
11
12int SlimeRenderer::prepareArmor(shared_ptr<LivingEntity> _slime, int layer, float a)
13{
14 // 4J - dynamic cast required because we aren't using templates/generics in our version
15 shared_ptr<Slime> slime = dynamic_pointer_cast<Slime>(_slime);
16
17 if (slime->isInvisible())
18 {
19 return 0;
20 }
21 if (layer == 0)
22 {
23 setArmor(armor);
24
25 glEnable(GL_NORMALIZE);
26 glEnable(GL_BLEND);
27 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
28
29 return 1;
30 }
31 if (layer == 1)
32 {
33 glDisable(GL_BLEND);
34 glColor4f(1, 1, 1, 1);
35 }
36 return -1;
37}
38
39void SlimeRenderer::scale(shared_ptr<LivingEntity> _slime, float a)
40{
41 // 4J - dynamic cast required because we aren't using templates/generics in our version
42 shared_ptr<Slime> slime = dynamic_pointer_cast<Slime>(_slime);
43
44 float size = (float) slime->getSize();
45 float ss = (slime->oSquish + (slime->squish - slime->oSquish) * a) / (size * 0.5f + 1);
46 float w = 1 / (ss + 1);
47 glScalef(w * size, 1 / w * size, w * size);
48}
49
50ResourceLocation *SlimeRenderer::getTextureLocation(shared_ptr<Entity> mob)
51{
52 return &SLIME_LOCATION;
53}