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