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 "..\Minecraft.World\Mth.h"
3#include "LavaSlimeModel.h"
4#include "ModelPart.h"
5#include "..\Minecraft.World\LavaSlime.h"
6
7
8LavaSlimeModel::LavaSlimeModel()
9{
10 for (int i = 0; i < BODYCUBESLENGTH; i++)
11 {
12 int u = 0;
13 int v = i;
14 if (i == 2)
15 {
16 u = 24;
17 v = 10;
18 }
19 else if (i == 3)
20 {
21 u = 24;
22 v = 19;
23 }
24 bodyCubes[i] = new ModelPart(this, u, v);
25 bodyCubes[i]->addBox(-4.0f, 16.0f + (float)i, -4.0f, 8, 1, 8);
26 }
27
28 insideCube = new ModelPart(this, 0, 16);
29 insideCube->addBox(-2, 16 + 2, -2, 4, 4, 4);
30
31 // 4J added - compile now to avoid random performance hit first time cubes are rendered
32 insideCube->compile(1.0f/16.0f);
33 for( int i = 0; i < BODYCUBESLENGTH; i++ )
34 {
35 bodyCubes[i]->compile(1.0f/16.0f);
36 }
37}
38
39int LavaSlimeModel::getModelVersion()
40{
41 return 5;
42}
43
44void LavaSlimeModel::prepareMobModel(shared_ptr<LivingEntity> mob, float time, float r, float a)
45{
46 shared_ptr<LavaSlime> lavaSlime = dynamic_pointer_cast<LavaSlime>(mob);
47
48 float slimeSquish = (lavaSlime->oSquish + (lavaSlime->squish - lavaSlime->oSquish) * a);
49 if (slimeSquish < 0)
50 {
51 slimeSquish = 0.0f;
52 }
53
54 for (int i = 0; i < BODYCUBESLENGTH; i++)
55 {
56 bodyCubes[i]->y = -(4 - i) * slimeSquish * 1.7f;
57 }
58}
59
60void LavaSlimeModel::render(shared_ptr<Entity> entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled)
61{
62 setupAnim(time, r, bob, yRot, xRot, scale, entity);
63
64 insideCube->render(scale, usecompiled);
65 for (int i = 0; i < BODYCUBESLENGTH; i++)
66 {
67 bodyCubes[i]->render(scale, usecompiled);
68 }
69
70}
71