the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 145 lines 4.6 kB view raw
1#include "stdafx.h" 2#include "SpiderModel.h" 3#include "..\Minecraft.World\Mth.h" 4#include "ModelPart.h" 5 6SpiderModel::SpiderModel() : Model() 7{ 8 float g = 0; 9 10 int yo = 18+6-9; 11 12 head = new ModelPart(this, 32, 4); 13 head->addBox(-4, -4, -8, 8, 8, 8, g); // Head 14 head->setPos(0, (float)(0+yo), -3); 15 16 body0 = new ModelPart(this, 0, 0); 17 body0->addBox(-3, -3, -3, 6, 6, 6, g); // Body 18 body0->setPos(0,(float)(yo), 0); 19 20 body1 = new ModelPart(this, 0, 12); 21 body1->addBox(-5, -4, -6, 10, 8, 12, g); // Body 22 body1->setPos(0, (float)(0+yo), 3 + 6); 23 24 25 leg0 = new ModelPart(this, 18, 0); 26 leg0->addBox(-15, -1, -1, 16, 2, 2, g); // Leg0 27 leg0->setPos(-4, (float)(0+yo), 2); 28 29 leg1 = new ModelPart(this, 18, 0); 30 leg1->addBox(-1, -1, -1, 16, 2, 2, g); // Leg1 31 leg1->setPos(4, (float)(0+yo), 2); 32 33 leg2 = new ModelPart(this, 18, 0); 34 leg2->addBox(-15, -1, -1, 16, 2, 2, g); // Leg2 35 leg2->setPos(-4, (float)(0+yo), 1); 36 37 leg3 = new ModelPart(this, 18, 0); 38 leg3->addBox(-1, -1, -1, 16, 2, 2, g); // Leg3 39 leg3->setPos(4, (float)(0+yo), 1); 40 41 leg4 = new ModelPart(this, 18, 0); 42 leg4->addBox(-15, -1, -1, 16, 2, 2, g); // Leg0 43 leg4->setPos(-4, (float)(0+yo), 0); 44 45 leg5 = new ModelPart(this, 18, 0); 46 leg5->addBox(-1, -1, -1, 16, 2, 2, g); // Leg1 47 leg5->setPos(4, (float)(0+yo), 0); 48 49 leg6 = new ModelPart(this, 18, 0); 50 leg6->addBox(-15, -1, -1, 16, 2, 2, g); // Leg2 51 leg6->setPos(-4, (float)(0+yo), -1); 52 53 leg7 = new ModelPart(this, 18, 0); 54 leg7->addBox(-1, -1, -1, 16, 2, 2, g); // Leg3 55 leg7->setPos(4, (float)(0+yo), -1); 56 57 // 4J added - compile now to avoid random performance hit first time cubes are rendered 58 head->compile(1.0f/16.0f); 59 body0->compile(1.0f/16.0f); 60 body1->compile(1.0f/16.0f); 61 leg0->compile(1.0f/16.0f); 62 leg1->compile(1.0f/16.0f); 63 leg2->compile(1.0f/16.0f); 64 leg3->compile(1.0f/16.0f); 65 leg4->compile(1.0f/16.0f); 66 leg5->compile(1.0f/16.0f); 67 leg6->compile(1.0f/16.0f); 68 leg7->compile(1.0f/16.0f); 69} 70 71void SpiderModel::render(shared_ptr<Entity> entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled) 72{ 73 setupAnim(time, r, bob, yRot, xRot, scale, entity); 74 75 head->render(scale,usecompiled); 76 body0->render(scale,usecompiled); 77 body1->render(scale,usecompiled); 78 leg0->render(scale,usecompiled); 79 leg1->render(scale,usecompiled); 80 leg2->render(scale,usecompiled); 81 leg3->render(scale,usecompiled); 82 leg4->render(scale,usecompiled); 83 leg5->render(scale,usecompiled); 84 leg6->render(scale,usecompiled); 85 leg7->render(scale,usecompiled); 86} 87 88void SpiderModel::setupAnim(float time, float r, float bob, float yRot, float xRot, float scale, shared_ptr<Entity> entity, unsigned int uiBitmaskOverrideAnim) 89{ 90 head->yRot = yRot / (float) (180 / PI); 91 head->xRot = xRot / (float) (180 / PI); 92 93 float sr = (float) PI / 4.0f; 94 leg0->zRot = -sr; 95 leg1->zRot = sr; 96 97 leg2->zRot = -sr * 0.74f; 98 leg3->zRot = sr * 0.74f; 99 100 leg4->zRot = -sr * 0.74f; 101 leg5->zRot = sr * 0.74f; 102 103 leg6->zRot = -sr; 104 leg7->zRot = sr; 105 106 float ro = -(float) PI / 2.0f * 0; 107 float ur = (float) PI / 8.0f; 108 leg0->yRot = +ur * 2.0f + ro; 109 leg1->yRot = -ur * 2.0f - ro; 110 leg2->yRot = +ur * 1.0f + ro; 111 leg3->yRot = -ur * 1.0f - ro; 112 leg4->yRot = -ur * 1.0f + ro; 113 leg5->yRot = +ur * 1.0f - ro; 114 leg6->yRot = -ur * 2.0f + ro; 115 leg7->yRot = +ur * 2.0f - ro; 116 117 118 float c0 = -((float) Mth::cos(time * 0.6662f * 2 + PI * 2 * 0 / 4.0f) * 0.4f) * r; 119 float c1 = -((float) Mth::cos(time * 0.6662f * 2 + PI * 2 * 2 / 4.0f) * 0.4f) * r; 120 float c2 = -((float) Mth::cos(time * 0.6662f * 2 + PI * 2 * 1 / 4.0f) * 0.4f) * r; 121 float c3 = -((float) Mth::cos(time * 0.6662f * 2 + PI * 2 * 3 / 4.0f) * 0.4f) * r; 122 123 float s0 = abs((float)Mth::sin(time * 0.6662f + PI * 2 * 0 / 4.0f) * 0.4f) * r; 124 float s1 = abs((float)Mth::sin(time * 0.6662f + PI * 2 * 2 / 4.0f) * 0.4f) * r; 125 float s2 = abs((float)Mth::sin(time * 0.6662f + PI * 2 * 1 / 4.0f) * 0.4f) * r; 126 float s3 = abs((float)Mth::sin(time * 0.6662f + PI * 2 * 3 / 4.0f) * 0.4f) * r; 127 128 leg0->yRot += +c0; 129 leg1->yRot += -c0; 130 leg2->yRot += +c1; 131 leg3->yRot += -c1; 132 leg4->yRot += +c2; 133 leg5->yRot += -c2; 134 leg6->yRot += +c3; 135 leg7->yRot += -c3; 136 137 leg0->zRot += +s0; 138 leg1->zRot += -s0; 139 leg2->zRot += +s1; 140 leg3->zRot += -s1; 141 leg4->zRot += +s2; 142 leg5->zRot += -s2; 143 leg6->zRot += +s3; 144 leg7->zRot += -s3; 145}