the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 118 lines 3.0 kB view raw
1#include "stdafx.h" 2#include "EntityRenderDispatcher.h" 3#include "WitchRenderer.h" 4#include "WitchModel.h" 5#include "ModelPart.h" 6#include "..\Minecraft.World\net.minecraft.world.item.h" 7 8ResourceLocation WitchRenderer::WITCH_LOCATION = ResourceLocation(TN_MOB_WITCH); 9 10WitchRenderer::WitchRenderer() : MobRenderer(new WitchModel(0), 0.5f) 11{ 12 witchModel = dynamic_cast<WitchModel*>(model); 13} 14 15void WitchRenderer::render(shared_ptr<Entity> entity, double x, double y, double z, float rot, float a) 16{ 17 shared_ptr<Mob> mob = dynamic_pointer_cast<Mob>(entity); 18 19 shared_ptr<ItemInstance> item = mob->getCarriedItem(); 20 21 witchModel->holdingItem = item != NULL; 22 MobRenderer::render(mob, x, y, z, rot, a); 23} 24 25ResourceLocation *WitchRenderer::getTextureLocation(shared_ptr<Entity> entity) 26{ 27 return &WITCH_LOCATION; 28} 29 30void WitchRenderer::additionalRendering(shared_ptr<LivingEntity> entity, float a) 31{ 32 shared_ptr<Mob> mob = dynamic_pointer_cast<Mob>(entity); 33 34 float brightness = SharedConstants::TEXTURE_LIGHTING ? 1 : mob->getBrightness(a); 35 glColor3f(brightness, brightness, brightness); 36 37 MobRenderer::additionalRendering(mob, a); 38 39 shared_ptr<ItemInstance> item = mob->getCarriedItem(); 40 41 if (item != NULL) 42 { 43 glPushMatrix(); 44 45 if (model->young) 46 { 47 float s = 0.5f; 48 glTranslatef(0 / 16.0f, 10 / 16.0f, 0 / 16.0f); 49 glRotatef(-20, -1, 0, 0); 50 glScalef(s, s, s); 51 } 52 53 witchModel->nose->translateTo(1 / 16.0f); 54 glTranslatef(-1 / 16.0f, 8.5f / 16.0f, 3.5f / 16.0f); 55 56 if (item->id < 256 && TileRenderer::canRender(Tile::tiles[item->id]->getRenderShape())) 57 { 58 float s = 8 / 16.0f; 59 glTranslatef(-0 / 16.0f, 3 / 16.0f, -5 / 16.0f); 60 s *= 0.75f; 61 glRotatef(20, 1, 0, 0); 62 glRotatef(45, 0, 1, 0); 63 glScalef(s, -s, s); 64 } 65 else if (item->id == Item::bow->id) 66 { 67 float s = 10 / 16.0f; 68 glTranslatef(0 / 16.0f, 2 / 16.0f, 5 / 16.0f); 69 glRotatef(-20, 0, 1, 0); 70 glScalef(s, -s, s); 71 glRotatef(-100, 1, 0, 0); 72 glRotatef(45, 0, 1, 0); 73 } 74 else if (Item::items[item->id]->isHandEquipped()) 75 { 76 float s = 10 / 16.0f; 77 if (Item::items[item->id]->isMirroredArt()) 78 { 79 glRotatef(180, 0, 0, 1); 80 glTranslatef(0, -2 / 16.0f, 0); 81 } 82 translateWeaponItem(); 83 glScalef(s, -s, s); 84 glRotatef(-100, 1, 0, 0); 85 glRotatef(45, 0, 1, 0); 86 } 87 else 88 { 89 float s = 6 / 16.0f; 90 glTranslatef(+4 / 16.0f, +3 / 16.0f, -3 / 16.0f); 91 glScalef(s, s, s); 92 glRotatef(60, 0, 0, 1); 93 glRotatef(-90, 1, 0, 0); 94 glRotatef(20, 0, 0, 1); 95 } 96 97 glRotatef(-15, 1, 0, 0); 98 glRotatef(40, 0, 0, 1); 99 100 entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, 0); 101 if (item->getItem()->hasMultipleSpriteLayers()) 102 { 103 entityRenderDispatcher->itemInHandRenderer->renderItem(mob, item, 1); 104 } 105 glPopMatrix(); 106 } 107} 108 109void WitchRenderer::translateWeaponItem() 110{ 111 glTranslatef(0, 3 / 16.0f, 0); 112} 113 114void WitchRenderer::scale(shared_ptr<LivingEntity> mob, float a) 115{ 116 float s = 15 / 16.0f; 117 glScalef(s, s, s); 118}